Шаблон інтеграції телефонії з 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.

Перед стартом cтворіть середовище у форматі .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 прямо сьогодні