Синхронизация статических сегментов
Данные статических сегментов можно синхронизировать с внешними SQL таблицами данных. Такая интеграция используется, когда вам нужно поддерживать во внешних системах актуальную информацию о группах клиентов. Обновление данных во внешней системе будет происходить на основе определённых событий:
- Добавление профилей в статический сегмент.
- Удаление профилей из статического сегмента.
- Очистка (удаление всех профилей) статического сегмента.
- Создание или обновление статического сегмента.
- Удаление статического сегмента.
Чтобы добавить синхронизацию, в главном меню выберите Интеграции и в верхней части страницы нажмите кнопку + Создать.
Для синхронизации в панели администратора Altcraft необходимо создать коннектор к внешнему SQL хранилищу. Инструкцию по добавлению коннектора вы можете найти здесь.
Настройки интеграции
В основных настройках интеграции введите Имя и Описание, и выберите тип: Синхронизация статических сегментов. Здесь же находится переключатель, с помощью которого вы можете активировать или остановить интеграцию:

Теперь задайте область видимости интеграции. Ниже в этом же блоке выберите SQL коннектор для хранилища с таблицей, в которую будут экспортироваться данные:

SQL-запросы для синхронизации событий
Ниже необходимо настроить SQL-запросы, которые будут добавлять или удалять данные во внешней таблице на основе событий, связанных с выбранными статическими сегментами.
В запросах могут использоваться дополнительные данные профиля и логические выражения. Соответствие полей профиля и колонок таблицы данных определяется оператором WHERE.

Добавление и удаление профилей, очистка сегмента
Запросы на добавление и удаление профилей являются обязательными для интеграции.
События добавления или удаления профилей клиентов в статический сегмент можно экспортировать по одному или батчем. В случае использования батча устанавливается количество добавленных профилей (Размер батча) и время (Таймаут), по прошествии которого синхронизация будет запущена, даже если необходимое количество профилей не накопилось. Значение таймаута по умолчанию — 60 секунд.
Пример структуры таблицы данных
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}