Calls to your CRM
A phone call reaches your CRM as finished data
Heilo records the call, turns it into a transcript and a set of agreements, then delivers them to the system your team already uses — over a signed webhook or the REST API.
Heilo never speaks to the caller. It records, writes it down and hands it over.
How it works
From the phone to a record in your CRM
Four steps, three of which happen without the rep doing anything.
The call
A customer dials the team's dedicated number, or a rep dials out from it. The recording is made on Heilo's side, not by an app on the handset.
Transcription
The recording becomes text, split by speaker, with a timestamp on every utterance.
Agreements
The transcript yields separate fields: a summary, the agreements, the follow-up items, contact details and the date the customer named.
Delivery
The event goes to your URL over a signed webhook, or waits to be read through the REST API. What happens next is your system's decision.
Payload
This is the event your system receives
A shortened call.completed event. The full field list lives in the API reference.
POST <your URL>
content-type: application/json
heilo-signature: t=1757236462,v1=4f3a...
heilo-event-id: 1bf3a5e2-9c41-4d7a-8f10-2b6e0d3c5a91
heilo-event-type: call.completed
{
"api_version": "2026-06-15",
"event_id": "1bf3a5e2-9c41-4d7a-8f10-2b6e0d3c5a91",
"event_type": "call.completed",
"resource_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-09-07T09:14:22Z",
"data": {
"call_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"direction": "inbound",
"customer_phone_e164": "+48601234567",
"duration": 214,
"recording_url": "https://www.heilo.io/api/v1/calls/3fa85f64-.../recording.mp3?token=...&exp=...",
"transcript_processed": {
"detected_language": "pl",
"caller_name": "Marek Zielinski",
"summary": "...",
"key_decisions": ["..."],
"follow_up_items": ["..."],
"preferred_date": "2026-09-12",
"lead_score": 8
}
}
}The heilo-signature header is computed over the whole request body, so your receiver can reject anything that did not come from us. A failed delivery is retried, and every attempt shows up in the delivery log.
Scope
What reaches your CRM, and what does not
It does
- The recording of the call and its transcript, split by speaker.
- The summary, the agreements, the follow-up items and the date named — as separate fields, not one block of text.
- The other party's number, the direction of the call and how long it lasted.
It does not
- Calls made outside Heilo from a private handset. Those either happen on a Heilo number or need a listener invited into them.
- Revenue forecasting, opportunity scoring and a pipeline view. That is what revenue intelligence platforms are for, and it is not our scope.
- A periodic employee review. Heilo rates how a single call was handled on a scale of one to five, but nothing turns those ratings into a ranking or a quarterly summary.
Three routes
How to connect your system
The choice mostly depends on whether someone can write the receiver.
Webhook
Your URL gets the event the moment the call has been processed. The lowest latency, and no polling.
REST API
Read calls, contacts and transcripts with an API key carrying explicit scopes. Right when your system would rather ask on its own schedule.
Zapier or Make
For when nobody is going to write code. The receiver is a scenario, and from there the data goes to a CRM, a spreadsheet or a chat channel.
When something does not answer
A failed delivery is not lost data
- Transient failures — HTTP 408, 429, 5xx and network errors — are retried five times with a growing gap: after two minutes, five, thirty and then two hours.
- Permanent failures — HTTP 401, 403 and 422 — pause the subscription immediately, with no retry, because repeating the request would change nothing.
- When a subscription is paused, the account owner is emailed, and events sitting in the dead-letter queue can be sent again from the delivery log.
Boundaries
Three things worth saying plainly
Heilo does not replace a B2B team's CRM
For a team that has its own system, Heilo supplies the data: the calls flow out and you keep working where you already worked. The built-in contacts, deals and tasks are a separate thing — for small service businesses that have no system of their own.
Interface language is not transcription quality
The product ships in six interface languages. How well a given language is recognised in a phone recording is a different question, and it depends on line quality, proper names and trade vocabulary. We have not published a measurement yet, so we do not promise one.
Asking where the data goes is asking about subprocessors, not one country
The call passes through a telephony provider, a language model does the transcription, and the data sits in a database and with a hosting provider. Each of them is named in the privacy policy — and that is the list to check before signing a processing agreement.
Questions that come up before rollout
Connect your CRM to the calls you already make
Creating an account takes a few minutes; the API key and the webhook subscription you make yourself in the panel.
Create an accountNo CRM of your own?
Heilo has built-in contacts, deals and tasks. For a small service business that is usually enough, and there is nothing to connect.
See the call assistant