Jivo API для разработчиков

Jivo предоставляет разработчикам два набора инструментов для интеграции:

Клиентская часть — Javascript API виджета, позволяющее управлять виджетом, который отображается пользователю. С помощью него можно управлять окном чата, а так же передавать произвольную информацию со страницы, на которой размещено окно чата, в приложение оператора (например, можно передать дополнительную информацию о пользователе, которая так же будет сохранена в журнале диалогов).

Серверная часть — Webhooks API, позволяющее получать уведомления о начале или завершении чата на стороне вашего сервера, а так же передавать в Jivo дополнительную информацию для отображения в приложени оператора в ответе на HTTP-запросы.

JavaScript API

Jivo вызывает перечисленные ниже функции на странице, чтобы сообщить о возникновении события. Вы можете объявить на странице любую из этих функций и выполнять в ней логику обработки возникшего события. Например, по событию jivo_onIntroduction вы можете получить введенные клиентом контактные данные.

Callback-функции

Название Тип Описание
jivo_onLoadCallback function Вызывается при завершении инициализации виджета Jivo
jivo_onOpen function Вызывается при открытии окна диалога Jivo
jivo_onMessageSent function Посетитель отправил первое сообщение в чат
jivo_onAccept function Оператор нажал кнопку Ответить в уведомлении о новом чате
jivo_onClose function Сворачивание окна диалога Jivo
jivo_onIntroduction function Посетитель ввёл контактные данные
jivo_onResizeCallback function Коллбек, срабатывающий при любом изменении размеров виджета
jivo_onCallStart function Вызывается при начале звонка на клиентский номер
jivo_onCallEnd function Вызывается при окончании звонка с результатом звонка
jivo_onChangeState function Вызывается при переключении виджета из одного состояния в другое

JavaScript API - jivo_onCallEnd

Пример вызова функции с возвращаемым параметром. Вызывается при окончании звонка с результатом звонка:

Параметры

Название Тип Описание
result необязательный object Результат вызова
 function jivo_onCallEnd(res) {
    if (res.result == 'ok') {
        // call finished successfully
    }
    if (res.result == 'fail') {
        // call finished with errors or can not started
        console.log(res.reason); // reason for the unsuccessfull call
    }
} 

JavaScript API - jivo_onChangeState

Вызывается при переключении виджета из одного состояния в другое

Параметры

