Настройка автоматических действий через 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 дней в неделю.