🔌 Integrations · Webhooks

Connect Sayelo to your business software.

The webhooks of Sayelo, the AI voice agent, send every handled call to your CRM, ticketing tool or scheduling tool: summary, analysis and contact record, with no re-entry. They are included in all 4 plans, from €39 excl. VAT/month, take 2 minutes to set up, and every delivery is signed with HMAC-SHA256.

✓ Included in all paid plans✓ Set up in 2 minutes✓ Signed with HMAC-SHA256
POST https://votre-logiciel.fr/webhooks/sayelo
X-Sayelo-Event: call.completed
X-Sayelo-Delivery: dlv_9f2c47e1a8b3
X-Sayelo-Signature: sha256=1e0e6a…

{
  "event": "call.completed",
  "call": {
    "duration_seconds": 154,
    "from": "+33 6 12 34 56 78",
    "outcome": "Rendez-vous pris",
    "agent": "Accueil — Cabinet Vernet"
  },
  "contact": {
    "first_name": "Marie",
    "last_name": "Lefèvre",
    "company": "Lefèvre Immobilier"
  },
  "summary": "Marie Lefèvre souhaitait déplacer son
    rendez-vous de jeudi. Créneau de vendredi
    10 h 30 proposé, confirmé et enregistré.",
  "analysis": {
    "key_points": ["Report de rendez-vous"],
    "actions": ["Confirmer la salle 2 vendredi"],
    "sentiment": "positif"
  }
}

Setup

Two minutes, three steps.

1

Add the webhook

In the app: “Account” → “Webhooks”, add a webhook. Paste your software's URL and choose the events. The signing secret is generated automatically.

2

Send a test

The “Send a test” button checks the connection immediately. A log shows the last 20 deliveries: status, HTTP code, date.

3

It's live

Every handled call arrives in your tool. Need to pause an agent? In “Account” → “Webhooks”, its switch stops its calls being sent without affecting the others.

Use cases

What your teams will no longer have to re-enter.

🎫

After-sales tickets created automatically

A customer reports a problem by phone? The message.taken event creates the ticket in your tool, with the summary and contact details.

🗂️

The call record in the CRM

Every conversation goes into the customer record: summary, key points, actions to take. The sales history builds itself.

📞

Callback requests tracked

“Call me back” requests become tasks in your tracking tool, instead of sitting in an inbox.

Reference

Events.

Two events cover a call's life cycle. You choose which ones to receive, webhook by webhook.

EventSent when…
call.completedA call has been handled by the agent — with its duration, outcome, summary and analysis.
message.takenThe agent has taken a message or a callback request. Ideal for creating tickets.

What is sent.

Each delivery is a JSON POST containing the call information (duration, number, outcome, agent), the contact record from the directory (surname, first name, company), the conversation summary, the structured analysis (key points, actions to take, sentiment) and a direct link to the call record in the app, where the transcript and recording can be found.

The schema above is an illustrative example — the easiest way to see the exact format sent to your software is the “Send a test” button.

Headers.

HeaderPurpose
X-Sayelo-EventThe event type: call.completed or message.taken.
X-Sayelo-DeliveryThe unique ID of the delivery. It stays the same on a retry: ignore IDs you have already processed to avoid duplicates.
X-Sayelo-SignatureThe HMAC-SHA256 signature of the request body, calculated with your secret (sha256=…).

Security

Check that it really is Sayelo.

Every request is signed with HMAC-SHA256 using the secret generated when the webhook was created. By recalculating the signature on the receiving end, you can be sure the delivery comes from Sayelo and that the body has not been tampered with.

Audio and transcripts never pass through the webhook: the payload contains a link to the call record in the app, where they remain available.

// Node.js — vérifier la signature
const crypto = require("crypto");

function vientDeSayelo(corpsBrut, signature, secret) {
  const attendu = "sha256=" + crypto
    .createHmac("sha256", secret)
    .update(corpsBrut, "utf8")
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(attendu),
    Buffer.from(signature)
  );
}

Reliability

Your software is unavailable? We try again.

If a delivery fails, Sayelo automatically resends the request after 2 minutes, 10 minutes, 30 minutes and then 2 hours — five attempts in all. The X-Sayelo-Delivery header stays the same from one attempt to the next: your receiver can ignore a delivery it has already processed, so no duplicates are possible. The log of the last 20 deliveries, in the app, shows the status and HTTP code of each attempt.

Outbound webhooks are included in all paid plans.

Your calls in your tools,
with no re-entry.

Two minutes to set up, an immediate test, and every handled call goes into your business software.

Try free for 14 days →