Название Тип Описание
state string Состояние виджета
 function jivo_onChangeState(state) {
    if (state == 'chat') {
        // widget is in the chat state
    }
    if (state == 'call' || state == 'chat/call') {
        // callback form is opened
    if (state == 'label' || state == 'chat/min'){
        // widget is minimized
    }
} 

JavaScript API - open

Метод позволяет открыть окно диалога. Возвращает {result: 'ok'} в случае успешного открытия, и {result: 'fail'}, если открыть окно диалога нельзя.

Открывает форму ввода телефона для обратного звонка: jivo_api.open({start: 'call'});

JavaScript API - close

Метод позволяет закрыть или свернуть окно диалога. Возвращает {result: 'ok'} в случае успешного открытия, в противном случае возвращает {result: 'fail'}

JavaScript API - chatMode

С помощью этого метода можно получить текущий статус чата - онлайн/оффлайн.

JavaScript API - getContactInfo

Считывает данные посетителя в виде структуры contact_info, которые посетитель ввел в форме представления. Если посетитель не заполнил какие-либо поля, в их значении будет null.

JavaScript API - getVisitorNumber

Асинхронная функция для получения уникального номера посетителя в Jivo. Посетители нумеруются последовательно, начиная с 1, число постоянно растет. Номер посетителя отображается в программе оператора и в журнала и может использоваться для связи данных Jivo с данными CRM.

 jivo_api.getVisitorNumber(function(err, visitor_number){
    console.log(visitor_number);
 }); 

JavaScript API - setContactInfo

Устанавливает контактные данные посетителя. Данные отображаются оператору, как будто их ввел посетитель в форме представления. Для записи контактных данных представляется отдельная функция, т.к. имя, телефон и e-mail клиента играют особенную роль в Jivo - эти данные может указать клиент сам при начале диалога.

Параметры

Название Тип Описание
name string Имя посетителя сайта
email string Email посетителя сайта
phone string Номер телефона посетителя сайта
description string Дополнительная информтация по клиенту
 jivo_api.setContactInfo({
    "name": "John Smith",
    "email": "email@example.com",
    "phone": "+14084987855",
    "description": "Description text"
 }); 

JavaScript API - setCustomData

С помощью этой функции можно передать произвольную дополнительную информацию о клиенте оператору. Информация отображается в информационной панели справа в приложении оператора. Метод может быть вызван любое число раз - если диалог с оператором уже установлен, то данные в приложении оператора будут обновлены в реальном времени. Поля выводятся в порядке их следования в массиве fields.

Вызов метода setCustomData является наиболее простым способом передать оператору дополнительную информацию о посетителе. Но нужно иметь ввиду, что данные, передаваемые оператору таким образом, не могут считаться доверенными - используя отладочные инструменты браузера, злоумышленник может их подделать. Для организации более надежной передачи информации в случае, если нужна гарантия безопасности, советуем использовать метод setUserToken и Webhooks.

Для исключения возможности направления оператора на посторонние сайты в Web-кабинете администратора необходимо настроить URL с которого могут начинаться ссылки в дополнительных полях (раздел Настройки - Настройка интеграции для разработчиков - Безопасный URL). Все другие ссылки будут заблокированы, оператор их не увидит.

Возвращает return {result: 'ok'} либо {result: 'fail', reason: 'Custom data must be array.'} если метод вернул ошибку.

Параметры

Название Тип Описание
fields array Список полей диалога

field

Название Тип Описание
content string Содержимое поля данных. Теги экранируются
title string Заголовок, добавляемый сверху поля данных
link string URL, открываемый при клике на поле данных
key string Описание поля данных, добавляемое жирным шрифтом перед содержимым поля через двоеточие
 jivo_api.setCustomData([
    {
        "title": "Actions",
        "content": "Add contact",
        "link": "..."
    },
    {
        "content": "Open customer profile",
        "link": "..."
    }
 ]); 

JavaScript API - setRules

С помощью этого метода можно заменить автоматические действия на переданный объект. Пример объекта можно сформировать в панели управления Jivo, открыв раздел Автоматические действия и нажав кнопку JSON структура

Параметры

Название Тип Описание
rules object Описание правил активных приглашений на языке JSON
 jivo_api.setRules(rules); 

JavaScript API - setUserToken

Устанавливает идентификатор посетителя. Jivo никак не обрабатывает этот идентификатор, но передаёт его в каждом событии Webhooks. Таким образом можно идентифицировать посетителя сайта при обработке Webhooks. Рекомендуем использовать сложно-угадываемый идентификатор для исключения возможности спуфинга.

Возвращает {result: 'ok', token: userToken} если токен выставлен, либо {result: 'fail', token: userToken || false};

Параметры

Название Тип Описание
token string Идентификатор посетителя

JavaScript API - showProactiveInvitation

С помощью этого метода вы можете вызвать окно активного приглашения в нужный момент. Это может быть полезно, например, если вы хотите показывать активное приглашение после того, как клиент добавил товар в корзину Интернет-магазина. Если вы хотите отображать активное приглашение сразу же после захода на страницу, то showProactiveInvitation необходимо вызывать из коллбека jivo_onLoadCallback (чтобы все проинициализировалось в правильном порядке).

Параметры

Название Тип Описание
invitation_text string Текст приглашения
department_id number Идентификатор отдела
 jivo_api.showProactiveInvitation("How can I help you?"); 

JavaScript API - startCall

Метод позволяет начать звонок на нужный номер, если звонки доступны (Обратный звонок настроен и баланс звонков положителен).

Метод возвращает {result: 'ok'} в случае если номер передан в правильном формате и отправляется запрос на начало звонка.
В неудачном случае возвращается {result: 'fail', reason: 'Callback disabled'}, где reason - причина неуспешного вызова метода.

Параметры

Название Тип Описание
phone string Телефон
 jivo_api.startCall('+14084987855') 

JavaScript API - isCallbackEnabled

Данный метод проверяет доступны ли звонки.

Возвращаяет:
{result: 'fail', reason: 'Callback disabled'} - звонок отключен в админ панели.
{result: 'fail', 'Callback unavaiable'} - звонки недоступны по другим причинам (не тот день недели, по времени работы, звонок уже начат).
{result: 'ok'} - звонки доступны

Параметры

Название Тип Описание
callback function Функция вызываемая для определения доступности обратного звонка с сайта
 jivo_api.isCallbackEnabled(function(res){
    console.log('isCallbackEnabled', res);

    if (res.result == 'ok') {
        jivo_api.open({start: 'call'});
    }
}); 

JavaScript API - sendOfflineMessage

Данный метод позволяет отправить оффлайн сообщение без использования формы чата. Возвращает {result: 'ok'} в случае если данные переданные в параметры правильные.

Возвращает {result: 'fail', error: errReason}, где errReason - ошибки валидации передаваемых полей. Либо причина по которой нельзя отправить оффлайн сообщение.

Параметры

Название Тип Описание
name string Имя клиента
email string Email клиента
phone string Телефон клиента
description string Дополнительная информация о клиенте
message string Текст оффлайн-сообщения
 jivo_api.sendOfflineMessage(({
    "name": "John Smith",
    "email": "email@example.com",
    "phone": "+14084987855",
    "description": "Description text",
    "message": "Offline message"
 }); 

Webhooks

Используйте Webhooks для того, что бы получать уведомления при возникновении различных событий, связанных с обращениями посетителей сайта через виджет Jivo.

В Web-кабинете администратора может быть настроен HTTP(S) URL, на который будет отправляться запрос при возникновении того или иного события. Событие передается по указанному URL POST-запросом. Тело запроса представляет собой JSON-объект с информацией о событии.

Тип события определяется строковым полем event_name, который всегда присутствует в структуре event. Остальные поля зависят от конкретного события. В ответ на HTTP-запрос для некоторых типов событий вы можете вернуть данные, которые будут отображены оператору, принявшему диалог.

Webhooks - call_event

Событие отправляется когда операторы получают новый звонок или изменяется статус текущего звонка

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: call_event
chat_id number Идентификатор чата
widget_id string Widget ID канала, указанный в коде чата
visitor object Объект с информацией о посетителе
agent object Объект с информацией об операторе
department необязательный object Объект с информацией об отделе, который посетитель выбрал перед началом чата
session object Данные о сессий пользователя
page object Информация о странице
call object Информация о звонке
analytics необязательный object Аналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

agent

Название Тип Описание
id int Идентификатор оператора
name string Имя оператора
email string Email оператора
phone необязательный string Телефон посетителя

department

Название Тип Описание
id number Идентификатор отдела
name string Название отдела

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

call

Название Тип Описание
type string Tип звонка (callback, incoming, outgoing)
phone string Номер телефона клиента
status string Статус звонка (start, end, agent_connected, client_connected, error)
reason необязательный string Причина ошибки (доступна, когда звонок завершился с ошибкой)
record_url необязательный string Ссылка на запись звонка в формате mp3 (доступна после заврешений звонка)

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

В теле запроса вебхука call_event содержится структура:

 {
    "event_name": "call_event",
    "chat_id": 7170,
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "agent": {
        "id": "3619",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "department": {
        "id": 267,
        "name": "Sales"
    },
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    },
    "call": {
        "type": "callback",
        "phone": "+14084987855",
        "status": "end",
        "record_url": "http://example.com/record.mp3"
    },
    "analytics": {}
} 

Webhooks - chat_accepted

Событие возникает в момент приема запроса диалога оператором. В параметрах запроса передаются все известные данные о посетителе, а также данные оператора, принявшего диалог. Кроме того, в параметрах присутствует идентификатор пользователя, если он был передан в виджет путем вызова jivo_api.setUserToken.

При возврате в ответе на chat_accepted объекта contact_info, все поля из него будут показаны оператору так, как будто их ввёл посетитель. Они же сохранятся в журнале диалога и письме.

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: chat_accepted
chat_id number Идентификатор чата
widget_id string Widget ID канала, указанный в коде чата
visitor object Объект с информацией о посетителе
agent object Объект с информацией об операторе
department необязательный object Объект с информацией об отделе, который посетитель выбрал перед началом чата
session object Данные о сессий пользователя
page object Информация о странице
analytics необязательный object Аналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

agent

Название Тип Описание
id int Идентификатор оператора
name string Имя оператора
email string Email оператора
phone необязательный string Телефон посетителя

department

Название Тип Описание
id number Идентификатор отдела
name string Название отдела

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

Параметры ответа

Название Тип Описание
result string Строка результата обработки. Если значение не равно "ок", данные не будут переданы оператору
custom_data array Поля дополнительных данных, аналогично setCustomData
contact_info object Поля контактных данных, аналогично setContactInfo
enable_assign boolean Флаг, определяющий отображению оператору кнопки привязки посетителя к карточке в CRM. Кнопка отображается перед всеми полями custom_data
crm_link string Ссылка на карточку клиента в CRM. Отображается оператору отдельной кнопкой под всеми полями custom_data
page object Информация о странице

custom_data

Название Тип Описание
title string Название пользовательского поля
content string Содержимое

contact_info

Название Тип Описание
name string Имя посетителя
phone необязательный string Телефон посетителя
email необязательный string E-mail посетителя

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

В теле запроса вебхука chat_accepted содержится структура:

 {
    "event_name": "chat_accepted",
    "chat_id": 8208,
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "agent": {
        "id": "3619",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "department": {
        "id": 267,
        "name": "Sales"
    },
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    },
    "analytics": {}
} 

В ответ ожидается строка, содержащая JSON:

 {
    "result": "ok",
    "custom_data": [
        {
            "title": "Title",
            "content": "Content text"
        }
    ],
    "contact_info": {
        "name": "John Smith",
        "phone": "+14084987855",
        "email": "email@example.com"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    }
} 

Webhooks - chat_assigned

Событие отправляется когда чат прикрепляется к карточке в CRM, используя параметр "crm_link" из ответа на событие Chat_accepted. В параметрах запроса передаются все известные данные о посетителе, а также данные оператора, принявшего диалог. Кроме того, в параметрах присутствует идентификатор пользователя, если он был передан в виджет путем вызова jivo_api.setUserToken

В качестве ответа ожидается только JSON {"result": "ok или текст ошибки"}

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: chat_assigned
chat_id number Идентификатор чата
widget_id string Widget ID канала, указанный в коде чата
visitor object Объект с информацией о посетителе
agent object Объект с информацией об операторе
department необязательный object Объект с информацией об отделе, который посетитель выбрал перед началом чата
assign_to string Ссылка на карточку в CRM, переданную в событии Chat_accepted
session object Данные о сессий пользователя
page object Информация о странице начала диалога
analytics необязательный object Аналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

agent

Название Тип Описание
id int Идентификатор оператора
name string Имя оператора
email string Email оператора
phone необязательный string Телефон посетителя

department

Название Тип Описание
id number Идентификатор отдела
name string Название отдела

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

Параметры ответа

Название Тип Описание
result string Строковый параметр содержащий результат обработки события ("OK" или "FAILURE")

В теле запроса вебхука chat_assigned содержится структура:

 {
    "event_name": "chat_assigned",
    "chat_id": 3060,
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "agent": {
        "id": "3619",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "department": {
        "id": 267,
        "name": "Sales"
    },
    "assign_to": "...",
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    },
    "analytics": {}
} 

В ответ ожидается строка, содержащая JSON:

 {
    "result": "ok"
} 

Webhooks - chat_finished

Событие отправляется при закрытии чата в приложении оператора. В параметрах запроса передаются все известные данные о посетителе, массив с сообщениями чата, а также данные операторов, принимавших участие в диалоге. Кроме того, в параметрах присутствует идентификатор пользователя, если он был передан в виджет путем вызова jivo_api.setUserToken

В качестве ответа ожидается только JSON {"result": "ok или текст ошибки"}

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: chat_finished
chat_id number Идентификатор чата
widget_id string Widget ID канала, указанный в коде чата
visitor object Объект с информацией о посетителе
agents array Массив с информацией об операторах
department необязательный object Объект с информацией об отделе, который посетитель выбрал перед началом чата
chat object Данные о завершенном чате
session object Данные о сессий пользователя
page object Информация о странице начала диалога
analytics необязательный object Aналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

agent

Название Тип Описание
id int Идентификатор оператора
name string Имя оператора
email string Email оператора
phone необязательный string Телефон посетителя

department

Название Тип Описание
id number Идентификатор отдела
name string Название отдела

chat

Название Тип Описание
messages array Массив сообщений чата
rate string Пользовательская оценка чата (positive|negative|null)
blacklisted boolean Признак того, что пользователь был добавлен в черный список

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

message

Название Тип Описание
timestamp number Время получения сообщение (timestamp)
type string Тип сообщения (visitor - сообщение от клиента, agent - сообщение от агента)
agent_id number Идентификатор агента, который ответил сообщение (существует, только если type=agent)
blacklisted необязательный boolean Признак того, что пользователь был добавлен в черный список

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

Параметры ответа

Название Тип Описание
result string Строковый параметр содержащий результат обработки события ("OK" или "FAILURE")

В теле запроса вебхука chat_finished содержится структура:

 {
    "event_name": "chat_finished",
    "chat_id": 9363,
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "agents": [
        {
            "id": "3619",
            "name": "Thomas Anderson",
            "email": "agent@jivosite.com",
            "phone": "+14083682346"
        }
    ],
    "department": {
        "id": 267,
        "name": "Sales"
    },
    "chat": {
        "messages": [
            {
                "timestamp": 1431955090,
                "type": "agent",
                "agent_id": 1880,
                "blacklisted": false
            }
        ]
    },
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    }
} 

В ответ ожидается строка, содержащая JSON:

 {
    "result": "ok"
} 

Webhooks - chat_updated

Событие будет отправлено в случае, если информация о посетителе была обновлена - например, были введены контакты в форме чата. В параметрах запроса передаются все известные данные о посетителе, а также данные оператора, принявшего диалог. Кроме того, в параметрах присутствует идентификатор пользователя, если он был передан в виджет путем вызова jivo_api.setUserToken

В качестве ответа ожидается только JSON {"result": "ok или текст ошибки"}

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: chat_updated
chat_id number Идентификатор чата
widget_id string Widget ID канала, указанный в коде чата
visitor object Объект с информацией о посетителе
agent object Объект с информацией об операторе
department необязательный object Объект с информацией об отделе, который посетитель выбрал перед началом чата
session object Данные о сессий пользователя
page object Информация о странице
analytics необязательный object Аналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

agent

Название Тип Описание
id int Идентификатор оператора
name string Имя оператора
email string Email оператора
phone необязательный string Телефон посетителя

department

Название Тип Описание
id number Идентификатор отдела
name string Название отдела

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

Параметры ответа

Название Тип Описание
result string Строковый параметр содержащий результат обработки события ("OK" или "FAILURE")

В теле запроса вебхука chat_updated содержится структура:

 {
    "event_name": "chat_updated",
    "chat_id": 1800,
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "agent": {
        "id": "3619",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "department": {
        "id": 267,
        "name": "Sales"
    },
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    },
    "analytics": {}
} 

В ответ ожидается строка, содержащая JSON:

 {
    "result": "ok"
} 

Webhooks - offline_message

Событие будет отправлено в момент отправки сообщения через оффлайн форму. В параметрах запроса передаются все известные данные о посетителе, а также текст оффлайн сообщения. Кроме того, в параметрах присутствует идентификатор пользователя, если он был передан в виджет путем вызова jivo_api.setUserToken

В качестве ответа ожидается только JSON {"result": "ok или текст ошибки"}

Параметры

Название Тип Описание
event_name string Тип события. По умолчанию: offline_messages
widget_id string Информация о странице
visitor object Объект с информацией о посетителе
offline_message_id string Идентификатор offline сообщения
message string Сообщение
session object Данные о сессий пользователя
page object Информация о странице
analytics необязательный object Аналитика

visitor

Название Тип Описание
name необязательный string Имя посетителя
email необязательный string Email посетителя
phone необязательный string Телефон посетителя
number string Номер посетителя
description string Дополнительная информтация по клиенту
social необязательный object Данные о социальных сетях пользователя
chats_count number Количество обращений

session

Название Тип Описание
geoip object Данные из geoip
utm string utm
utm_json object Объект содержащий UTM-метки
ip_addr string IP аддрес активной сессий
user_agent string Описание user_agent

page

Название Тип Описание
url string URL текущей страницы
title необязательный string Заголовок страницы

geoip

Название Тип Описание
region_code string Код региона
country string Название страны
country_code string ISO код страны
region string Регион
city string Город
region string Регион
latitude string Широта
longitude string Долгота
organization string Название организации

utm_json

Название Тип Описание
source необязательный string Значение utm_source
campaign необязательный string Значение utm_campaign
content необязательный string Значение utm_content
medium необязательный string Значение utm_medium
term необязательный string Значение utm_term

Параметры ответа

Название Тип Описание
result string Строковый параметр содержащий результат обработки события ("OK" или "FAILURE")

В теле запроса вебхука offline_message содержится структура:

 {
    "event_name": "offline_message",
    "widget_id": "2497",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "2605",
        "description": "Description text",
        "social": {},
        "chats_count": 3
    },
    "offline_message_id": "2552",
    "message": "Message text",
    "session": {
        "geoip": {
            "region_code": "CA",
            "country": "United States",
            "country_code": "US",
            "region": "California",
            "city": "San Francisco",
            "latitude": "37.7898",
            "longitude": "-122.3942",
            "organization": "Wikimedia Foundation"
        },
        "utm": "source=google|medium=cpc|content=banner|campaign=campaign_name",
        "utm_json": {
            "source": "google",
            "campaign": "campaign_name",
            "content": "banner",
            "medium": "cpc",
            "term": "..."
        },
        "ip_addr": "208.80.152.201",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
    },
    "page": {
        "url": "http://example.com/",
        "title": "Page title"
    },
    "analytics": {}
} 

В ответ ожидается строка, содержащая JSON:

 {
    "result": "ok"
}