Експорт у CRM: вихідний вебхук
Sayply не інтегрується з конкретною CRM — замість цього після кожного завершеного дзвінка він надсилає вихідний вебхук: HTTP POST із підписаним JSON на адресу, яку ви вкажете. Прийняти його може CRM із вхідними вебхуками, n8n, Make, Zapier або власний скрипт.
Вебхуки доступні на тарифах Pro і Business.
Налаштування
- Відкрийте app.sayply.com/Integrations.
- Впишіть адресу приймача в Webhook URL і натисніть Save.
- Натисніть Send test event — Sayply одразу надішле тестову подію, і ви побачите відповідь вашого сервера прямо на сторінці.
- Увімкніть доставку кнопкою Turn on.
Після цього кнопка Export to CRM у вікні підсумку надсилає дзвінок на вашу адресу.
Що приходить
Подія call.completed, JSON:
{
"event": "call.completed",
"version": 2,
"callId": "b584cf6d-…",
"contact": { "name": "…", "company": "…", "phone": "…", "email": "…", "messenger": "…", "role": "…" },
"call": { "startedAt": "2026-08-22T14:00:00+03:00", "endedAt": "…", "durationSeconds": 1830, "category": "Work", "medium": "Voice" },
"summary": { "title": "…", "overview": "…", "agreements": ["…"], "openQuestions": ["…"] },
"tasks": [ { "title": "…", "description": "…", "owner": "…", "dueAt": "2026-08-25" } ],
"transcript": null
}- Час — локальний час вашого комп'ютера, з офсетом.
dueAtбез часу — просто дата (2026-08-25); якщо в задачі вказано час — повний момент з офсетом.transcript—null, поки ви не увімкнете прапорець транскрипту при експорті; порожній масив означає «транскрипт увімкнено, але реплік не було».version—2з версії застосунку 0.3.0: уcontactдоданоrole(посада співрозмовника, як прозвучала в розмові). Поле лише додається — приймачі, написані під версію 1, працюють без змін. Якщо в розмові не прозвучало жодних даних співрозмовника,contact—null.
Перевірка підпису
Кожна доставка несе заголовки:
| Заголовок | Зміст |
|---|---|
X-Sayply-Event | назва події, зараз завжди call.completed |
X-Sayply-Delivery | ідентифікатор доставки — для дедуплікації |
X-Sayply-Timestamp | Unix-час надсилання, секунди |
X-Sayply-Signature | sha256= + HMAC-SHA256 |
Підпис рахується від рядка timestamp + "." + тіло_запиту секретом зі сторінки Integrations:
signature = "sha256=" + hex( HMAC_SHA256( secret, timestamp + "." + body ) )Порівняйте зі значенням заголовка — якщо не збігається, запит надіслав не Sayply. Секрет показується на сторінці лише за явним кліком Show secret; кнопка Regenerate миттєво ламає перевірку на вашому боці, доки ви не оновите секрет у приймачі.
Повтори й дедуплікація
Повторний експорт того самого дзвінка — кнопкою Retry у вікні підсумку чи Export to CRM з історії дзвінків — приходить із тими самими callId і X-Sayply-Delivery. Якщо ваша автоматизація зберігає оброблені ідентифікатори, повтор не створить дубль контрагента чи задач.
Sayply чекає на відповідь до 15 секунд; повільний приймач не блокує застосунок.