Graine AI

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.

POST
/all_processing_completed

Authorization

Authorization
Required
Bearer <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/jsonRequired

event_type
Required
string | null

Which event this is. Branch on this.

event_id
Required
string | 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_id
Required
string | 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.

status
Required
string | 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.

Response Body