События

Описание параметров асинхронных и синхронных событий

Описание событий и их параметров

Событие "При продаже"/"при возврате" при списании и/или начислении более N суммы баллов.

Cобытие bonus_limit_exceeding - cинхронное

Параметры события:
bonus_add_limit - пороговое значение начисленных бонусов.
bonus_payment_limit - пороговое значение списаных бонусов.
time_zone - временная зона.
manage_groups - массив идентификаторов групп менеджеров, по которым проводить уведомления о событии.

Параметры bonus_add_limit и bonus_payment_limit могут использоваться вместе(оператор AND), когда присутствуют в json и значение больше 0, и по отдельности.

Пример:
{
...
"type": 0,
"event":"bonus_limit_exceeding",
...
"parameters":
[
{"bonus_add_limit":"20"},
{"bonus_payment_limit":"30"},
{"time_zone": 180},
{"manager_groups":["group_1", "group_2"]}
]
}

Параметры шаблона оповещения:

%ТИП_ОПЕРАЦИИ% - продажа или возврат
%ФИО% - ФИО клиента карты, по которому проводились операции
%НОМЕР_КАРТЫ% - номер карты клиента
%НАЧИСЛЕНО% - количество начисленных бонусов
%СПИСАНО% - количество списанных бонусов
%ПОЛУЧАТЕЛЬ_ФИО% - ФИО менеджера для рассылки
%ПОЛУЧАТЕЛЬ_EMAIL% - email менеджера для рассылки
%ПОЛУЧАТЕЛЬ_ТЕЛЕФОН% - телефон менеджера для рассылки

Событие при превышении числа свободных карт.

Событие free_card_exceeding - асинхронное

Параметры события:
free_card_limit_percent - пороговое значение числа свободных карт в процентах.
free_card_limit_count - пороговое значение числа свободных карт в количестве штук.
manager_groups - массив идентификаторов групп менеджеров, по которым проводить уведомления о событии.

Возможно одновременное использование free_card_limit_percent и free_card_limit_count.

Пример:
{
...
"type": 1,
"event":"free_card_exceeding",
...
"parameters":
[
{"free_card_limit_percent":"20"},
{"free_card_limit_count":"1000"},
{"manager_groups":["1","2"]}
]
}

Параметры шаблона оповещения:

%ПРОЦЕНТ_СВОБОДНЫХ% - процент свободных карт
%ДОСТУПНО_К_АКТИВАЦИИ% - число свободных карт в штуках
%СОЗДАНО_КАРТ% - всего созданных карт

%ПОЛУЧАТЕЛЬ_ФИО% - ФИО менеджера для рассылки
%ПОЛУЧАТЕЛЬ_EMAIL% - email менеджера для рассылки
%ПОЛУЧАТЕЛЬ_ТЕЛЕФОН% - телефон менеджера для рассылки

Событие при превышении числа карт по тарифу.

Cобытие tariff_card_exceeding - асинхронное

Параметры события:
tariff_card_limit_percent - пороговое значение числа доступных карт по тарифу в процентах.
tariff_card_limit_count - пороговое значение числа доступных карт по тарифу в количестве штук.
manager_groups - массив идентификаторов групп менеджеров, по которым проводить уведомления о событии.

Возможно одновременное использование tariff_card_limit_percent и tariff_card_limit_count

Пример:
{
...
"type": 1,
"event":"tariff_card_exceeding",
...
"parameters":
[
{"tariff_card_limit_percent":"20"},
{"tariff_card_limit_count":"1000"},
{"manager_groups":["1","2"]}
]
}

Параметры шаблона оповещения:

%АКТИВИРОВАНО_КАРТ% - всего активированных карт
%КАРТ_ПО_ТАРИФУ% - максимальное число карт, доступных по тарифу

%ПОЛУЧАТЕЛЬ_ФИО% - ФИО менеджера для рассылки
%ПОЛУЧАТЕЛЬ_EMAIL% - email менеджера для рассылки
%ПОЛУЧАТЕЛЬ_ТЕЛЕФОН% - телефон менеджера для рассылки

Уведомление о событиях в телеграм бот

Метод POST organization/job/add

параметр alert_to_telegram - булево. Включает отсылку сообщений в телеграм пользователей
параметр template_telegram_id - строка. Идентификатор шаблона для отправки сообщения в телеграм пользователей

Пример:
{
  ...
"alert_to_telegram":true,
"template_telegram_id":"template_1",
  ...
}

События в интерфейсе ЛК

На данный момент события разделены на два раздела:

"События" - здесь находятся события, которые присутствовали до момента разделения.

"Служебные события" - в этом разделе находятся события, необходимые для отправки служебных сообщений.

image-1685687636286.png

Для каждого раздела созданы свои роли для управления доступом. При срабатывании служебного события происходит отправка оповещения группе менеджеров. 

Группа менеджеров - это сущность, которая объединяет нескольких менеджеров.

В форме элемента ГруппыМенеджеров по кнопке "Добавить" можно привязать менеджера к группе менеджеров:

