Skip to main content
Actions

Send call data to your system

After every call, send the summary, transcript and collected data to your CRM, webhook or database.

API Call sends the call to your own system once it has ended — the summary, transcript, mood and everything the agent collected. Use it to create a lead in your CRM, start an automation or keep your own records. If your system is down, the request is retried and nothing is lost.

Set it up​

  1. Add the action

    Open the agent → Actions → Add Tool → Post call → API Call.

  2. Point it at your endpoint
    FieldWhat to enter
    Namee.g. CRM lead sync
    ConditionWhen to send it, e.g. if the caller wants to buy. Empty: after every call
    API Endpoint URLYour endpoint, e.g. https://hooks.example.com/hanc
    HTTP MethodPOST for most systems; GET, PUT, PATCH, DELETE work too
    Headers, Query ParametersOptional, e.g. an API key
  3. Shape the request (optional)
    • Body (JSON) — your own fields. Type {{ to insert a call variable, e.g. {"lead": "{{firstname}} {{lastname}}", "phone": "{{call_from}}"}.
    • Send only my fields — leaves out the standard call data, for a system that accepts only its own structure.
  4. Decide what happens on failure
    • Retries on failure — the pauses before each new attempt when your endpoint does not answer with 2xx. Default: 1 min, 5 min, 30 min, 2 h, 6 h, 24 h, 48 h.
    • Failure notification — an email after the last attempt (default), after every failed attempt, or never. Send to: empty means the account owner.

What will my endpoint receive? in the editor shows the exact request.

What your endpoint receives​

For POST, PUT and PATCH, a JSON body — your fields merged with the call's fields:

{
"id": "6ac7ea6eca60c6024b465c70",
"agent_id": "6ac2a93e36bad261cf088684",
"call_from": "+431234567890",
"call_to": "+439876543210",
"direction": "inbound",
"call_type": "phone",
"call_status": "success",
"start_timestamp": 1730000000000,
"end_timestamp": 1730000187000,
"duration": 187000,
"transcription": [
{ "speaker": "agent", "content": "Hello…", "timestamp": 1730000001000 },
{ "speaker": "user", "content": "Hi…", "timestamp": 1730000003000 }
],
"call_summary": "Customer asked about pricing…",
"task_achieved": true,
"sentiment": { "sentiment": "positive", "explanation": "…" },
"custom_analysis_data": { "name": "John", "email": "john@example.com" },
"collected_data": {},
"transfer_history": [],
"recording_url": "https://…",
"disconnection_reason": "user_hangup",
"is_anonymous": false,
"is_simulation": false,
"created_at": 1730000000000,
"updated_at": 1730000187000
}

For GET and DELETE the same fields go into the query string, without the nested ones (transcript, sentiment, collected data).

Every request carries X-Hanc-Delivery-Id — the same on every attempt of one delivery, so you can skip duplicates — plus X-Hanc-Attempt with the number of the attempt. Each attempt times out after 30 seconds. Every attempt is listed in CRM → Communications, where a failed delivery can be sent again. Details: Webhooks & delivery.

Use cases​

  • Create a lead or a ticket in your CRM.
  • Start a no-code automation with the call's data.
  • Keep your own call archive.