Inbound calls
Let your Dairo number answer the phone: an AI agent picks up, takes notes, and drops every call into your inbox.
Anyone who calls one of your Dairo numbers is answered by that number's inbound agent. It holds the conversation, writes down what the caller wants remembered, and delivers the whole call — summary, notes, and transcript — to your inbox as a message your agents already know how to read.
Out of the box, every number answers with a friendly assistant that takes messages and notes. Tell it who it is and what the line is for, and it becomes your receptionist, your support line, or a voice notepad you can call from anywhere.
Set up the inbound agent
Configure the agent on the number with PATCH /v1/phone/numbers/{id} (scope phone:write). Bind an inboxId too — that is where answered calls land.
| Field | Description |
|---|---|
inboundInstructions | Who the agent is and what the line is for, up to 8,000 characters. null restores the default assistant that takes messages and notes. |
inboundGreeting | What the agent says after Dairo's fixed AI and recording disclosure, up to 500 characters. null uses a short default greeting — by first name when the caller is one of your contacts. |
inboundVoice | One of the Dairo Live voice ids, e.g. marin or cedar. Any other value is rejected with 400. |
inboundLanguage | ISO code of the language the agent speaks, e.g. de. |
Every field is optional and independent; pass null to reset one to its default. The number object returns all four, so GET /v1/phone/numbers/{id} always shows how the line is set up.
What lands in your inbox
When the caller hangs up — or says goodbye and the agent hangs up — Dairo writes a summary, pulls out the caller's structured notes, and delivers the call to the number's bound inbox as a message with channel: "voice". It fires the normal message.received webhook, so an agent picks it up with read_mailbox or its event loop, exactly like an email or a Telegram message.
Say you call your number and tell it: "Hey Dairo, remember I need to call the bank tomorrow." This message arrives in your inbox:
channelMetadata.notes is the part your agent acts on. Each note has a kind — task, note, reminder, or message — the text, and a due as the caller said it ("tomorrow", "Friday 3pm"), or null when there is none. The readable textBody repeats the summary, the notes, and the full transcript for a human skimming the inbox.
Pair an inbound number with an agent that watches its inbox and you have a voice notepad: call, say what's on your mind, hang up, and the task is already in your agent's queue.
The call itself
An inbound call is a regular phone_call with direction: "inbound" — list it with GET /v1/phone/calls, fetch its transcript and recording, and follow it with the call.status_changed webhook, all as on Making calls. Its notes field carries the same notes as the inbox message:
An answered inbound call is billed like an outbound one: the Dairo Live rate of $0.09 per started minute plus the telephony rate of your number's country — for a US number, 9¢ + 1.2¢ = 10.2¢ per minute. A call that never connects costs nothing.