Twilio для Salesforce: Как отвечать на входящие звонки с помощью CRM

Автор: | 24.07.2026

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

В этой статье мы покажем, как использовать вашу Salesforce-организацию для управления телефонными звонками таким образом. К концу вы поймете, как объединить Force.com Site и библиотеку Twilio Helper для Salesforce, чтобы создавать интеллектуальные голосовые приложения.

Давайте пройдем через создание вашего первого приложения — Hello Monkey.

Язык разметки Twilio (TwiML) позволяет веб-приложению управлять живыми телефонными звонками с помощью инструкций XML. В начале звонка Twilio запрашивает новые инструкции TwiML с вашего сервера. Каждый раз, когда на телефоне выполняется действие, например нажатие клавиши, Twilio отправляет новый запрос на ваш сервер с обновленными данными, запрашивая новое набор инструкций TwiML.

Мы настроим страницу Visualforce в Force.com Site для ответа на запросы Twilio с инструкциями TwiML.

#### Необходимые условия

Для начала вам понадобится входящий телефонный номер Twilio. Вы можете использовать бесплатную пробную учетную запись Twilio или обновить свою учетную запись и получить собственный выделенный номер.

Вам также понадобится Salesforce-организация с включенными Force.com Sites. Для этих примеров мы рекомендуем использовать версию Developer Edition.

Наконец, вам нужно установить библиотеку Twilio Helper для Salesforce в вашу Salesforce-организацию.

#### Hello Monkey

— Создайте страницу Visualforce под названием hello_monkey (в разделе **Настройка | Настройка приложения | Разработка | Страницы**). Пока можно принять содержимое по умолчанию. — Twilio запрашивает TwiML у вашего приложения с помощью простого HTTP GET или POST. Чтобы обрабатывать эти запросы из Salesforce, вам нужно сделать страницу Visualforce доступной через Force.com Site. Перейдите в **Настройка | Настройка приложения | Разработка | Сайты** и создайте новый сайт (если у вас его еще нет). Отредактируйте список страниц Visualforce сайта и добавьте hello_monkey. Убедитесь, что вы активировали сайт. — Допустим, защищенный веб-адрес вашего Force.com Site — https://companyfoo.na14.force.com. Если вы перейдете в браузере по адресу https://companyfoo.na14.force.com/hello_monkey, вы должны увидеть свою страницу Visualforce.

— Если вы используете пробную учетную запись Twilio, перейдите на страницу панели управления на сайте Twilio. Найдите блок «Sandbox App» и вставьте URL вашей страницы hello_monkey (например, https://companyfoo.na14.force.com/hello_monkey) в поле «Voice URL». Нажмите «Сохранить», и ваша пробная учетная запись теперь будет указывать на ваш новый код hello monkey.

— Если вы используете платную учетную запись Twilio, перейдите на страницу «Phone Numbers» в вашем аккаунте на сайте Twilio. Если у вас еще нет телефонного номера Twilio, вы можете приобрести собственный номер, нажав кнопку «Buy a Number» справа на странице. Нажмите ссылку «Edit» рядом с номером телефона, который вы хотите использовать. Затем установите флажок «Voice» и вставьте URL вашей страницы hello_monkey (например, https://companyfoo.na14.force.com/hello_monkey) в поле «URL». Нажмите «Сохранить», и этот номер телефона теперь будет указывать на ваш новый код hello monkey.

— Чтобы завершить пример Hello Monkey, отредактируйте страницу Visualforce hello_monkey и замените ее содержимое следующим базовым примером кода:

Теперь возьмите телефон и наберите номер вашего приложения. Twilio запросит ваш URL, в нашем случае https://companyfoo.na14.force.com/hello_monkey, и выполнит приведенные выше инструкции XML. Сначала он скажет «hello monkey», а затем повесит трубку, так как больше нет инструкций.

Отлично! Вы настроили взаимодействие Twilio и Salesforce. Теперь давайте сделаем это интереснее. Когда кто-то звонит, мы попробуем поприветствовать его по имени.

Поскольку мы добавляем бизнес-логику в это приложение, нам понадобится Apex-контроллер. Создайте новый класс под названием HelloMonkeyController:

В этом примере код Apex проверяет параметр From, переданный Twilio в запросе, чтобы получить идентификатор звонящего. Затем мы ищем потенциальных клиентов или контакты по номеру телефона с помощью встроенного синтаксиса поиска Apex, который позволяет сопоставлять любой номер телефона в объекте — даже пользовательские поля телефонов, которые мы добавили.

Нам все еще нужно связать Apex-контроллер со страницей Visualforce, чтобы TwiML передавался Twilio при поступлении звонка. Замените содержимое вашей страницы Visualforce hello_monkey следующим кодом:

Теперь, если номер телефона совпадает с существующей записью потенциального клиента или контакта, мы называем его имя или слово «monkey», если идентификатор звонящего не распознан. Чтобы проверить это, создайте запись потенциального клиента или контакта с вашим номером телефона, затем позвоните на номер телефона вашего приложения и послушайте, как Twilio приветствует вас по имени.

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

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

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

Когда звонящий нажимает клавишу, нажатая клавиша отправляется POST-запросом на URL, указанный в атрибуте action обработчика глагола. В данном случае URL — hello_monkey_handle_key.

Чтобы ответить на нажатие клавиши, добавьте приведенный ниже код в вашу Salesforce-организацию.

1. Apex-класс HelloMonkeyHandleKeyController:

2. Страница Visualforce hello_monkey_handle_key:

Наконец, добавьте hello_monkey_handle_key в список страниц Visualforce вашего Force.com Site.

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

Назначение атрибута action=»{!redirect}» в элементе — перенаправить звонящего обратно к методу главного меню, если звонящий не нажал «1». В противном случае он получит команду .

Чтобы сымитировать запрос Twilio Digits и протестировать обработчик ответа, вы можете ввести следующий URL (используя собственный URL вашего сайта) в веб-браузере, что имитирует нажатие звонящим цифры «1»:

https://companyfoo.na14.force.com/hello_monkey_handle_key?Digits=1&From=%2B13105551212

Обратите внимание на поведение команд TwiML в этом примере:

— Обратите внимание, как под глаголом есть блок . «провалится» вниз, если звонок не удался, человек не ответил или линия занята. В этих случаях выполнится блок ниже и попрощается со звонящим!

— Глагол также «провалится» в , если удаленный звонящий повесит трубку. Это позволяет разместить дополнительную логику после звонка, например, использовать для подключения к другому номеру.

— Глагол позволяет соединить один звонок с другим. Если вы хотите инициировать новый исходящий звонок, а не соединять существующий звонок с другим номером, ознакомьтесь с ресурсом Twilio REST API Calls.

Теперь вы создали интерактивное телефонное приложение, работающее на Force.com и интегрирующее записи клиентов и пользователей вашей CRM Salesforce! Что вы будете делать дальше?

Чтобы узнать больше об использовании Twilio и Salesforce вместе, ознакомьтесь с полной документацией, включая темы, связанные с этой статьей:

Полный исходный код библиотеки помощника также можно найти на GitHub.

Присоединяйтесь к нам на Cloudstock в Сан-Франциско 15 марта, чтобы узнать больше о том, как усилить ваше CRM-приложение облачными коммуникациями.