Skip to main content
Use call webhooks to notify a system you control when a call starts and to receive available results after it ends. Configure each assistant separately.

Before you start

Prepare an HTTPS receiver that can record test requests and process JSON. Decide which account and contact records it may update. Use a dedicated test contact and phone number for validation. A call-start notification is asynchronous. Do not depend on its response to delay the call, rewrite the greeting, or supply information the assistant must have before speaking.

Configure the assistant

  1. Open the assistant’s Call Settings.
  2. Under Webhooks, enter the call-start destination in Incoming webhook if your workflow needs it.
  3. Enter the results destination in Post-call webhook.
  4. Wait for the settings to show Saved.
  5. Use the test control to check basic reachability, then make a real test call. The test control sends a sample; it is not proof of the real event’s contents.
  6. Inspect both received requests and associate them with the test call before creating mappings.

Map the correct event

The current call-start notification uses event: "call_started" and includes call_control_id, direction, to, from, contact_id, and assistant_id. Contact identity can be absent. The assistant’s post-call webhook sends the following flat object. Text/identity fields are strings or null, numeric duration fields are numbers or null, collections default to empty arrays or objects, and added_to_wallet is always true in this payload. Do not infer a closed list of values for free-text provider/analysis fields. Use contact_id to identify the contact. Capture your own event before wiring a CRM action. The public v3 API response envelope and other webhook types are separate contracts.

Verify delivery and processing

Complete a call with a recognizable detail. Confirm the receiver captured its payload, wrote to the correct record, and completed any downstream action. Test a missing summary and a repeated event. Use call_id to avoid duplicate notes or messages. Respond promptly: the post-call request times out after 10 seconds; the call-start request uses 5 seconds. Do not rely on guaranteed retries or exactly-once delivery. A receiver should record failures and provide a way to reconcile missing call results.

Troubleshooting

  • Test button works but no real event arrives: check the selected assistant and saved URL, then inspect the real call and receiver logs.
  • Request arrived but CRM did not update: verify identity mapping, authorization, and each downstream action’s result.
  • Missing transcript or analysis: leave the value unknown and handle it explicitly; do not reuse a previous call’s value.
  • Duplicate notification: record processed call IDs before sending.
Save results to the CRM · Send a final summary · Voice settings reference