Twilio — международный телекоммуникационный провайдер. Он позволяет боту звонить клиентам и соединять их с вашими сотрудниками в любой из 100+ стран, где Twilio предлагает телефонные номера, включая Мексику, Бразилию, Турцию, Испанию, Германию, Францию, ОАЭ, Таиланд, Малайзию и многие другие.

Что вы получаете после подключения Twilio:

  • звонок клиенту в один клик прямо из карточки диалога;
  • автоматические звонки по сценариям — бот звонит клиенту и зачитывает текстовое сообщение вслух;
  • групповые звонки — бот звонит клиенту и соединяет его с первым доступным сотрудником;
  • запись всех звонков, ссылка на запись сохраняется в переменных заказа;
  • события звонка (звонок, ответ, завершение) прямо в диалоге — их можно использовать для построения сценариев.

Шаг 1. Создайте аккаунт и купите номер

  1. Зарегистрируйтесь на twilio.com и пройдите процесс верификации.
  2. В консоли Twilio откройте Phone Numbers → Buy a number и выберите номер в нужной стране. Убедитесь, что Voice включен — некоторые номера поддерживают только SMS и не могут использоваться для звонков.

Шаг 2. Скопируйте учетные данные

На главной странице консоли Twilio в разделе Account Info вы найдете два значения:

Пункт Как выглядит
Account SID ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Auth Token скрыт; нажмите Show, чтобы увидеть его

⚠️ Скопируйте Auth Token точно так, как он отображается, без лишних пробелов до или после. Мы используем его для проверки подлинности каждого запроса от Twilio. Один невидимый лишний символ может привести к тому, что звонки будут работать, а события звонков не будут отображаться в диалоге.

Auth Token предоставляет полный доступ к вашему аккаунту Twilio и средствам на нем. Не отправляйте его через мессенджеры и не публикуйте где-либо.


Шаг 3. Подключите Twilio в вашем аккаунте

Откройте Проект → Интеграции → Телефония → Twilio и заполните три поля:

Поле Что ввести
Account SID из шага 2
Auth Token из шага 2
Twilio Number купленный номер в международном формате: +14155550100

Номер должен быть введен в формате E.164: +, код страны и номер телефона, без пробелов, скобок и дефисов.

После сохранения на странице появится callback URL. Скопируйте его. Затем откройте настройки купленного номера в консоли Twilio и в разделе Voice & Fax настройте:

  • A call comes in → Webhook → вставьте скопированный URL и выберите HTTP POST.

Без этой настройки исходящие звонки будут работать, но входящие звонки и события звонков в диалоге — нет.

Чтобы отключить интеграцию, очистите поле Account SID и сохраните настройки.


Шаг 4. Добавьте номера телефонов сотрудников

Twilio звонит сотрудникам на обычные телефонные номера — внутренних добавочных здесь нет.

Откройте вкладку Команда, выберите сотрудника и заполните поле Twilio Phone Number его полным номером телефона в том же формате:

+905551112233

Без этого номера кнопка звонка в карточке клиента не будет работать для этого сотрудника.


Звонок из карточки клиента

Рядом с номером телефона клиента в карточке диалога появится кнопка звонка. При нажатии запускается следующая последовательность:

  1. Twilio звонит сотруднику — сотрудник видит ваш номер Twilio как идентификатор вызывающего абонента.
  2. Сотрудник отвечает на звонок.
  3. Только после этого Twilio звонит клиенту и соединяет обе стороны.

Этот порядок намеренный: клиенту не приходится слушать гудки, пока сотрудник добирается до телефона. Если сотрудник не отвечает, клиенту вообще не звонят.


Звонки из сценариев бота

В калькуляторе доступны четыре метода.

twilio_employee_call(client_phone, employee_phone, caller_id)

Соединяет сотрудника с клиентом. Работает так же, как кнопка звонка в карточке клиента: сначала звонят сотруднику, затем клиенту.

twilio_employee_call(client_phone, "+905551112233")

Третий аргумент необязателен. Он указывает номер телефона, который клиент увидит как идентификатор вызывающего абонента. По умолчанию используется ваш номер Twilio.

twilio_group_call(client_phone, employee_phones, caller_id)

Звонит клиенту и, когда клиент отвечает, одновременно звонит всем сотрудникам из указанного списка. Звонок соединяется с первым ответившим сотрудником.

twilio_group_call(client.phone, "+905551112233,+905554445566,+905557778899")

⚠️ Здесь порядок обратный. В отличие от предыдущего метода, клиент отвечает первым и может слышать несколько секунд тишины, пока Twilio звонит сотрудникам. Это ограничение Twilio: одновременный звонок группе и соединение с первым ответившим работает только так. Если важно, чтобы клиенту не приходилось ждать, используйте twilio_employee_call.

twilio_play_message(client_phone, text, voice, language)

Звонит клиенту и зачитывает указанный текст с помощью синтезированной речи. Это полезно для напоминаний о встречах, подтверждений заказов и уведомлений о доставке.

