call.dialing POST to an address you choose
right before it dials, so you can load the lead’s latest details and have them
ready before the call is answered.
It is off by default, and it needs two things switched on:
- On the voice agent: an address and a secret (
dial_notify_urlanddial_notify_secret). - On the campaign: the switch
pre_call_lead_fetch(“Send lead details to the AI agent before the call connects” in the campaign form).
Set it up on the voice agent
- The key needs the
voice_agents:writescope. dial_notify_urlmust behttps://and must point to a public host. Private, loopback and cloud-metadata addresses are refused (422), and the check runs again on every send.dial_notify_secretis 16 to 256 printable characters with no spaces. It is write-only: reads return"***"when it is set andnullwhen it is not.- An address without a secret is refused (
422), so a notice is never sent unsigned. - To change only the secret, send
dial_notify_secretalone. The address stays. - To turn it off, send
{"dial_notify_url": null}. This clears the address and the secret. Running campaigns stop sending within about a minute; no pause is needed.
Turn it on for a campaign
Setpre_call_lead_fetch: true on the campaign (POST or PATCH /api/v1/campaigns), or switch it on in the campaign form. The switch is offered
only for campaigns whose calls can reach a voice agent. Like every campaign
setting, it cannot be changed while the campaign is running: pause it, change
the setting, then resume.
When it is sent
- For every outbound dial that actually goes out, right before the dial: voice-agent campaigns, flow campaigns whose flow can reach a voice agent (each distinct voice agent with an address gets one notice), and predictive or power campaigns whose answered calls go to a voice agent.
- It is not sent for a dial that Yotel holds back (no free channel, or the
voice agent is at its
max_concurrent), and never for inbound calls. - It is sent for dials nobody answers too: Yotel cannot know in advance.
Delivery
The notice never delays the dial:- One attempt only, with a 1 second limit. There are no retries; a late notice is of no use.
- If too many notices are already waiting, new ones are dropped, not queued.
- Answer quickly with any
2xx(for example202). Do your loading after you answer.
The request
Headers and signature are the same as for webhooks:
Reject a request whose signature does not match or whose timestamp is more than
5 minutes old.
Body (compact JSON, keys sorted):
The body never contains a phone number.

