Calling a Lead
Your team can call a lead from your organization’s phone number without giving out their own. Erdo rings the salesperson’s mobile first; when they answer and press 1, Erdo dials the lead and connects the two. The lead’s phone shows your organization’s number, so calling it back reaches your voice agent as usual. It is an ordinary phone call for the person placing it — earpiece, lock screen, other apps, call waiting — because their own phone is what rings. That matters when the sales desk is a mobile, which it usually is. The call is kept like every other: it appears in your call records and on the lead’s timeline, with who placed it, how long it lasted, what happened, and a transcript of both sides.This is a person talking to a lead. It is not the live
transfer, where your AI agent is
already on a call and hands it to a colleague, and it is not an AI call — the
agent is not on the line at all.
Before you start
- Your organization needs a voice agent with its own phone number that Erdo bought and manages for you. A number you already owned and only told Erdo about cannot be called from: Erdo holds no credential for the account it lives on, and says so if you try.
- Which countries can be reached is set on the phone account, not in Erdo. If a destination is not enabled, the call is refused and the record says exactly why, in the provider’s words.
- The salesperson needs a phone number of their own for Erdo to ring. Nothing connects until somebody answers it and presses 1.
What happens, in order
- Somebody presses Call on a lead.
- Erdo checks that the number being called from is one of your organization’s own agent numbers, and that the lead is not on your do-not-call list.
- The salesperson’s phone rings, showing your organization’s number.
- They answer and hear “Press 1 to call Maria Lopez”.
- On the key press, Erdo dials the lead. The lead’s phone rings about ten to fifteen seconds after the button was pressed, because of steps 3 and 4.
- When the call ends, the record is updated, and the transcript appears a minute or two later.
What the record says
A call somebody placed by hand carries two fields the AI agent’s calls do not:dial_outcome is not the same as status. A call can be completed with a
no_answer outcome: the call happened, it just reached nobody. The duration is
how long the two people were actually on the phone together, so a call nobody
answered lasts zero seconds.
Both fields appear everywhere calls do — the call records
list and read, the erdo voice calls list output, and the
erdo_voice_call_list / erdo_voice_call_get MCP tools.
The transcript
Both sides are recorded on separate channels and transcribed separately, then merged back into one conversation in time order — so who said what is a fact about which phone the audio came from, not a guess. It reads like any other call’s transcript: the person who placed the call is theagent side and the
lead is the user side.
If transcription fails — the transcription service is briefly unavailable, say
— Erdo tries again on its own, over roughly the next day, so a transcript can
arrive hours after the call rather than a minute or two. The call’s outcome and
duration are recorded straight away either way.
The summary says what was discussed, what was agreed and any next step, naming
the person who placed the call. It is written in English whatever language the
call was in, like every other call summary.
The audio itself stays with the phone provider. Erdo keeps the transcript and
the summary, and nothing in Erdo plays or hands out a recording.
Placing a call over the API
POST /v1/voice/person-calls, with your organization’s API key. There is no CLI
command and no MCP tool for it, deliberately: the call rings a phone a specific
person has to be holding and answer within about thirty seconds, so an agent or
a scheduled script that “placed a call” would have started something only a
human can finish. Reading calls back stays available everywhere.
from_numberis the organization’s number to call from, and what the lead sees. The numbers it can be are listed inperson_call_numbersonGET /v1/voice/phone-numbers(and theerdo_voice_phone_number_listMCP tool): offer only those, and no call is refused for its number.to_numberis the lead, in any format — Erdo normalises it.canonical_lead_idis the lead, as its UUID or its 22-character lead reference. It is required, because it is how the call reaches that lead’s timeline.placed_by.refis your own stable identifier for the person placing the call. Erdo never resolves it; it uses it to hold them to one call at a time, and showsplaced_by.nameon the record.person_phoneis the phone Erdo rings first. It is not stored on the call record.prompt_languageis the language of the “press 1” prompt:en(the default),esorpt. Any other value is rejected with a400(invalid_argument) rather than spoken in a language the person may not understand.
GET /v1/voice/calls/{call_id} as it progresses and
once it is over.
Numbers without a country code
A number with no+ country code is read as US or Canada. A ten-digit
Colombian or Mexican mobile typed without its country code looks exactly like a
US number, and Erdo cannot tell the difference — which is why the response
always says the number it is about to dial and the country it belongs to. Show
that to whoever pressed the button; they are the only one who can spot it. A
number that is not valid under that reading is refused rather than dialled.
When Erdo will not place the call
The response comes back withrefused: true and a reason you can branch on,
plus a message you can show:
A refusal is always a
200. If the phone provider rejects the platform’s own
telephony credentials, that is not a refusal of your call — nothing about the
lead’s number or your settings was judged — so the request fails with a 503
(unavailable) instead, and the attempt is recorded as a failed call. It is a
problem on Erdo’s side; report it rather than changing anything or retrying.
Good to know
- Only the do-not-call list blocks a call. Quiet hours and rate limits exist to bound what an automation does unattended; when to call a lead is the judgement of the person picking up the phone. If you want a warning about the lead’s local time, that belongs in the surface with the button, not here.
- Two legs cost about twice a single call, and more when the salesperson’s own phone is abroad. The usage lands on your organization’s own phone account.
- A missed ring looks like a call from your own number. Somebody who misses it and calls back reaches your voice agent. Saving the number as a contact is worth suggesting to the team.
- A call is capped at one hour, so one left open on a desk cannot run up minutes indefinitely.
- Calls are not announced as recorded. Some jurisdictions require every party’s consent to a recording; that applies equally to your AI agent’s calls today, and is worth checking against where you operate.

