Skip to content
TriedDocs
Build agents

Voicemail, IVR and call screening

Detect answering machines, phone menus and call screeners at the start of outbound calls, and decide what the agent does in each case.

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.

Call Settings with Voicemail Detection, its actions, Detection guidance and Wait for the beep

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.

Tip

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_voicemail when you measure success.