Перейти к основному содержимому

Синхронизация статических сегментов

Данные статических сегментов можно синхронизировать с внешними 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}

Полный список переменных Altcraft.

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} — кастомное (дополнительное) поле профиля.

Полный список переменных Altcraft.


DELETE FROM mysegment
WHERE segment_id = {segment_id}
AND clientId IN ({batch_in "CustomID"})

Пример запроса на удаление всех профилей из сегмента
к сведению

{segment_id} — идентификатор сегмента в платформе.

Полный список переменных Altcraft.

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} — идентификатор сегмента в платформе

Полный список переменных Altcraft.

DELETE FROM segments
WHERE segment_id = {segment_id}
LIMIT 1
к сведению

Если вы передаете данные профиля во внешнюю базу через переменные, то одинарные кавычки ' будут экранироваться. В зависимости от типа базы для экранирования используются разные символы:

БДСимвол экранированияПример
MySQL, MSSQL, PostgreSQL, Oracle'(одинарная кавычка)value''s
BigQuery, ClickHouse\ (обратный слеш)value\'s

Статистика синхронизации

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

С помощью кнопки Запустить ресинхронизацию вы можете перерассчитать данные сегментов для выгрузки.