twilio_play_message(client.phone, "Здравствуйте! Это напоминание о вашей встрече завтра в 15:00.", "alice", "ru-RU")

Голос alice универсален и поддерживает основные языки, включая tr-TR, es-ES, es-MX, pt-BR, de-DE, fr-FR, en-US, ru-RU и ar-XA.

Всегда указывайте язык явно — иначе Twilio может прочитать текст с английским произношением.

Не включайте в сообщение пароли, коды подтверждения или другую конфиденциальную информацию: на звонок может ответить голосовая почта.

Возвращает ссылку на запись звонка. Это редко нужно, потому что ссылка обычно появляется автоматически (см. следующий раздел). Может быть полезно, если ссылка на запись не была получена и ее нужно запросить снова.

twilio_get_record_link()

Если аргумент не указан, используется последний звонок клиента.


Переменные и события

После каждого звонка бот сохраняет следующие переменные в заказе клиента:

Переменная Что содержит
twilio_call_id идентификатор звонка Twilio
twilio_call_disposition результат звонка: completed, busy, no-answer, failed, canceled
twilio_call_duration длительность звонка в секундах
twilio_record_link ссылка на запись
twilio_record_id идентификатор записи Twilio

События в формате twilio_call_event <статус> отправляются в диалог. Вы можете использовать их как условия в своих сценариях:

Событие Когда отправляется
twilio_call_event initiated звонок создан
twilio_call_event ringing телефон звонит
twilio_call_event answered на звонок ответили
twilio_call_event completed звонок завершен
twilio_call_event busy / no-answer / failed / canceled звонок не удалось завершить
twilio_call_event recording запись звонка готова

⚠️ Дождитесь события recording перед использованием ссылки на запись, а не события completed. Twilio обрабатывает файл записи после того, как звонок уже завершен. На момент получения события completed переменная twilio_record_link еще пуста. Поэтому сценарий, который отправляет запись менеджеру или в CRM, должен запускаться по событию recording.

Типичный сценарий «не удалось дозвониться до клиента — отправьте ему сообщение» работает так: условие для twilio_call_event no-answer или busy → отправка сообщения клиенту.


Записи звонков

Запись включена по умолчанию для всех звонков с участием сотрудника. Обе стороны разговора записываются с момента ответа на звонок. Файлы хранятся в вашем аккаунте Twilio и тарифицируются Twilio.

⚠️ URL twilio_record_link указывает напрямую на Twilio и защищен учетными данными вашего аккаунта. Вы не можете просто открыть его в браузере или отправить клиенту — будет отображаться ошибка доступа. Чтобы скачать запись, откройте консоль Twilio и перейдите в Monitor → Logs → Calls, затем найдите звонок по его twilio_call_id.

⚖️ Запись звонков регулируется законом. Во многих странах — включая Германию, Францию, Испанию и многие штаты США — может требоваться согласие обеих сторон, а в некоторых случаях в начале звонка должно воспроизводиться устное уведомление. Как владелец аккаунта Twilio, вы несете ответственность за соблюдение применимых требований. Если эти правила применимы к вам, начинайте звонок с уведомления о записи или отключите запись в настройках вашего номера Twilio.


Устранение неполадок

Звонок не создается и возвращается ошибка аутентификации

Account SID или Auth Token неверны. Скопируйте их снова из консоли Twilio. Наиболее частые причины — лишний пробел или случайное копирование тестового токена вместо основного Auth Token.

Звонки работают, но в диалоге нет событий или записей

Callback URL не настроен в настройках номера Twilio (см. Шаг 3) или настроен с неправильным HTTP-методом. Метод должен быть HTTP POST.

Другая частая причина — Auth Token был изменен в Twilio, но в вашем аккаунте все еще настроен старый токен. В этом случае подписи запросов больше не совпадают, и все обратные вызовы отклоняются.

Ошибка 21606 или "From number not valid"

Номер, введенный в поле Twilio Number, либо не был куплен в вашем аккаунте Twilio, либо не поддерживает голосовые вызовы.

Откройте Phone Numbers → Manage → Active numbers и убедитесь, что номер указан и имеет возможность Voice.

Ошибка 21215 — Geo Permissions

По умолчанию Twilio блокирует звонки во многие страны как меру предотвращения мошенничества.

Откройте Voice → Settings → Geo Permissions и включите нужные направления.

Клиент звонит, но карточка диалога создается для номера сотрудника

Callback настроен с неправильным URL. Скопируйте callback URL со страницы интеграции еще раз, убедившись, что скопирован весь URL, включая все после вопросительного знака.

Пробный аккаунт: Twilio воспроизводит голосовое сообщение перед звонком

Это стандартное поведение для пробных аккаунтов Twilio. Пробные аккаунты также могут звонить только на проверенные номера телефонов.

Пополните счет и перейдите на полный аккаунт Twilio.