Транскрибация звонков из CRM через API: схема интеграции

Записи звонков лежат в CRM или у телефонии, но слушать их никто не успевает. Если отправлять каждую запись в API распознавания речи, в карточке сделки появится текст разговора: видно, что обещали клиенту, и всё находится поиском. Вот схема такой интеграции на API Слова.

Содержание · 5 разделов

Зачем текст звонка в CRM

  • Договорённости под рукой. Сумма, срок и обещания клиенту видны в карточке сделки, а не только в памяти менеджера.
  • Поиск по разговорам. Возражения или «перезвоните в пятницу» находятся поиском, а не прослушиванием.
  • Разбор звонков. Руководитель читает разговор за пару минут и переслушивает только спорное место по таймкоду.

Схема интеграции

  1. Телефония или CRM сохраняет запись звонка и даёт на неё ссылку или файл.
  2. Ваш обработчик отправляет запись в POST /api/v1/transcriptions — файлом или ссылкой audio_url — с ключом API в заголовке Authorization, уникальным Idempotency-Key и ID звонка в external_id.
  3. Когда обработка закончится, Слово пришлёт подписанное уведомление на адрес из настроек API. Можно и опрашивать GET /api/v1/transcriptions/:id, пока статус не станет ready или failed.
  4. Обработчик забирает текст и реплики с таймкодами и записывает их в примечание к сделке или контакту. Файл TXT, DOCX, PDF или SRT отдаёт GET /api/v1/transcriptions/:id/export.

Готовые запросы на cURL, Python и Node.js, формат уведомлений и проверка подписи — в документации API.

Что приходит в ответ

Звонок клиента в службу доставки · 31 секунда

Спикер 100:00:02

Добрый день! Хочу перенести доставку на пятницу.

Спикер 200:00:06

Здравствуйте! Пятница свободна, курьер приедет с десяти до двух.

В ответе API у каждой реплики есть speaker_id, начало и конец в секундах, а в speakers — имена участников. Кто из них менеджер, Слово не знает: подпишите роли в своей системе.

Вместе с текстом приходят external_id, длительность и списанные секунды — по ним удобно связать результат со звонком и сверить расход.

Что учесть

  • Один UUID на звонок. Повтор запроса с тем же Idempotency-Key в течение суток вернёт ту же запись без второго списания, а сам ключ остаётся занятым 30 дней — новый звонок с ним не отправить.
  • Ссылка должна открываться напрямую: без редиректов, логина и с публичного адреса. Слово скачивает файл до того, как примет запрос.
  • Баланс — на всю запись. Записи через API распознаются только целиком: если времени не хватает, придёт ошибка, а не начало текста.
  • Уведомление может прийти повторно, поэтому обработчик проверяет подпись и не записывает один звонок дважды.
  • Ключ — только на сервере. Ключ с правом записи отправляет записи за счёт баланса, но не может покупать время или управлять аккаунтом. Для отчётов хватит ключа только для чтения.

Если с записями работает ИИ-ассистент, а не ваш сервер, удобнее подключить Слово по MCP.

Чек-лист

  • Ключ API хранится на сервере, у ключа минимально нужные права.
  • На каждый звонок — свой UUID, ID звонка передаётся в external_id.
  • Ссылка на запись открывается без логина и редиректов.
  • Адрес для уведомлений указан, подпись проверяется, повторы не создают дубли.
  • Баланса хватает на всю длительность записи.
  • Текст с таймкодами записывается в карточку сделки, роли участников подписаны.