Настройка автоматических действий через API

Автоматические действия можно настраивать двумя способами: через интерфейс нашего приложения и программно. О том, как настроить приглашения через наше приложение, можно прочитать в разделе Как улучшить активные приглашения  

Для того, чтобы управлять приглашениями в чат программно, есть две функции:

1) jivo_api.showProactiveInvitation()

В момент вызова этой функции срабатывает автоматическое приглашение в чат с текстом, переданным в эту функцию. Например:

jivo_api.showProactiveInvitation("Добрый день!")

Эта функция удобна тем, что может быть привязана к действиям пользователя, например, добавлению товара в корзину или сравнение. Чтобы клик по кнопке "В корзину" не вызывал сразу открытие чата, можно вызывать функцию с небольшой задержкой, например, через setTimeout.

2) jivo_api.setRules()

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

В эту функцию нужно передать JSON-структуру со списком условий и действий. Саму структуру можно взять в приложении Jivo > "Управление" > "Каналы связи" > "Настройки (нужного сайта)" > "Автоматические действия".

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

Помимо стандартных "времени на странице", "времени на сайте", "времени от последнего приглашения" и "времени от закрытия окна", можно добавить также "URL страницы", "положение прокрутки страницы", "количество просмотренных страниц" и другие, которые, на ваше усмотрение, должны выполняться, чтобы окошко открылось.

Затем под всеми настройками нажать на кнопку "JSON-структура" и скопировать всё из открывшегося окна:

Чтобы не вызывать "jivo_api.setRules" до того, как "jivo_api" было объявлено, нужно делать это из коллбека "jivo_onLoadCallback". Таким образом:

var jivo_onLoadCallback = function() {
jivo_api.setRules(JSON); // JSON - всё, что было скопировано 
}

Полный пример:

var jivo_onLoadCallback = function() { jivo_api.setRules([ { "name": "Активное приглашение в диалог", "enabled": true, "type": "all", "conditions": [ { "condition": "online", "value": true }, { "condition": "time_on_page", "comparator": "greater", "value": 10 }, { "condition": "time_on_site", "comparator": "greater", "value": 20 }, { "condition": "time_after_close", "comparator": "greater", "value": 300 }, { "condition": "time_after_invitation", "comparator": "greater", "value": 60 } ], "commands": [ { "command": "proactive", "params": { "message": "Здравствуйте! Я могу вам чем-то помочь?" } } ] }, { "name": "Сбор контактов в режиме оффлайн", "enabled": true, "type": "all", "conditions": [ { "condition": "online", "value": false }, { "condition": "time_on_page", "comparator": "greater", "value": 10 }, { "condition": "time_on_site", "comparator": "greater", "value": 20 }, { "condition": "time_after_close", "comparator": "greater", "value": 300 }, { "condition": "time_after_invitation", "comparator": "greater", "value": 60 } ], "commands": [ { "command": "open_offline", "params": { "title": "Отправьте нам сообщение", "message": "Оставьте свое сообщение в этой форме, и мы получим его на e-mail и обязательно ответим!" } } ] }, { "name": "Удерживающая фраза", "enabled": true, "type": "all", "conditions": [ { "condition": "online", "value": true }, { "condition": "time_after_first_message", "comparator": "greater", "value": 60 } ], "commands": [ { "command": "system_message", "params": { "message": "Пожалуйста, подождите. Сейчас операторы заняты, но скоро кто-нибудь освободится и ответит вам!" } } ] } ]); }

Если на странице определены приглашения через "setRules", то настройки автоматических действий в приложении на такой странице не работают.

Самое главное, зачем может быть нужно использовать этот функционал - произвольный текст приглашения, куда можно вставить свои данные. Для этого в поле "message" можно передавать переменную, например, "message": helloText или заменять часть текста именем авторизованного пользователя или названием товара, например, "message": "Приветствую! На этой неделе у нас скидка на " + itemName + ". Пишите!"

Вставлять переменные можно как на стороне сервера, передавая на страницу строку с названием нужного товара или именем, так и определять прямо на странице через Javascript

Есть вопросы?
Спросите техподдержку в чате на сайте, мы всегда рады помочь.
Работаем 24 часа 7 дней в неделю.