Call Tracking Metrics API and Webhooks
Access call metrics through a read-only API and receive real-time updates through webhooks.
Call Tracker provides a read-only API for calls, trackers, messages, voicemails, companies, and usage. When you need updates as they happen, webhooks push call, text, and voicemail data to your endpoint in real time, so you do not need to poll the API. Together, they let teams connect Call Tracker to a CRM, reporting stack, or automation tool.
What you can build with webhooks
- Push every finished call into your CRM with full attribution (source, keyword, landing page).
- Post new calls, texts, and voicemails to a Slack channel or internal dashboard.
- Trigger follow-up workflows in n8n, Make, or Zapier when a call finishes.
- Send call transcriptions to an AI model like Claude to summarize the conversation and score the lead.
- Keep a data warehouse or spreadsheet in sync without writing a polling job.
Events you can subscribe to
When you register a webhook, you can subscribe to all events or pick specific ones:
call.received- a call starts ringing on one of your tracking numberscall.finished- a call ends, with duration, caller details, and attributioncall.recording.available- the call recording is readymessage.received/message.sent- inbound and outbound text messagesvoicemail.received- a new voicemail, including its transcriptiontracker.created/tracker.updated- tracking number campaigns changeusage.created- billing usage records
What a webhook payload looks like
Every event is delivered as a JSON POST to your endpoint with the same envelope: the event type, the object it relates to, a data section with the object’s full API fields, and a timestamp. An abridged call.finished event:
{
"object": "call",
"type": "call.finished",
"timestamp": "2026-07-28T14:03:22.418",
"webhook": { "id": 42, "target": "https://example.com/hooks/calltracker" },
"data": {
"id": 512345,
"status": "completed",
"company_id": 1042,
"company_name": "Summit Auto Repair",
"tracker_name": "Google Ads",
"tracking_number": "+15125550137",
"caller_number": "+15125550122",
"caller_name": "JANE DOE",
"caller_city": "AUSTIN",
"call_duration": 184,
"source_channel": "paid",
"source_keyword": "brake repair near me",
"landing_page": "https://example.com/brakes",
"is_first_time": true,
"value": "250.00",
"tags": ["booked"],
"transcription": "..."
}
}
The data section carries all the fields available on our API, so your endpoint gets everything in one delivery: caller details, duration, recording, web attribution (source, keyword, landing page, gclid), tags, and transcription.
Delivery and retries
- Deliveries are JSON
POSTrequests with aContent-Type: application/jsonheader. - Your endpoint should respond with HTTP
200. Anything else triggers a retry: we retry up to 5 times on an exponential backoff schedule. - If your endpoint keeps failing, or returns HTTP
410, the webhook is deactivated so it will not pile up failed deliveries. Re-enable it from your company settings once your endpoint is healthy.
Use webhooks with n8n
n8n receives incoming webhooks with its built-in Webhook node, so a Call Tracker workflow takes a few minutes to wire up:
- Add a Webhook node to a new workflow and set its HTTP method to
POST. The node shows a test URL and a production URL. - Copy the test URL, register it as a webhook in your Call Tracker company settings, and subscribe to the events you want (for example
call.finished). - Select “Listen for Test Event” in n8n, then place a test call. The event payload appears in the editor so you can map fields like
data.caller_numberanddata.source_channelinto the rest of your workflow. - Publish the workflow and swap the registered URL for the node’s production URL.
From there, connect any of n8n’s hundreds of nodes: create a CRM contact, send a Slack message, append to a Google Sheet, or call an AI model.
Use webhooks with Make
In Make (formerly Integromat), incoming webhooks are handled by the Webhooks app:
- Create a new scenario and add a custom webhook from the Webhooks app. Make generates a unique URL you can call from an external service.
- Register that URL as a webhook in your Call Tracker company settings and pick your events.
- Place a test call so Make can capture the payload and detect the data fields.
- Build the rest of the scenario with any Make modules: CRMs, spreadsheets, email, SMS, or AI apps.
Send call recordings to AI for analysis
The call.recording.available event includes a URL to the recording in data.recording, so it’s the event most teams use to feed calls into an AI workflow:
- Subscribe to
call.recording.availablein your webhook settings. - When the event fires, your endpoint downloads the recording and sends it to an AI model for transcription, summarization, or lead scoring.
- Write the AI output back to your CRM, post it to Slack, or update the call record.
If you only need the transcript, subscribe to call.finished and use data.transcription. For voicemail audio, use voicemail.received. n8n and Make both ship AI modules that read the recording URL straight from the webhook payload, so the whole pipeline can be built without code.
Push to anything that accepts HTTP
The full call record arrives with caller details, attribution, duration, and tags, so you can route it wherever calls need to go. Common targets: Salesforce, HubSpot, Google Sheets, n8n, Make, or your own backend. The endpoint receives the full record:
{
"id": 512345,
"caller_number": "+15125550122",
"caller_name": "JANE DOE",
"caller_city": "AUSTIN",
"tracking_number": "+15125550137",
"call_duration": 184,
"source_channel": "paid",
"source_keyword": "brake repair near me",
"landing_page": "https://example.com/brakes",
"is_first_time": true,
"value": "250.00",
"tags": ["booked"]
}
Get started
Webhooks are available on every plan. Register your first webhook in your company settings, and see the Webhooks Documentation for the full field reference. Not tracking calls yet? Start your 14 day trial and connect your stack in an afternoon.