Описание

Захват событий (Action Hooks) — механизм уведомления внешних систем о событиях платформы. Это могут быть как системные действия, связанные с доставкой сообщений или импортом профилей подписчиков, так и действия клиентов, отслеженные пикселями платформы Altcraft на Вашем сайте или в приложении. 

Захват событий может работать со всеми базами данных или с какой-либо конкретной. Захваченные события могут передаваться батчем в формате JSON по HTTP или отправляться в очередь брокера асинхронно.

Конфигурируется мастер-пользователем аккаунта для определенного листа или для всех листов сразу.

Чтобы начать работу, в главном меню выберите Настройки → Захват событий.

Существующие захваты событий вы можете активировать или остановить, клонировать, редактировать или удалить с помощью контекстного меню. Чтобы добавить новый захват - нажмите + Создать в верхней части страницы:

Настройки захвата событий

В Основных настройках введите имя нового захвата. Здесь же находится переключатель для активации процесса отправки событий:

Выбор действий для захвата

Захваты событий могут работать со всеми Базами профилей сразу или с одной конкретной. Выберите необходимый вариант в выпадающем меню База данных:


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

Захват будет регистрировать все события выбранных вами типов. Ограничить события так, чтобы получать более узкую выборку, можно в блоке Дополнительные фильтры:

  • Ресурсы — будут захвачены события, связанные с коммуникациями в рамках определённых ресурсов.
  • Кампания  будут захвачены события определённых маркетинговых кампаний.
  • Сообщения будут захвачены события кампаний, использующих определённые шаблоны сообщений.
  • Сегменты будут захвачены события, связанные с подписчиками, входящими в определённые сегменты.
  • Пиксели будут захвачены действия подписчиков на внешних ресурсах, зарегистрированные определёнными пикселями.

Настройки обратного запроса

Доступны следующие типы запроса:

  1. Отправть JSON запрос батчем
  2. Отправить сообщение в очередь RabbitMQ
  3. Отправить сообщение в exchange RabbitMQ
  4. Отправить сообщение в Kafka broker

Функция повторной отправки

Если во время отправки сообщения по каким-то причинам произошла ошибка (например, сбой сети), через определенное время сообщение будет отправлено снова. Количество повторных отправок и их периодичность устанавливаются в конфигурационном файле системы "main.json":

"HOOK_RETRY_TIMES":  устанавливает максимальное количество попыток отправки (default 4)

"HOOK_RETRY_PERIOD_SEC":  Периоды между попытками отправки, в секундах (default 15)

Данные профиля клиента в захвате событий

Вместе с информацией о захваченном событии можно передавать значения стандартных и дополнительных полей данных профиля. Набор доступных кастомных полей зависит от выбранной базы данных. Выберите необходимые поля профиля клиента в нижней части блока "Настройки обратного запроса":


Помимо данных профиля, в объект custom_data можно передавать любые данные в формате mykey:myvalue. Для этого вручную введите ключ и значение, а затем нажмите Enter .

Доступны шаблонные параметры: 

ПараметрОписание
{{uuid}}Генерирует новый UUIDv4
{{event_date}}Дата события в формате "2006-01-02T15:04:05.999999Z"
{{event_date_ymd}}Дата события в формате "2006-01-02"
{{event_date_rfc3339}}Дата события в формате RFC3339
{{event_date_unix}Дата события во времени unix, в строке
{{event_date_unixnano}}Дата события во времени unix (наносекунды), в строке
{{campaign_name}}Извлекает имя кампании, если оно актуально для события, иначе пустое
{{campaign_subid}}Извлекает SubID кампании, если оно актуально для события, иначе пустое
{{database_name}}Извлекает имя базы данных, если оно актуально для события, иначе пустое
{{segment_name}}Извлекает имя сегмента, если оно актуально для события, иначе пустое
{{message_name}}Извлекает имя шаблона, если оно актуально для события, иначе пустое
{{resource_name}}Извлекает имя ресурса, если оно актуально для события, иначе пустое


Например, вы добавляете в custom_data поля:

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

"custom_data": {
		"cname": "PL-5718 - Subscribe - evgen",
		"email": "test@example.com",
		"eventTime": "2021-03-17",
		"eventTimeUnix": "1615988820",
		"id": "dc876134-87a4-4437-aabb-d2fc8a3d4213",
	}


Для того, чтобы передавать содержимое всех сообщений вместе с событиями, активируйте опцию:


Обратите внимание, что при этом все отправленные сообщения будут помещаться в хранилище на фиксированное время, что потребует дополнительного дискового пространства. По умолчанию время хранения - 72 часа и устанавливается глобальной настройкой HOOK_CONTENT_CLEANUP_HOURS в файле main.json. По истечению этого времени события будут передаваться уже без связанного с ними контента.

Пример передачи контента для Push сообщений
{
  ...
  "content": {
     "title": "Push title"
     "body": "Push body"
     "icon": "Push icon"
     "click_url": "https://google.com/?q=push%20click%20url"
 }
}
  • No labels