Call finished and fully processed
Sent once per call, to the endpoint on your webhook subscription (POST /v2/webhooks) or, if you have none, to the webhook_url configured on the agent.
Sent once per call, to the endpoint on your webhook subscription (POST /v2/webhooks) or, if you have none, to the webhook_url configured on the agent.
Deliveries are signed, retried on failure, and listed at GET /v2/webhooks/deliveries. Reply 2xx to acknowledge; anything else is retried. event_id is stable per EVENT — byte-identical across all four delivery attempts — so key your handler's dedup on it; a retry can arrive after your first attempt already succeeded, and it carries the same event_id. (X-Graine-Delivery-Id is the per-delivery id, for support, never for dedup.)
Rate limit: none — this is an event Graine delivers to you, not a request you make. Delivery pacing is the retry schedule (four attempts inside ~two minutes); your endpoint's only obligation is a 2xx within 30 seconds.
all_processing_completedAuthorization
AuthorizationRequiredBearer <token>
Your Graine API key. Create one in the dashboard under Developers, or via POST /v2/api-keys. Send it as Authorization: Bearer <key>.
In: header
Request Body
application/jsonRequiredevent_typeRequiredstring | null
Which event this is. Branch on this.
event_idRequiredstring | null
Unique per delivery. Use it to make your handler idempotent.
versionstring | null
Payload version.
timestampstring | null
When the event was emitted, ISO-8601 UTC.
call_idRequiredstring | null
The execution_id you received when the call was placed.
call_sidstring | null
The carrier's own leg id. For support tickets only.
agent_idstring | null
The agent that conducted the call.
agent_namestring | null
That agent's name at the time of the call.
organization_idstring | null
Your organization.
workspace_idstring | null
Same value as organization_id.
statusRequiredstring | null
The call's outcome — completed, failed, busy, no-answer…
sub_statusstring | null
A finer reason for the status, when there is one.
call_typestring | null
inbound or outbound.
calling_sourcestring | null
What placed the call — api, campaign, retry, follow-up.
custom_args_valuesobject | null
The variables you sent with the call.
to_numberstring | null
The number dialled, E.164.
from_numberstring | null
The caller ID used, E.164.
bulk_list_idstring | null
The batch this call belonged to, if any.
called_onstring | null
When the call was placed, in the campaign's timezone.
created_atstring | null
When the record was created, ISO-8601 UTC.
call_costnumber | null
Total cost of the call.
call_cost_currencystring | null
Currency of call_cost. USD unless configured otherwise.
cost_breakdownobject | null
Cost per component: llm, network, platform, synthesizer, transcriber.
call_durationnumber | null
Talk time in seconds, as the carrier reported it.
agent_message_countinteger | null
How many turns the agent took.
user_message_countinteger | null
How many turns the customer took.
overall_latency_secondsnumber | null
Aggregate response latency across the call.
first_utterance_secondsnumber | null
How long before the agent first spoke.
transcriptarray | null
The conversation, one entry per turn, in order.
transcript_statusstring | null
available | unavailable | truncated.
recording_urlstring | null
Where to fetch the audio, when recording was on.
recording_durationnumber | null
Length of the recording in seconds.
retry_countinteger | null
How many times this contact had already been tried.
attemptsarray | null
Every attempt made on this contact, oldest first.
parent_call_idstring | null
The call this one is a retry or follow-up of.
retry_chainarray | null
Every execution_id in this contact's retry chain.
platform_analysisobject | null
What the platform extracted — summary, sentiment, outcome.
platform_analysis_statusstring | null
completed | partial | pending | unavailable.
client_analysisobject | null
The Custom Analysis variables you configured on the agent.
client_analysis_statusstring | null
completed | partial | pending | not_configured.
tool_call_logsarray | null
Tools the agent invoked during the call.
answered_by_voice_mailboolean | null
True when a machine picked up.
hangup_bystring | null
Who ended the call — agent or customer.
ab_version_idstring | null
The A/B experiment this call was routed by, if any.
ab_is_variantboolean | null
True when this call used the challenger agent.
processing_incompleteboolean | null
True when the event was sent before every field was ready.
missing_fieldsarray | null
Which fields were still missing when processing_incomplete is true.

