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.
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
In the app: “Account” → “Webhooks”, add a webhook. Paste your software's URL and choose the events. The signing secret is generated automatically.
The “Send a test” button checks the connection immediately. A log shows the last 20 deliveries: status, HTTP code, date.
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
A customer reports a problem by phone? The message.taken event creates the ticket in your tool, with the summary and contact details.
Every conversation goes into the customer record: summary, key points, actions to take. The sales history builds itself.
“Call me back” requests become tasks in your tracking tool, instead of sitting in an inbox.
Reference
Two events cover a call's life cycle. You choose which ones to receive, webhook by webhook.
| Event | Sent when… |
|---|---|
call.completed | A call has been handled by the agent — with its duration, outcome, summary and analysis. |
message.taken | The agent has taken a message or a callback request. Ideal for creating tickets. |
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.
| Header | Purpose |
|---|---|
X-Sayelo-Event | The event type: call.completed or message.taken. |
X-Sayelo-Delivery | The unique ID of the delivery. It stays the same on a retry: ignore IDs you have already processed to avoid duplicates. |
X-Sayelo-Signature | The HMAC-SHA256 signature of the request body, calculated with your secret (sha256=…). |
Security
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
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.
Two minutes to set up, an immediate test, and every handled call goes into your business software.
Try free for 14 days →