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 | Имя посетителя сайта |
| 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 | Имя клиента |
| 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 | Имя оператора |
| 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 | Имя оператора |
| 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 | Имя оператора |
| 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 | Имя оператора |
| 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 | Имя оператора |
| 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"
}