Синхронизация статических сегмент ов
Данные статических сегментов можно синхронизировать с внешними SQL таблицами данных. Такая интеграция используется, когда вам нужно поддерживать во внешних системах актуальную информацию о группах клиентов. Обновление данных во внешней системе будет происходить на основе определённых событий:
- Добавление профилей в статический сегмент.
- Удаление профилей из статического сегмента.
- Очистка (удаление всех профилей) статического сегмента.
- Создание или обновление статического сегмента.
- Удаление статического сегмента.
Чтобы добавить синхронизацию, в главном меню выберите Интеграции и в верхней части страницы нажмите кнопку + Создать.
Для синхронизации в Административной панели Altcraft необходимо создать коннектор к внешнему SQL хранилищу. Инструкцию по добавлению коннектора вы можете найти здесь.
Настройки интеграции
В основных настройках интеграции введите Имя и Описание, и выберите тип: Синхронизация статических сегментов. Здесь же находится переключатель, с помощью которого вы можете активировать или остановить интеграцию:
Теперь задайте область видимости интеграции. Ниже в этом же блоке выберите SQL коннектор для хранилища с таблицей, в которую будут экспортироваться данные:
SQL запросы для синхронизации событий
Ниже необходимо настроить SQL запросы, которые будут добавлять или удалять данные во внешней таблице на основе событий, связанных с выбранными статическими сегментами.
В запросах могут использоваться дополнительные данные профиля и логические выражения. Соответствие полей профиля и колонок таблицы данных определяется оператором WHERE.
Добавление и удаление профилей, очистка сегмента
Запросы на добавление и удаление профилей являются обязательными для интеграции.
События добавления или удаления профилей клиентов в статический сегмент можно экспортировать по одному или батчем. В случае использования батча устанавливается количество добавленных профилей (Размер батча) и время (Таймаут), по прошествии которого синхронизация будет запущена, даже если необходимое количество профилей не накопилось.
Пример структуры таблицы данных
segId
— идентификатор статического сегмента
clientId
— уникальный идентификатор клиента в датацентре компании
updated
— время добавления или удаления профиля
mysegment
+----------+--------------+------+-----+---------+-------+
| Field Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| segId int(11) | YES | | NULL | |
| clientId varchar(255) | YES | | NULL | |
| updated datetime | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
Пример запроса на добавление профилей батчем
{segment_id}
— идентификатор сегмента в платформе
{$lead.CustomID}
— кастомное (дополнительное) поле профиля.
Батч настривается следующим циклом:
{for $index, $lead = $batch}
({segment_id}, "{$lead.CustomID}", NOW()){autocomma} // Здесь определяются поля для экспорта
{end}
INSERT INTO mysegment (segId, clientId, updated)
VALUES
{for $index, $lead = $batch}
({segment_id}, "{$lead.CustomID}", NOW()){autocomma}
{end}
ON DUPLICATE KEY UPDATE
updated = NOW();
Пример запроса на удаление профилей батчем
{segment_id}
— идентификатор сегмента в платформе.
{$lead.CustomID}
— кастомное (дополнительное) поле профиля.
DELETE FROM mysegment
WHERE segment_id = {segment_id}
AND clientId IN ({batch_in "CustomID"})
Пример запроса на удаление всех профилей из сегмента
{segment_id}
— идентификатор сегмента в платформе.
DELETE FROM mysegment
WHERE segment_id = {segment_id}
Добавление/обновление и удаление сегмента
Дополнительно вы можете настроить экспорт событий о добавлении нового сегмента, обновлении данных существующего и удалении сегмента. Данные о сегментах экспортируются в отдельную SQL таблицу:
Пример структуры таблицы данных
name
— название (Имя) статического сегмента
segment_id
— уникальный ID сегмента в Altcraft
updated
— дата события
segments
+-------------+--------------+------+-----+---------+-------+
| Field Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| name varchar(255) | YES | | NULL | |
| segment_id int(11) | YES | | NULL | |
| updated datetime | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
Пример запроса на добавление/обновление сегмента
INSERT INTO segments (segment_id,name,updated)
VALUES
({segment_id}, "{segment_name}", NOW())
ON DUPLICATE KEY UPDATE
name = "{segment_name}",
updated = NOW();
Пример запроса на удаление сегмента
{segment_id}
— идентификатор сегмента в платформе
DELETE FROM segments
WHERE segment_id = {segment_id}
LIMIT 1
Если вы передаете данные профиля во внешнюю базу через переменные, то одинарные кавычки '
будут экранироваться. В зависимости от типа базы для экранирования используются разные символы:
БД | Символ экранирования | Пример |
---|---|---|
MySQL, MSSQL, PostgreSQL, Oracle | ' (одинарная кавычка) | value''s |
ClickHouse | \ (обратный слеш) | value\'s |
Статистика синхронизации
В блоке Статистика синхронизации будет отображаться информация по количеству успешных SQL запросов за указанное время, а также ошибки выполнения синхронизации.
С помощью кнопки Запустить ресинхронизацию вы можете перерассчитать данные сегментов для выгрузки.