Шаблон интеграции телефонии с CRM

Используйте Custom Telephony Starter Kit для интеграции SendPulse CRM с любым внешним сервисом телефонии. Он содержит готовые маршруты и примеры на PHP с использованием Laravel, Docker для быстрого развертывания и пакет https://packagist.org/packages/sendpulse/market-rest-api для взаимодействия с сервисами SendPulse.

В статье рассмотрим, как настроить и начать работу с Custom Telephony Starter Kit.

Требования к среде

Среда разработки должна поддерживать PHP версии не ниже 8.2, а установка зависимостей может осуществляться через Composer.

Узнайте больше: Introduction to Composer.

Для сохранения состояния и очередей рекомендуется отдельно настроить базу данных. Локальный запуск с контейнерами и базой данных осуществляется через Docker и docker-compose.

Перед началом создайте файл окружения в формате .env в корне проекта и укажите в нем данные приложения Marketplace: SENDPULSE_APP_ID и SENDPULSE_APP_SECRET.

Аутентификация

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

  • название приложения,
  • идентификатор приложения,
  • иконку приложения в формате PNG и размере 64х64 px,
  • ссылку на инициализацию звонка.

Пакет sendpulse/market-rest-api инкапсулирует весь процесс авторизации в SendPulse Marketplace.

В проекте уже реализован маршрут /install, который получает code от сервиса маркетплейса и создаёт соответствующий запрос с указанными SENDPULSE_APP_ID и SENDPULSE_APP_SECRET.

В ответ приложение получает client_id и client_secret и обменивает их на токен пользователя приложения.

Узнайте больше: Авторизация пользователя приложения.

Маршрут инициации звонка

С помощью маршрута /custom-telephony/call получите данные от CRM о начале звонка, чтобы передать их в сервис телефонии и начать звонок.

Параметры запроса:

integrationId number Идентификатор интеграции сервиса.
phone string Телефон в международном формате.

Пример тела запроса в формате JSON:

{
  "integrationId": 123,
  "phone": "+380631234567"
}

Успешный ответ сервера возвращает статус 200 OK.

Обработка вебхуков

Получайте запросы от внешнего сервиса телефонии о начале/завершении звонков с набором параметров через маршрут /custom-telephony/webhooks.

Такие параметры могут отличаться в зависимости от сервиса телефонии и включать:

call_id string Уникальный идентификатор звонка.
event string Тип события: начало или завершение звонка.
type string Тип звонка: входящий или исходящий.
phone string Телефон в международном формате.
duration number Длительность звонка.
is_success boolean Успешность звонка: был ли он совершён или нет.
token string Токен для авторизации вебхуков.

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

Starter Kit и структура проекта

Основные файлы Custom Telephony Starter Kit на PHP размещены в директории app/ и включают директории Models, Controllers, Requests и Repositories.

Основные маршруты размещены в файлах routes/web.php и routes/api.php. API-эндпоинт /api/boards демонстрирует возврат списка досок в формате JSON для тестирования авторизации и базовой работы REST.

Удаление приложения

Во время деинсталляции приложения выполняется POST-запрос на маршрут /uninstall, а также удаляется пользователь приложения.

Узнайте больше: Удаление приложения пользователем.

Оцените, насколько полезна статья "Шаблон интеграции телефонии с CRM"

Оценка: 5 / 5 (8)

Популярное в нашем блоге

Начните пользоваться сервисом SendPulse прямо сегодня