When an agent places a call, a person does not always answer. Tried can recognise three other outcomes at the start of a call and act on each:
| What answered | Setting | Default action |
|---|---|---|
| Voicemail or answering machine | Voicemail Detection (voicemail_option) |
Hang up, leave a fixed message, or leave a generated message |
| Automated phone menu (IVR) | IVR Detection (ivr_option) |
Hang up |
| Call screener (carrier or phone assistant asking who is calling) | Call Screening (call_screening_option) |
Say who is calling and why |
All three are in Call Settings.
When detection runs#
- On outbound phone calls and on web calls, for the first 3 minutes of the call.
- Not on inbound calls, and not on transfer agents' own legs.
- Only when at least one of the three options is turned on.
On outbound phone calls, an audio detector listens from the moment the call connects. It picks up a voicemail beep, a long continuous greeting, or a short "hello" followed by silence. A confident machine verdict triggers the voicemail action straight away, before any words are transcribed.
For each early transcript, Tried then checks, in order: wording typical of call screeners, then voicemail ("leave a message", "after the tone", "mailbox is full"), then phone menus. If those are inconclusive, the audio verdict is used when it is confident. Otherwise one LLM classification decides between human, voicemail, IVR and screener, guided by your Detection guidance. Web calls use only the wording checks, without the LLM classification.
Voicemail Detection#
Turn on Voicemail Detection and choose When voicemail is reached:
| Option | action.type |
What happens |
|---|---|---|
| Hang up | hangup |
The call ends. |
| Leave message | static_text |
The agent says your text exactly, then hangs up. |
| Prompt | prompt |
The model writes a message from your instruction, then the agent hangs up. |
| Bridge caller | bridge_transfer |
Only on transfer agents: connects the original caller so they can leave their own message. |
The call ends with disconnection_reason: "voicemail_reached" and post-call analysis sets in_voicemail: true.
Detection guidance (detection_prompt) adds instructions for the classifier, for example "Our customers often have personalised greetings that mention their business name."
Wait for the beep (wait_for_beep, default on) waits for the greeting's beep, up to 10 seconds, before leaving the message, so the start of the message is not lost. It applies to Leave message and Prompt.
The message cannot be interrupted, and the agent cannot call functions while leaving it.
{
"voicemail_option": {
"action": {
"type": "static_text",
"text": "Hi {{first_name}}, this is Ava from {{business_name}} about your appointment tomorrow. Please call us back on 02 5550 1234."
},
"detection_prompt": "Business numbers often have a menu before the voicemail.",
"wait_for_beep": true
}
}New agents have voicemail detection on with the Hang up action ({"action": {"type": "hangup"}}). Set voicemail_option to null to turn it off.
Keep voicemail messages short and include a callback number. With Prompt, write the instruction as what to say, not how to detect: "Say who you are, that you called about their order, and the callback number."
IVR Detection#
IVR Detection hangs up when an automated phone menu answers an outbound call, with disconnection_reason: "ivr_reached". Add Detection guidance such as "Treat any 'press 1 for' menu as an IVR."
{ "ivr_option": { "action": { "type": "hangup" }, "detection_prompt": "Treat any 'press 1 for' menu as an IVR." } }Hang up is the only action. To navigate a menu instead, leave IVR detection off and give the agent a Press Digit (IVR Navigation) function with instructions in the prompt. See DTMF.
Call Screening#
Some carriers and phones answer unknown callers with an assistant that asks who is calling. With Call Screening on, the agent answers it once with Who is calling (agent_identity) and Why (call_purpose), for example: "Hi, this is Ava from Harbourside Dental. I'm calling about your appointment tomorrow." The conversation then continues when the person picks up.
{ "call_screening_option": { "agent_identity": "Ava from Harbourside Dental", "call_purpose": "about your appointment tomorrow" } }Fields#
| Field | Type | Default |
|---|---|---|
voicemail_option |
object or null | { "action": { "type": "hangup" } } |
voicemail_option.action.type |
hangup, static_text, prompt, bridge_transfer |
|
voicemail_option.action.text |
string | For static_text and prompt |
voicemail_option.detection_prompt |
string | not set |
voicemail_option.wait_for_beep |
boolean | true |
ivr_option |
object or null | not set |
ivr_option.action.type |
hangup |
hangup |
ivr_option.detection_prompt |
string | not set |
call_screening_option |
object or null | not set |
call_screening_option.agent_identity |
string | |
call_screening_option.call_purpose |
string |
Tips#
- Test with a real phone that goes to voicemail. Use Make an outbound call on the phone number page and let it ring out.
- With User speaks first, the agent stays quiet while the greeting plays, which gives detection time to work.
- Calls that reach voicemail count as failed calls in post-call analysis, so filter them out with
in_voicemailwhen you measure success.