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

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

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

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

Если вы нашли ошибку или несоответствие в документации, то сообщите нам, пожалуйста, об этом в чате на jivosite.ru

JavaScript API

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

Callback-функции

НазваниеТипОписание
jivo_onLoadCallbackfunctionВызывается при завершении инициализации виджета JivoSite
jivo_onOpenfunctionВызывается при открытии окна диалога JivoSite
jivo_onMessageSentfunctionПосетитель отправил первое сообщение в чат
jivo_onAcceptfunctionОператор нажал кнопку Ответить в уведомлении о новом чате
jivo_onClosefunctionСворачивание окна диалога JivoSite
jivo_onIntroductionfunctionПосетитель ввёл контактные данные
jivo_onResizeCallbackfunctionКоллбек, срабатывающий при любом изменении размеров виджета
jivo_onCallStartfunctionВызывается при начале звонка на клиентский номер.
jivo_onCallEndfunctionВызывается при окончании звонка с результатом звонка.
jivo_onChangeStatefunctionВызывается при переключении виджета из одного состояния в другое.

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

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

Параметры

НазваниеТипОписание
statestringСостояние виджета
 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

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

JavaScript API - setContactInfo

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

Параметры

НазваниеТипОписание
namestringИмя посетителя сайта
emailstringEmail посетителя сайта
phonestringНомер телефона посетителя сайта
descriptionstringДополнительная информтация по клиенту
 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.'} если метод вернул ошибку.

Параметры

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

field

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

JavaScript API - setRules

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

Параметры

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

JavaScript API - setUserToken

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

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

Параметры

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

JavaScript API - showProactiveInvitation

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

Параметры

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

JavaScript API - startCall

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

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

Параметры

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

JavaScript API - isCallbackEnabled

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

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

Параметры

НазваниеТипОписание
callbackfunctionФункция вызываемая для определения доступности обратного звонка с сайта.
 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 - ошибки валидации передаваемых полей. Либо причина по которой нельзя отправить оффлайн сообщение.

Параметры

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

Webhooks

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

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

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

Webhooks - chat_accepted

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

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

Параметры

НазваниеТипОписание
event_namestringТип события. По умолчанию: chat_accepted
chat_idnumberИдентификатор чата
widget_idstringWidget ID канала, указанный в коде чата
visitorobjectОбъект с информацией о посетителе
agentobjectОбъект с информацией об операторе
sessionobjectДанные о сессий пользователя
pageobjectИнформация о странице

visitor

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

agent

НазваниеТипОписание
idstringИдентификатор оператора
namestringИмя оператора
emailstringEmail оператора
phone необязательныйstringТелефон посетителя

session

НазваниеТипОписание
geoipobjectДанные из geoip
utmstringutm
ip_addrstringIP аддрес активной сессий
user_agentstringОписание user_agent

page

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

geoip

НазваниеТипОписание
region_codestringКод региона
countrystringНазвание страны
country_codestringISO код страны
regionstringРегион
citystringГород
regionstringРегион
latitudestringШирота
longitudestringДолгота
organizationstringНазвание организации

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

НазваниеТипОписание
resultstringСтрока результата обработки. Если значение не равно "ок", данные не будут переданы оператору
custom_dataarrayПоля дополнительных данных, аналогично setCustomData
contact_infoobjectПоля контактных данных, аналогично setContactInfo
enable_assignbooleanФлаг, определяющий отображению оператору кнопки привязки посетителя к карточке в CRM. Кнопка отображается перед всеми полями custom_data.
crm_linkstringСсылка на карточку клиента в CRM. Отображается оператору отдельной кнопкой под всеми полями custom_data.
pageobjectИнформация о странице

custom_data

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

contact_info

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

