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"
}