Skip to main content

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.

1

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.

2

Transcription

The recording becomes text, split by speaker, with a timestamp on every utterance.

3

Agreements

The transcript yields separate fields: a summary, the agreements, the follow-up items, contact details and the date the customer named.

4

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

For the webhook and the REST API, yes — someone has to write the receiver and verify the signature. Without a developer the route is Zapier or Make: the receiver is a scenario there, and the connection to your CRM is clicked together rather than written.
It does not, and it will not. It can play a greeting and record a message, but it will not answer a customer's question or book a meeting. If you are looking for something that holds the conversation, you need a different category of tool.
In scope, not in price. A Gong-class platform analyses many calls at once, forecasts revenue and runs a coaching programme for a whole department. Heilo captures a single call and hands its data onward. Those are two different categories, and a small team rarely needs the first.
The delivery is retried five times with a growing gap, and failed attempts show in the delivery log together with the response your URL returned. The same calls can be read through the REST API, so a receiver outage does not mean lost data.

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 account

No 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