page

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

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

 {
    "event_name": "chat_accepted",
    "chat_id": 9895,
    "widget_id": "2767",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "3303",
        "description": "Description text",
        "social": {},
        "chats_count": 4
    },
    "agent": {
        "id": "2325",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "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": "...",
        "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",
    "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_namestringТип события. По умолчанию: chat_assigned
chat_idnumberИдентификатор чата
widget_idstringWidget ID канала, указанный в коде чата
visitorobjectОбъект с информацией о посетителе
agentobjectОбъект с информацией об операторе
assign_tostringСсылка на карточку в CRM, переданную в событии Chat_accepted
sessionobjectДанные о сессий пользователя
pageobjectИнформация о странице начала диалога

visitor

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

agent

НазваниеТипОписание
idstringИдентификатор оператора
namestringИмя оператора
emailstringEmail оператора
phone необязательныйstringТелефон посетителя

session

НазваниеТипОписание
geoipobjectДанные из geoip
utmstringutm
ip_addrstringIP аддрес активной сессий
user_agentstringОписание user_agent

page

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

geoip

НазваниеТипОписание
region_codestringКод региона
countrystringНазвание страны
country_codestringISO код страны
regionstringРегион
citystringГород
regionstringРегион
latitudestringШирота
longitudestringДолгота
organizationstringНазвание организации

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

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

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

 {
    "event_name": "chat_assigned",
    "chat_id": 8741,
    "widget_id": "2767",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "3303",
        "description": "Description text",
        "social": {},
        "chats_count": 4
    },
    "agent": {
        "id": "2325",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "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": "...",
        "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_finished

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

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

Параметры

НазваниеТипОписание
event_namestringТип события. По умолчанию: chat_finished
chat_idnumberИдентификатор чата
widget_idstringWidget ID канала, указанный в коде чата
visitorobjectОбъект с информацией о посетителе
agentsarrayМассив с информацией об операторах
chatobjectДанные о завершенном чате
sessionobjectДанные о сессий пользователя
pageobjectИнформация о странице начала диалога

visitor

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

agent

НазваниеТипОписание
idstringИдентификатор оператора
namestringИмя оператора
emailstringEmail оператора
phone необязательныйstringТелефон посетителя

chat

НазваниеТипОписание
messagesarrayМассив сообщений чата
ratestringПользовательская оценка чата (positive|negative|null)
blacklistedbooleanПризнак того, что пользователь был добавлен в черный список

session

НазваниеТипОписание
geoipobjectДанные из geoip
utmstringutm
ip_addrstringIP аддрес активной сессий
user_agentstringОписание user_agent

page

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

message

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

geoip

НазваниеТипОписание
region_codestringКод региона
countrystringНазвание страны
country_codestringISO код страны
regionstringРегион
citystringГород
regionstringРегион
latitudestringШирота
longitudestringДолгота
organizationstringНазвание организации

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

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

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

 {
    "event_name": "chat_finished",
    "chat_id": 1829,
    "widget_id": "2767",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "3303",
        "description": "Description text",
        "social": {},
        "chats_count": 4
    },
    "agents": [
        {
            "id": "2325",
            "name": "Thomas Anderson",
            "email": "agent@jivosite.com",
            "phone": "+14083682346"
        }
    ],
    "chat": {
        "messages": [
            {
                "timestamp": 1431955090,
                "type": "agent",
                "agent_id": 3336,
                "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": "...",
        "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_namestringТип события. По умолчанию: chat_updated
chat_idnumberИдентификатор чата
widget_idstringWidget ID канала, указанный в коде чата
visitorobjectОбъект с информацией о посетителе
agentobjectОбъект с информацией об операторе
sessionobjectДанные о сессий пользователя
pageobjectИнформация о странице

visitor

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

agent

НазваниеТипОписание
idstringИдентификатор оператора
namestringИмя оператора
emailstringEmail оператора
phone необязательныйstringТелефон посетителя

session

НазваниеТипОписание
geoipobjectДанные из geoip
utmstringutm
ip_addrstringIP аддрес активной сессий
user_agentstringОписание user_agent

page

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

geoip

НазваниеТипОписание
region_codestringКод региона
countrystringНазвание страны
country_codestringISO код страны
regionstringРегион
citystringГород
regionstringРегион
latitudestringШирота
longitudestringДолгота
organizationstringНазвание организации

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

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

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

 {
    "event_name": "chat_updated",
    "chat_id": 6417,
    "widget_id": "2767",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "3303",
        "description": "Description text",
        "social": {},
        "chats_count": 4
    },
    "agent": {
        "id": "2325",
        "name": "Thomas Anderson",
        "email": "agent@jivosite.com",
        "phone": "+14083682346"
    },
    "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": "...",
        "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 - offline_message

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

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

Параметры

НазваниеТипОписание
event_namestringТип события. По умолчанию: offline_messages
widget_idstringИнформация о странице
visitorobjectОбъект с информацией о посетителе
offline_message_idstringИдентификатор offline сообщения
messagestringСообщение
sessionobjectДанные о сессий пользователя
pageobjectИнформация о странице

visitor

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

session

НазваниеТипОписание
geoipobjectДанные из geoip
utmstringutm
ip_addrstringIP аддрес активной сессий
user_agentstringОписание user_agent

page

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

geoip

НазваниеТипОписание
region_codestringКод региона
countrystringНазвание страны
country_codestringISO код страны
regionstringРегион
citystringГород
regionstringРегион
latitudestringШирота
longitudestringДолгота
organizationstringНазвание организации

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

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

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

 {
    "event_name": "offline_message",
    "widget_id": "2767",
    "visitor": {
        "name": "John Smith",
        "email": "email@example.com",
        "phone": "+14084987855",
        "number": "3303",
        "description": "Description text",
        "social": {},
        "chats_count": 4
    },
    "offline_message_id": "3375",
    "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": "...",
        "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"
}