# Dial Milo connector brief for Meta Muse

Dial Milo is an AI phone receptionist for small businesses and busy people. It
answers a phone number 24/7, books appointments, captures leads, takes messages,
answers questions from the owner's own documents, and transfers or texts the
owner when a human is needed. This brief tells Muse how to set it up and use it
on the owner's behalf.

## Connection

- Base URL: `https://dialmilo.com/api`
- OpenAPI: [https://dialmilo.com/openapi.json](https://dialmilo.com/openapi.json)
- Auth: `Authorization: Bearer <token>` on every request. JSON in, JSON out.
- Transport: HTTPS. No MCP server; plain REST.

The token is a scoped agent token the owner mints in the Dial Milo dashboard
(Settings → Connect an AI assistant, at https://dialmilo.com/settings). Take it through your
Secure Credentials Store, never through the chat. The token can configure the
receptionist and read calls, leads, and appointments. It cannot spend money, buy
or forward a phone number, or mint other tokens; those return
`403 owner_action_required` and belong to the owner in the dashboard.

If the owner does not have an account yet, they create one at
[https://dialmilo.com/signup](https://dialmilo.com/signup) (no card, $1.00 trial credit), verify their
email, then mint the token. Both are owner steps.

## The prompt the owner pastes

```
Build a custom connector for Dial Milo, my AI phone receptionist. Read https://dialmilo.com/muse.md first — it is the connector brief — and the OpenAPI document at https://dialmilo.com/openapi.json.

The API is REST at https://dialmilo.com/api and authenticates with a Bearer token in the Authorization header. Ask me for the token through your credentials store; I have it ready.

Once connected, help me set up my receptionist, have it call my phone so I can hear it, and from then on tell me who called, what leads came in, and what appointments were booked whenever I ask.
```

## Calls that matter

Setup:

- `GET /me` — confirm the token, see the email verification state and balance.
- `POST /onboarding/analyze-website` `{ url }` → analysis id; poll
  `GET /onboarding/website-analysis/{id}` for a drafted greeting and script.
- `GET /receptionists`, `POST /receptionists`, `PATCH /receptionists/{id}` —
  `greeting` (≤500 chars), `system_prompt` (the script, ≤5000), `voice`, `languages`.
- `POST /knowledge` — upload a price list, FAQ, hours, or policy document.
- `PUT /receptionists/{id}/tool-overrides` — turn tools on: `capture_lead`,
  `take_voicemail`, `book_appointment`, `send_sms`, `notify_owner`, `transfer_call`.
- `GET /readiness?receptionist_id={id}` — which tools are configured and tested.

Hearing it (the test you can run without a microphone):

- `POST /onboarding/phone-verify/start` `{ to_e164 }` — texts a 6-digit code to
  the owner's US mobile. Returns `verification_id`.
- `POST /onboarding/phone-verify/check` `{ verification_id, code }` — the owner
  reads you the code.
- `POST /onboarding/outbound-demo` `{ verification_id }` — Milo calls the owner's
  phone and talks for up to 60 seconds. One demo per account, $1 from balance,
  US numbers only. Poll `GET /onboarding/outbound-demo/{id}` for the state, then
  `GET /calls/{id}` for the transcript.

Daily use:

- `GET /calls` — the 100 most recent calls: caller, when, how long, outcome, and
  an AI summary. `GET /calls/{id}` for the transcript and what Milo did.
- `GET /leads` — captured leads and voicemails: name, phone, intent, urgency,
  message. `PATCH /leads/{id}` to update `status` or `notes`.
- `GET /appointments?from=&to=&status=` — bookings. `POST /appointments` to add one.
- `GET /numbers` — the owner's numbers and which receptionist answers each.

## Recipes

**Set up a receptionist.** `GET /me` → `POST /onboarding/analyze-website` with the
owner's site (or ask three questions if they have none: what the business does,
hours, what callers usually want) → `POST /receptionists` with the draft → refine
with the owner → `POST /knowledge` for anything callers ask about → enable
`capture_lead` and `take_voicemail` → `GET /readiness` → tell the owner what is
left: top up, buy or forward a number, go live. Those are theirs.

**Let the owner hear it.** Ask for their US mobile → `phone-verify/start` → ask
for the code → `phone-verify/check` → `outbound-demo` → wait for the call to end →
read the transcript back and offer to tweak the greeting or script.

**Morning check.** `GET /calls` and `GET /leads`, filter to the last day by
`created_at`, and summarise: who called, what they wanted, which leads need a
callback, which appointments were booked. Offer to update lead status or notes.

## Rules

- Never try the owner-only calls (`POST /numbers`, `PATCH /numbers/{id}`,
  `POST /billing/checkout`, token management). Hand back with the exact step.
- Keep the greeting under 500 characters and the script under 5000.
- Do not invent business facts. If the website analysis is thin, ask the owner.
- Balance is in cents on `GET /me`. Recommend a top-up before it runs out; the
  owner does it in the dashboard.
- A 401 means the token was revoked; ask the owner for a fresh one.

Longer guide for any assistant: [https://dialmilo.com/agent.md](https://dialmilo.com/agent.md). Events out
to a URL: [https://dialmilo.com/webhooks.md](https://dialmilo.com/webhooks.md).
