Настройка Webhook

В LeadBack предусмотрен вариант интеграции через настройку исходящего webhook. Это позволяет получать данные из сервиса (обратные звонки и чаты) в реальном времени. Информация о том что заказан обратный звонок будет передена на ваш URL-обработчик (он же webhook) в момент когда звонок состоится. Тоже самое относится и к информации по чатам на сайте.

Этот механизм удобно использовать для интеграции с внешней системой (например CRM).

Настройка Webhook

Для настройки вебхука нужно зайти в профиль нужного аккаунта LeadBack и найти подраздел API. В поле URL-адрес обработчика указать адрес куда будут отправляться события.

Настройка Webhook

Настройка адреса URL-обработчика для Webhook

Обратите внимание, чтобы настройки вебхук сохранились, адрес вы должны указать действующий адрес URL-обработчика. В момент сохранения, адрес проверяется на доступность (отправляется тестовый http-запрос). Если ваш обработчик вернет http-статус отличный от 200, настройки не будут сохранены.

Безопасность при использовании Webhook

Чтобы вы могли однозначно понимать что запрос на обработчик пришел от Leadback, используйте секретный параметр в URL (пример URL-обработчика с секретным параметром: https://myserver.com/webhook/leaback.php?key=WsETKhVTeNpiF4uNy2KfDYjMy). В коде обработчика вы будете проверять параметр key на соответствие заданному вами значению и если значение верное, то запрос на обработчик пришел от LeadBack.

Для обеспечения дополнительной безопастности (от перехвата данных) мы рекомендуем использовать https адрес (для этого у вас на сервере должен быть настроен валидный SSL-сертификат для домена).

Типы передаваемых событий

Структура данных

Для всех событий данные передаются в виде JSON объекта методом POST в поле payload. Ниже показан пример получения данных для php:

$payload = json_decode($_POST['payload'], true);

Для всех событий JSON-объект имеет единую структуру с 2 полями данных:

  • event_type — тип события. Доступны значения:
    • pre_call — предварительные данные о новом обратном звонке;
    • call — принят или пропущен обратный звонок;
    • chat_dialog — состоялся диалог в чате с оператором;
    • bot_dialog — состоялся диалог в чате с ботом;
    • check_webhook — проверка доступности webhook;
  • data — данные по событию.

Новый обратный звонок

Событие срабатывает перед запуском дозвона (event_type=pre_call) и когда был принят или пропущен обратный звонок с сайта (event_type=call).

В данных события доступны следующие поля:

ПолеТипОписание
id_callintID звонка
user_idintID клиента
widget_idintID виджета
date_createdatetimeДата и время создания заявки на звонок
date_updatedatetimeДата и время последнего обновления информации о звонке
callback_phonestringНомер телефона заказавшего обратный звонок
operator_phonestringНомер телефона сотрудника который принял звонок
sitestringДомен сайта на котором заказан обратный звонок
user_tariffstringТариф клиента
tariffed_minutesintПотрачено минут связи с баланса аккаунта
durationintПродолжительность разговора в секундах
record_urlstringСсылка на запись разговора
callback_answerstringЗаказавший звонок ответил на него (no - нет, yes - да)
visit_uuidstringID посетителя
visit_idstringID визита
visit_ipstringIP заказавшего обратный звонок
visit_sourcestringИсточник звонка
delayed_timedatetimeДата и время на которое перенесен звонок (если звонок заказан в не рабочее время)
statusstringСтатус звонка (complete - принят, failed - пропущен)
call_timedatetimeДата и время когда состоялся звонок
visit_dataobjectПолная информация о источнике звонка
visit_profileobjectДанные посетителя если были заполнены в форма онлайн чата (имя, email и телефон)

Информация о источнике звонка visit_data имеет следующие данные (поля для visit_data идентичны для всех типов событий):

ПолеТипОписание
visit_idstringID визита
date_visitdatetimeДата и время визита
visit_sourcestringИсточник звонка (значения: direct, internal, search, social, utm, cpc, email, unknown)
referer_urlstringАдрес источника визита
page_urlstringСтраница входа
call_urlstringСтраница звонка
ga_cidstringИдентификатор клиента для Google Analytics (Client ID)
roistat_visitstringRoistat номер визита (промокод), передается если на сайте используется код сервиса Roistat
visit_ipstringIP посетителя
visit_uastringБраузер посетителя (UserAgent)
utm_sourcestringUTM-метка source (для visit_source=utm или cpc)
utm_mediumstringUTM-метка medium (для visit_source=utm или cpc)
utm_campaignstringUTM-метка campaign (для visit_source=utm или cpc)
utm_termstringUTM-метка term (для visit_source=utm или cpc)
utm_contentstringUTM-метка content (для visit_source=utm или cpc)
search_enginestringПоисковая система для visit_source=search или cpc (значения: google, yandex, go.mail.ru, bing.com, yahoo.com, about.com, aol.com, ask.com, globososo.com, rambler.ru, tut.by, nigma.ru)
search_textstringПоисковая фраза
search_hrefstringСсылка на поисковую выдачу для фразы
Пример JSON данных для обратного звонка:
{
    "event_type": "call",
    "data": {
        "id_call": "402078",
        "user_id": "1",
        "widget_id": "4475",
        "date_create": "2017-04-19 13:16:00",
        "date_update": "2017-04-19 13:16:18",
        "callback_phone": "79000000000",
        "operator_phone": "79000000001",
        "site": "site.com",
        "user_tariff": "personal",
        "tariffed_minutes": 1,
        "duration": 7,
        "record_url": "http:\/\/www-nl-01-75.leadback.ru\/records\/2017\/04\/19\/68b1e7d1a2c2551f.3879783.23452.mp3?record_id=7672382",
        "callback_answer": "no",
        "visit_uuid": "f6be3906-1d3a-4372-8c63-1e517e518450",
        "visit_id": "a8509ba4-5b91-3889-9544-e3886da25f35",
        "visit_ip": "31.132.152.137",
        "visit_source": "direct",
        "delayed_time": null,
        "status": "complete",
        "call_time": "2017-04-19 13:16:00",
        "visit_data": {
            "visit_id": "a8509ba4-5b91-3889-9544-e3886da25f35",
            "date_visit": "2017-04-19 13:15:52",
            "visit_source": "direct",
            "referer_url": "",
            "page_url": "https:\/\/site.com\/",
            "call_url": "https:\/\/site.com\/",
            "ga_cid": "781661464.1505303250",
            "roistat_visit": "14525",
            "visit_ip": "31.132.152.137",
            "visit_ua": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\/602.4.8 (KHTML, like Gecko) Version\/10.0.3 Safari\/602.4.8"
        },
        "visit_profile": {
            "name": "Денис",
            "email": "mail@mail.ru",
            "phone": "79000000000"
        }
    }
}

Новый диалог в чате с оператором

Отправляется когда завершится диалог в чате с вашим онлайн оператором.

В данных события доступны следующие поля:

ПолеТипОписание
widget_idintID виджета
user_idintID клиента
dialog_idstringID диалога
chat_logarrayСообщения переписки посетителя с оператором
operatorobjectИнформация о операторе который вел диалог с посетителем
visit_dataobjectПолная информация о источнике визита посетителя
visit_profileobjectДанные посетителя если были заполнены в форма онлайн чата (имя, email и телефон)

Данные оператора в поле operator:

ПолеТипОписание
id_operatorintID оператора
operator_jidstringЛогин оператора
operator_namestringИмя оператора
avatar_typestringТип аватарки (custom, standart)
avatar_urlstringАдрес на аватарку оператора

История переписки в поле chat_log это массив объектов с полями:

ПолеТипОписание
id_messageintID сообщения
date_createdatetimeДата и время сообщения
message_fromstringОт кого сообщение
message_tostringКому сообщение
message_typestringТип сообщения (visitor, operator)
messagestringТекст сообщения
answer_timeintВремя ответа оператора на последние сообщение посетителя в секундах (для message_type=operator).

Поля visit_data и profile_data аналогичны как для события новый обратный звонок.

Пример JSON данных диалога с оператором:
{
    "event_type": "chat_dialog",
    "data": {
        "widget_id": "4475",
        "user_id": "1",
        "dialog_id": "1cb2cc5ceccb594800efce6eab2d3267",
        "chat_log": [{
            "id_message": "9379037",
            "date_create": "2017-03-21 14:47:17",
            "message_from": "site.com_2bl1x@u02.cloudim.ru",
            "message_to": "abc123@cloudim.ru",
            "message_type": "visitor",
            "message": "Привет!",
            "answer_time": null
        }, {
            "id_message": "9379040",
            "date_create": "2017-03-21 14:47:33",
            "message_from": "abc123@cloudim.ru",
            "message_to": "site.com_2bl1x@u02.cloudim.ru",
            "message_type": "operator",
            "message": "Здравствуйте! Чем могу помочь?",
            "answer_time": "16"
        }, {
            "id_message": "9379042",
            "date_create": "2017-03-21 14:47:37",
            "message_from": "site.com_2bl1x@u02.cloudim.ru",
            "message_to": "fu4jaf@cloudim.ru",
            "message_type": "visitor",
            "message": "Просто тестирую. Спасибо!",
            "answer_time": null
        }],
        "operator": {
            "id_operator": "2",
            "operator_jid": "abc123@cloudim.ru",
            "operator_name": "Иван",
            "avatar_type": "custom",
            "avatar_url": "https:\/\/leadback.ru\/images\/uploads\/avatars\/1_f7d1eff6a0b523dde25912f113e82932_1464330572.png"
        },
        "visit_data": {
            "visit_id": "bba5c45b-0b09-3bf6-9597-e93126db634e",
            "date_visit": "2017-04-19 12:06:36",
            "referer_url": "",
            "page_url": "https:\/\/site.com\/",
            "call_url": "",
            "ga_cid": "781661464.1505303250",
            "roistat_visit": "14525",
            "visit_ip": "31.132.152.137",
            "visit_ua": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/57.0.2987.133 Safari\/537.36",
            "visit_source": "direct"
        },
        "visit_profile": {
            "name": "Денис",
            "email": "mail@mail.ru",
            "phone": ""
        }
    }
}

Новый диалог в чате с ботом

Отправляется когда завершится диалог в чате с ботом.

В данных события доступны следующие поля:

ПолеТипОписание
widget_idintID виджета
user_idintID клиента
dialog_idstringID диалога
chat_logarrayСообщения переписки с посетителя и бота
visit_dataobjectПолная информация о источнике визита посетителя
visit_profileobjectДанные посетителя если были заполнены в форма онлайн чата (имя, email и телефон)

История переписки в поле chat_log это массив объектов с полями:

ПолеТипОписание
id_messageintID сообщения
date_createdatetimeДата и время сообщения
message_typestringТип сообщения (visitor, bot)
messagestringТекст сообщения

Поля visit_data и profile_data аналогичны как для события новый обратный звонок.

Пример JSON данных диалога с ботом:
{
    "event_type": "bot_dialog",
    "data": {
        "widget_id": "9375",
        "user_id": "1",
        "dialog_id": "6c0f71f7-d310-321e-87b2-3877a20a6d26",
        "chat_log": [{
            "id_message": "132374",
            "date_create": "2017-04-19 13:49:36",
            "message": "Здравствуйте!",
            "message_type": "bot"
        }, {
            "id_message": "132375",
            "date_create": "2017-04-19 13:49:42",
            "message": "Вас что то заинтересовало?",
            "message_type": "bot"
        }, {
            "id_message": "132376",
            "date_create": "2017-04-19 13:49:49",
            "message": "Напишите мне если будут вопросы...",
            "message_type": "bot"
        }, {
            "id_message": "132382",
            "date_create": "2017-04-19 13:49:55",
            "message": "Спасибо! Есть вопрос по доставке",
            "message_type": "visitor"
        }, {
            "id_message": "132385",
            "date_create": "2017-04-19 13:50:01",
            "message": "Давайте мы перезвоним вам и все расскажем",
            "message_type": "bot"
        }, {
            "id_message": "132386",
            "date_create": "2017-04-19 13:50:07",
            "message": "Напишите мне свой телефон.",
            "message_type": "bot"
        }],
        "visit_data": {
            "visit_id": "6c0f71f7-d310-321e-87b2-3877a20a6d26",
            "date_visit": "2017-04-19 13:49:17",
            "referer_url": "",
            "page_url": "http:\/\/site.com\/?utm_source=roem&utm_medium=banner&utm_campaign=demo",
            "call_url": "",
            "ga_cid": "781661464.1505303250",
            "roistat_visit": "14525",
            "visit_ip": "31.132.152.137",
            "visit_ua": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/57.0.2987.133 Safari\/537.36",
            "visit_source": "utm",
            "utm_source": "roem",
            "utm_medium": "banner",
            "utm_campaign": "demo",
            "utm_term": "",
            "utm_content": ""
        },
        "visit_profile": {
            "name": "",
            "email": "",
            "phone": "79000000000"
        }
    }
}

 

Проверка вебхук адреса

Тестовый запрос. Отправляется во время сохранения адреса webhook адреса, для проверки его доступности.

{
    "event_type": "check_webhook",
    "data": null
}
Поделиться ссылкой:

Оставить комментарий