Одним из мощных способов использования 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 следующим кодом:
Обратите внимание, как блок
Когда звонящий нажимает клавишу, нажатая клавиша отправляется 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}» в элементе
Чтобы сымитировать запрос Twilio Digits и протестировать обработчик ответа, вы можете ввести следующий URL (используя собственный URL вашего сайта) в веб-браузере, что имитирует нажатие звонящим цифры «1»:
https://companyfoo.na14.force.com/hello_monkey_handle_key?Digits=1&From=%2B13105551212
Обратите внимание на поведение команд TwiML в этом примере:
— Обратите внимание, как под глаголом
— Глагол
— Глагол
Теперь вы создали интерактивное телефонное приложение, работающее на Force.com и интегрирующее записи клиентов и пользователей вашей CRM Salesforce! Что вы будете делать дальше?
Чтобы узнать больше об использовании Twilio и Salesforce вместе, ознакомьтесь с полной документацией, включая темы, связанные с этой статьей:
Полный исходный код библиотеки помощника также можно найти на GitHub.
Присоединяйтесь к нам на Cloudstock в Сан-Франциско 15 марта, чтобы узнать больше о том, как усилить ваше CRM-приложение облачными коммуникациями.