image-1685688420134.png

Менеджеры - это отдельный справочник сотрудников компании, для которых возможна отправка оповещений. Для этого у каждого Менеджера присутствует возможность указать контактные данные: почту и телефон.

Покажем связь перечисленных сущностей графически:

image-1685614149372.png

На данный момент к служебным событиям относятся:

- "При продаже"/"при возврате". Событие срабатывает при начислении количества баллов, которое превышает пороговые  значения.

- "При превышении числа свободных карт". Событие срабатывает когда количество свободных карт превышает пороговые  значения.

- "При превышении числа карт по тарифу". Событие срабатывает когда количество карт превышает пороговые  значения.

image-1685688078777.png

 

Отправка уведомлений в телеграм по сценарию

Метод POST organization/script/add

В массиве "condition_items" необходимо добавить объект с параметрами

"key": "telegram_exists"
"operator": "exists"

В массиве "action_items" объект с параметрами
"key": "telegram"
"value": ""
"template_id": ""

где
  template_id - идентификатор шаблона,
  value - подготовленный текст сообщения для отправки.

Параметр value имеет больший приоритет, чем template_id.

Пример:
{
  "id": "script_telegram",
  "name": "Сценарий script_telegram",
  "active": true,
  "start_date": 1599067313594,
  "end_date": 1698427313594,
  "event": "sale",
  "items": [
    {
      "id": "id_node0",
      "type": "main",
      "name": "Вход",
      "event": "sale",
      "next_item_id": "id_condition_1"
    },
    {
      "id": "id_condition_1",
      "type": "condition",
      "name": "Проверка наличия телеграмма",
      "condition_type": "and",
      "yes_item_id": "id_action1",
      "no_item_id": "id_exit",
      "condition_items": [
        {
          "key": "telegram_exists",
          "name": "Есть телеграмм",
          "operator": "exists"
        }
      ]
    },
    {
      "id": "id_action1",
      "type": "action",
      "name": "Отправка телеграмм",
      "next_item_id": null,
      "action_items": [
        {
         "name": "Отправка телеграмм",
         "key": "telegram",
         "value": "Спасибо за покупку!",
         "template_id": ""
        }
      ]
    },
    {
      "id": "id_exit",
      "type": "exit",
      "name": "Выход с отменой"
    }
  ]
}

Отправка уведомлений в VK по сценарию

Метод POST organization/script/add

В массиве "condition_items" необходимо добавить объект с параметрами

"key": "vk_exists"
"operator": "exists"

В массиве "action_items" объект с параметрами
"key": "vk"
"value": ""
"template_id": ""

где
  template_id - идентификатор шаблона,
  value - подготовленный текст сообщения для отправки.

Параметр value имеет больший приоритет, чем template_id.

Пример:
{
  "id": "script_vk",
  "name": "Сценарий script_vk",
  "active": true,
  "start_date": 1599067313594,
  "end_date": 1698427313594,
  "event": "sale",
  "items": [
    {
      "id": "id_node0",
      "type": "main",
      "name": "Вход",
      "event": "sale",
      "next_item_id": "id_condition_1"
    },
    {
      "id": "id_condition_1",
      "type": "condition",
      "name": "Проверка наличия VK",
      "condition_type": "and",
      "yes_item_id": "id_action1",
      "no_item_id": "id_exit",
      "condition_items": [
        {
          "key": "vk_exists",
          "name": "Есть VK",
          "operator": "exists"
        }
      ]
    },
    {
      "id": "id_action1",
      "type": "action",
      "name": "Отправка в VK",
      "next_item_id": null,
      "action_items": [
        {
         "name": "Отправка в VK",
         "key": "vk",
         "value": "Спасибо за покупку!",
         "template_id": ""
        }
      ]
    },
    {
      "id": "id_exit",
      "type": "exit",
      "name": "Выход с отменой"
    }
  ]
}

Уведомление о событиях в VK бот

Метод POST organization/job/add

параметр alert_to_vk - булево. Включает отсылку сообщений в VK пользователей
параметр template_vk_id - строка. Идентификатор шаблона для отправки сообщения в VK пользователей

Пример:
{
  ...
"alert_to_vk":true,
"template_vk_id":"template_1",
  ...
}

Настройка вариантов отправки оповещений

Описание настройки оповещений на форме

На форме события есть возможность настроить отправку оповещений по нему. Сделать это можно на вкладке "Оповещения" в табличке "Вариант отправки".

image-1702477582950.png

В колонке метод отправки для каждой строчки таблицы можно выбрать один из методов отправки:
- Email;
- Push;
- ВК;
- СМС;
- Телеграм.

Для каждого метода отправки выбирается свой шаблон оповещения. Для метода Email при использовании провайдеров  DashaMail или Unisender нужно выбирать внешний шаблон.
Так же для метода отправки можно поставить флаг "Обязательность", который означает обязательную отправку оповещения по данному методу отправки. 

Описание работы 

Рассмотрим алгоритм работы на следующем примере:

image-1702478059534.png

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