Захват событий Altcraft
Захват событий (Action Hooks) — это механизм уведомления внешних систем о событиях платформы. Это могут быть как системные действия, связанные с доставкой сообщений или импортом профилей подписчиков, так и действия клиентов, отслеженные пикселями платформы Altcraft на Вашем сайте или в приложении.
Захват событий может работать со всеми базами данных или с какой-либо конкретной. Захваченные события могут передаваться батчем в формате JSON по HTTP или отправляться в очередь брокера асинхронно.
Конфигурируется мастер-пользователем аккаунта для определенной базы данных или для всех сразу.
Чтобы начать работу, в главном меню выберите Интеграции → Захват событий:
Существующие захваты событий вы можете активировать или остановить, клонировать или удалить с помощью контекстного меню. Если вы хотите отредактировать захват, нажмите на его заголовок. Чтобы добавить новый, нажмите + Создать в верхней части страницы:
Основные настройки захвата событий
В Основных настройках введите имя нового захвата. Здесь же находится переключатель для активации процесса отправки событий:
Выбор действий для захвата
Захваты событий могут работать со всеми Базами профилей сразу или с одной конкретной. В блоке Настройки захвата выберите необходимый вариант в выпадающем меню База данных:
В поле Действия выберите из выпадающего меню события, которые будут передаваться во внешние системы. Типы событий, их обозначения в меню и в запросе захвата, а также описания вы найдёте в этой статье.
По умолчанию Захват регистрирует все события выбранных вами типов. Ограничить события так, чтобы получать более узкую выборку, можно в блоке Дополнительные фильтры:
- Ресурсы — будут захвачены события, связанные с коммуникациями в рамках определённых ресурсов.
- Кампания — будут захвачены события определённых маркетинговых кампаний.
- Сообщения — будут захвачены события кампаний, использующих определённые шаблоны сообщений.
- Сегменты — будут захвачены события, связанные с подписчиками, входящими в определённые сегменты.
- Пиксели — будут захвачены действия подписчиков на внешних ресурсах, зарегистрированные определёнными пикселями.
Настройки обратного запроса
Доступны следующие типы запроса:
- Отправить JSON запрос батчем. Подробнее.
- Отправить сообщение в очередь RabbitMQ. Подробнее.
- Отправить сообщение в exchange RabbitMQ. Подробнее.
- Отправить сообщение в Kafka broker. Подробнее.
Функция повторной отправки
Если во время отправки сообщения по каким-то причинам произошла ошибка (например, сбой сети), через определенное время сообщение будет отправлено снова. Количество повторных отправок и их периодичность устанавливаются в конфигурационном файле системы "main.json":
"HOOK_RETRY_TIMES"
: устанавливает максимальное количество попыток отправки (по умолчанию - 4)
"HOOK_RETRY_PERIOD_SEC"
: Периоды между попытками отправки, в секундах (по умолчанию - 15)
Передача дополнительных данных о событии в захвате
Данные профиля клиента в захвате
Вместе с информацией о захваченном событии можно передавать значения стандартных и дополнительных полей профиля. Набор доступных дополнительных полей зависит от выбранной базы данных. Выберите в выпадающем списке поля профиля, которые хотите добавить в custom_data:
Ниже можно задать шаблон custom_data. Платформа будет использовать в захват значение из этого шаблона, если в API-запросе на запуск триггера не переданы данные в поле custom_data
.
Дополнительные данные в захвате
Помимо данных профиля, в объект custom_data
можно передавать любые данные в формате mykey:myvalue
. Для этого вручную введите ключ и значение, а затем нажмите Enter ↵.
Доступны шаблонные параметры:
Параметр | Описание |
---|---|
{{uuid}} | Генерирует новый UUIDv4 |
{{event_date}} | Дата события в формате "2006-01-25T15:04:05.999999Z" |
{{event_date_ymd}} | Дата события в формате "2006-01-25" |
{{event_date_rfc3339}} | Дата события в формате RFC 3339 |
{{event_date_unix}} | Дата события во времени unix, в строке |
{{event_date_unixnano}} | Дата события во времени unix (наносекунды), в строке |
{{campaign_name}} | Извлекает имя кампании, если оно актуально для события, иначе пустое |
{{campaign_subid}} | Извлекает SubID кампании, если оно актуально для события, иначе пустое |
{{database_name}} | Извлекает имя базы данных, если оно актуально для события, иначе пустое |
{{segment_name}} | Извлекает имя сегмента, если оно актуально для события, иначе пустое |
{{message_name}} | Извлекает имя шаблона, если оно актуально для события, иначе пустое |
{{message_subject}} | Извлекает тему сообщения в шаблоне, если оно актуально для события, иначе пустое |
{{resource_name}} | Извлекает имя ресурса, если оно актуально для события, иначе пустое |
Например, вы добавляете в custom_data
поля:
В этом случае данные будут переданы следующим образом:
"custom_data": {
"cname": "Black Friday",
"email": "test@example.com",
"eventTime": "2023-03-17",
"eventTimeUnix": "1615988820",
"id": "dc876134-87a4-4437-aabb-d2fc8a3d4213",
}
Контент сообщения в захвате
Для того чтобы вместе с событиями передавать контент всех сообщений, активируйте опцию "Добавить содержимое сообщений":
Содержимое будет передаваться в поле "content"
. Структура поля для каждого канала описана в этой статье.
Обратите внимание, что при этом все отправленные сообщения будут помещаться в хранилище на фиксированное время, что потребует дополнительного дискового пространства. По умолчанию время хранения — 72 часа и устанавливается глобальной настройкой HOOK_CONTENT_CLEANUP_HOURS
в файле main.json. По истечению этого времени события будут передаваться уже без связанного с ними контента.