Вебхуки (Webhooks) – это метод передачи данных, который позволяет отправлять события в реальном времени от одной системы к другой. В качестве примера можно привести показ карточки звонка в CRM-системе (для таких CRM систем как АМО и Bitrix24 у Call-tracking.by есть готовые интеграции, которые настраиваются в личном кабинете на вкладке "Интеграции").

В нашем случае, вебхуки используются для отправки уведомлений о звонках от all-tracking.by к другим системам. Данная документация предназначена для разработчиков, которые хотят интегрировать нашу систему с другой системой с помощью вебхуков.


Данное решение поддерживают только номера А1 и МТС, так как обновление статистики производится в режиме реального времени (недоступно при использовании номеров Белтелеком и не белорусских операторов связи).


Для того, чтобы настроить получение уведомлений, вам необходимо в личном кабинете Call-tracking,by перейти на вкладку "Интеграции" и выбрать создание собственной интеграции.




Настройка вебхуков для отправки уведомлений о звонках


Блок "Основные"


1. Настройте URL-адрес конечной точки (endpoint URL), на который будут отправляться уведомления о звонках.


2. Выберите подходящий HTTP-метод для отправки уведомлений.


3. Решите, требуется ли проверка SSL-сертификата при установлении соединения с вашим сервером. Если требуется, убедитесь, что ваш сервер поддерживает SSL и имеет действующий SSL-сертификат.




Блок "События"


Решите, какие ивенты (события) вы хотите получать. По умолчанию будут отправляться все события о звонках, однако вы можете выбрать конкретные события.



Блок "Передача данных"


Определите параметры, которые вы хотите получать. 


Вы можете также изменить имена параметров, чтобы они соответствовали вашей системе или требованиям. 

Подробнее про параметры читайте ниже.




Блок "Дополнительно" (опциональный)


Определите дополнительные параметры, которые вы хотите получать. Вы можете выбрать до 5 параметров и указать для каждого параметра имя и значение. Эти параметры можно использовать, например, для аутентификации. Наиболее распространенный пример - некоторый ключ, чтобы никто больше не мог отправить вам запросы, или же указание о том, что запросы приходят из системы Call-tracking.by. Для этого предусмотрены дополнительные настройки.


 Настройка завершена. Все поля можно изменить при необходимости.


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


   {
        "webhook_name" => call_end",
        "time" => "2019-05-10T15:24:49+03:00",
        "call_status" => "end",
        "pbx_id" => "1557491089.930439",
        "campaign_id" => "777",
        "campaign_name" => "Контекст",
        "stat_source" => "Контекст гугл",
        "duration" => "102.0",
        "caller_number" => "+375290000000",
        "ads_number" => "+375295555555",
        "answer_number" => "+375297777777",
        "audio_path" => "https://vrecords.call-tracking.by/monitor/04ec5d3b",
        "utm_keyword" => "купить минск",
        "utm_campaign" => "minsk-t",
        "utm_source" => "google", 
        "utm_medium" => "cpc", 
        "utm_content" => "content",
        "roistat_id" => "", 
        "calltouch_id" => "asasasas",
        "google_analytics_id" => "", 
        "yandex_metrica_id" => "", 
        "custom_param" => "custom_value"
      }

Параметры  


webhook_name: название события stringВозможные значения: call_start, call_answer, call_end
time: время звонкаstringВремя в формате iso8601
call_status: статус звонкаstringТекущее событие (статус). Возможные значения: start, answer, end, busy, abandon.
pbx_id: уникальный идентификатор звонка string
campaign_id: уникальный идентификатор рекламной кампании колл-трекингinteger
campaign_name: имя кампании в системе колл-трекинг.
integer
Имя кампании задается системой колл-трекинга. Можно посмотреть в личном кабинете на вкладке "Настройки", блок "Активные кампании".
stat_source: нормализованный источник звонкаstringСформирован на основании utm-меток, реферала и названия отслеживаемого источника.
duration: продолжительность звонкаdoubleДля события начала звонка и ответа - продолжительность звонка нулевая.
caller_number: номер звонившегоstring
ads_number: номер колл-трекинг, на который поступил звонокstringНомер колл-трекинг, который был показан клиенту на сайте или размещен офлайн.
answer_number: номер, который ответил на звонокstringПустая строка в случае, если звонок не отвечен.
audio_path: ссылка на запись разговораstringЗапись по ссылке доступна, пока запись хранится в личном кабинете (исходя из настроек хранения записей в личном кабинете клиента).
utm_keyword: ключевое словоstringВ случае, если звонок поступил по динамической кампании.
utm_source: источник трафикаstringВ случае, если звонок поступил по динамической кампании.
utm_campaign: рекламная кампанияstringВ случае, если звонок поступил по динамической кампании.
utm_medium: тип трафикаstringВ случае, если звонок поступил по динамической кампании.
utm_content: содержание рекламной кампанииstringВ случае, если звонок поступил по динамической кампании.
roistat_id: уникальный идентификатор RoistatstringДоступен только при использовании динамического коллтрекинга и при наличии на сайте скрипта Roistat.
google_analytics_id: уникальный идентификатор Google AnalyticsstringДоступен только при использовании динамического коллтрекинга и при наличии на сайте скрипта Google Analytics.
yandex_metrica_id: уникальный идентификатор Яндекс Метрики
string

Доступен только при использовании динамического коллтрекинга и при наличии на сайте скрипта Яндекс Метрики.

calltouch_id: уникальный идентификатор сквозной аналитики Calltouch 
string
Доступен только при использовании динамического коллтрекинга и при наличии на сайте скрипта сквозной аналитики Calltouch. Сбор данного параметра включается по запросу личному менеджеру Call-tracking.by
custom_param: дополнительный параметр
string

Параметр, который вы прописываете в блоке "Дополнительно".