Сегментация и кампании
Модуль Segments предоставляет мощный инструментарий для работы с целевыми аудиториями и автоматизации маркетинговых процессов.
Основные возможности
- 🎯 Сегментация аудитории — создание целевых групп на основе данных из БД
- ⚡ Автоматизация кампаний — запуск по расписанию с настраиваемой периодичностью
- 💾 Кэширование профилей — быстрый доступ к часто используемым данным
- 🔄 Потоковая обработка — преобразование реляционных данных в события
- 📊 Аналитика — вычисление агрегатов и реализация алгоритмов

Модуль поддерживает ANSI SQL диалект.
Поэтому список БД, доступных в качестве источника, может расширяться:
- OracleDB
- PostgreSQL
- MySQL / MariaDB
- MySQL2
- PG Native
- CockroachDB
- Amazon Redshift
- SQLite3
- MSSQL
- Clickhouse
- Starrocks
При подключении пользователю системы доступны для выбора весь перечень таблиц и ограниченный список схем в БД - источнике. Ограничение схем настраивает администратор системы.
Начало работы
На главном экране в разделе Campaigns доступен весь список настроенных кампаний в формате таблицы. Вы можете выполнять сортировку по нужному полю, производить быстрый поиск по названию Кампании с помощью поля Search, а также поиск по тэгу с помощью кнопки с воронкой рядом с полем Search.
В таблице доступно название сегмента, описание, кнопки управления, а также информация о последнем статусе расчета Кампании и дате последнего статуса.

Для создания нового сегмента нажмите кнопку “New campaign”.
Создание Кампании
При создании сегмента необходимо заполнить следующие поля:
- Выбрать подключение к нужной БД
- Название Кампании
- Описание Кампании
- Тэги
Есть возможность создать кампанию из файла.

Нажмите “Continue”.
Вам станет доступен редактор сегмента.

Верхняя панель
На панели управления в верхней части редактора вы найдете следующие управляющие кнопки:

-
Боевой запуск расчета сегмента с рассылкой коммуникаций.
2. Остановка боевого расчета сегмента.
3. Настройка расписания для запуска кампании.
4. Тестовый расчет сегмента (без отправки коммуникаций).
5. Сохранение сегмента.
6. Zoom In схемы сегмента.
7. Zoom Out схемы сегмента.
8. Экспорт сегмента в файл.
9. Просмотр статуса расчета сегмента.
При тестовом запуске сегмента все блоки действий игнорируются.
Тестовый запуск расчета Сегмента
Тестовый запуск используется при создании схемы Сегмента и отладке ее работы.
При тестовом запуске срабатывает только один Action - Save as table.
Для тестового запуска необходимо на верхней панели на схеме настроенного простого сегмента необходимо
нажать:
1. Кнопку 5 для сохранения настроенной схемы сегмента.
2. Кнопку 4 для тестового расчета кампании.
Статусы расчета Сегмента
После запуска расчета Сегмента можно следить за ходом его выполнения, а также контролировать наличие
ошибок с помощью раздела Status, который открывается при нажатии на Кнопку 9:
1. По каждому запуску в списке отображаются:
a. Дата/время начала его выполнения
b. Тип расчета Кампании (Тестовый запуск/Боевой запуск/По расписанию)
2. По каждому запуску при нажатии на кнопку с перечеркнутым глазом появляется следующая информация:
a. Над каждым блоком на схеме сегмента в левом верхнем углу отображается количество рассчитанных
записей.
b. В случае наличие ошибок блок, на котором ошибка произошла, выделяется красным цветом.
c. Появляется список выполненных блоков в виде таблицы.

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

Боковая панель
На боковой панели слева расположены блоки для создания сегмента. Они разделены на 3 группы:
- General - отвечают за отбор и фильтрацию данных
- Joins - объединения таблицы
- Actions - выполнение действий на основе входящего датасета.
Схему следует читать слева направо.

В системе Accelera Кампания - набор блоков для выборки и фильтрации датасетов с одним или несколькими действиями в конце.
В каждой Кампании необходимо создавать минимум одно действие.
Описание блоков
Блоки General
На текущий момент в системе представлены следующие блоки:
Select
Данный блок является начальным в каждом сегменте и служит для обращения к таблицам, которые уже существуют в системе-источнике.

Нажмите на кнопку Configure, чтобы настроить блок. На скриншоте пример настройки датасета.

Поля для настройки блоков:
Schema
Необходимо указать схему для работы с таблицами. В зависимости от схемы будет изменен доступный набор таблиц в поле Dataset.
Dataset
Укажите таблицу, откуда будут получены исходные данные.
Columns
Выберите необходимые колонки из доступных в указанной таблице. Для удобства выбора нескольких колонок зажмите Ctrl (Cmd на mac) и кликните на нужные колонки.
Custom columns
Формирование собственных колонок, в которых вы можете использовать функции БД, конкатенацию значений, вычисление агрегатов и тд.
Name - alias значения, Expression - выражение.
Пример:
| Name | Expression |
|---|---|
| clients | sum(client_id) |
| counter | count(client_id) |
| unic_ids | distinct(client_id) |
Where conditions
Блок условий выбора данных.

В поле 1 укажите название колонки, по которой хотите провести фильтрацию.
Поле 2 - тип проверки. Доступны следующие:
- Greater
- Greater or equal
- Equal
- Not equal
- Less
- Less or equal
- In list
- Not in list
- Is not empty
- Is empty
- Like
- Like (case-sensitive)
Поле 3 - тип значения. Доступны следующие:
- Text - значение проверки заключается в кавычки. Используется для проверок текста, equal, like и тд.
- Number - значение используется в качестве числа. Используется для проверок greater, less и тд.
- Column - значение для выражений, которые создаются функциями БД, вычислениями и тд. Например
SYSDATE - INTERVAL '5' MINUTE
Поле 4 - Значение для проверки.
Для типа Text значение будет автоматически обернуто в кавычки.
Для сравнения In list или Not in list укажите значения через запятую, они будут автоматически преобразованы в условия in/not in. Например DATA1 in list a,b,c будет преобразовано в DATA1 in list(’a’,’b’,’c’).
Group by
Поле для группировки данных.
Обратите внимание, что необходимо придерживаться правил SQL, в запросе SELECT при использовании функций агрегации и группировки не должно быть лишних колонок, которые не присутствуют под агрегацией или группировкой.
Order by
Укажите поле для сортировки данных.
Order rule
Правило сортировки (по умолчанию - ASC).
Limit
Ограничение на количество строк результата.
Get unique rows by
Блок необходим для выборки уникального набора строк на основе определенного поля. Также нужно задать поле и направление, по которому будет идти сортировка.

Требуется, когда, к примеру, стоит задача отобрать карты с максимальным балансом. В поле Partition column выберите колонку, по которой следует отбирать, например, идентификатор карты. В поле Order column задайте колонку, в которой содержится значение баланса карты. Затем выберите Order rule, от большего к меньшему или от меньшего к большему.
Index
Индекс — это способ ускорить поиск данных в таблице, используйте его если у вас большой датасет и в следующих блоках вы хотите выполнять по индексируемым полям фильтрацию или JOIN. Подробнее читайте здесь.
File
Блок File позволяет загрузить файл в формате xlsx или csv в БД в качестве временной таблицы.
При создании сегмента вы не сможете сделать загрузку файла до сохранения сегмента и получите такое предупреждение.

При загрузке на первом экране перечислены основные требования к файлу:
-
Принимается только формат xlsx или csv. Xlsx файл не должен быть размером более 1.4 Gb.
-
Убедитесь, что первая строка (заголовки колонок) не содержит пробелов и других символов, кроме латиницы, нижнего подчеркивания и цифр.
-
Даты принимаются только в формате DD-MM-YYYY или DD-MM-YYYY hh:mm:ss. Другие форматы будут конвертироваться в строку.

Отметьте галочкой что файл, который вы загружаете соответствует требованиям. Появится зона для загрузки. Далее перетяните файл на эту зону и вас переместит на 2 экран настройки импорта файла.

Вы можете настроить типы колонок перед импортом, а в зоне preview вы увидите как произойдет импорт даных. Нажмите save and continue.
Filter
Данный блок полезен для дополнительного отбора, фильтрации или трансформации данных после, например, блока Join или Append.

Дважды кликните в центр блока для настройки.

Данный блок имеет схожие с Dataset настройки, только выбрать схему и датасет нельзя. На вход этого блока подается предыдущая выборка данных.
В поле Columns вам будет доступен перечень колонок, которые создаются в предыдущем датасете. Например, если блок Filter установлен после блока Join, то в данном поле вы увидите результат сложения колонок из двух датасетов.
A/B test
При формировании сегмента выборку можно разделить случайным образом на 2 части. Для этого используется блок A/B test.
Необходимо присоединить этот блок к датасету, который нужно разделить:

Для настройки блока указать следующие поля:
- Column - поле, на основании которого выборка будет разделена 2 части (оно должно содержать уникальные значения)
- Groups - можно указать размер контрольной группы в % либо в штуках и ввести в поле для ввода значение:

После выполнения данного блока к датасету добавляется поле GRP_TYPE, содержащее значение CG для контрольной группы либо TG для тестовой группы.
Значения данного поля можно использовать в фильтре блоков для дальнейшей сегментации:


Append
Для сложения содержимого двух датасетов используйте данный блок. Каждый входящий датасет должен иметь одинаковое количество полей в наборах результатов с одинаковыми типами данных. Можно объединить 2 таблицы в одном блоке. При необходимости сложения более 2-х таблиц используйте цепочки блоков Append.

Данный блок недоступен для конфигурации.
В результате вы получите таблицу с объединенными данными (без повторяющихся строк).
Exclude
Блок используется для возврата всех строк в первом датасете, которые не возвращаются вторым датасетом. Каждая таблица будет определять набор данных. Блок Exclude извлечет все записи из первого набора данных, а затем удалит из результатов все записи из второго набора данных.

Данный блок недоступен для конфигурации.
Notes
Блок используется для заметок. Игнорируется при расчете данных.

Блоки Joins
Блоки Joins отвечают за объединение нескольких групп данных в единый датасет.
Все блоки работают по единому принципу, принимая на вход 2 датасета, которые объединяются по общему правилу, в зависимости от типа join:
- Intersection (INNER JOIN): Возвращает строки, которые имеют общие значения в обеих таблицах, исключая строки, у которых нет совпадений.
- Left join: Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если нет совпадений, возвращается NULL для значений столбцов правой таблицы.
- Right join: Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если нет совпадений, возвращается NULL для значений столбцов левой таблицы.
- Left excluding join: Возвращает все строки из левой таблицы, которые не имеют совпадений с правой таблицей. Возвращает NULL для значений столбцов правой таблицы.
- Right excluding join: Возвращает все строки из правой таблицы, которые не имеют совпадений с левой таблицей. Возвращает NULL для значений столбцов левой таблицы.
- Full join: Возвращает все строки из обеих таблиц, совпадающие строки объединяются, а в непересекающихся строках недостающие столбцы в каждой из таблиц заполняются NULL значениями.
После размещения нужного типа join дважды кликните в центр блока для его конфигурации.

Затем выберите поля для сравнения двух датасетов. В поле Left будут доступны колонки из первого датасета, в поле Right - из второго.
Вы можете добавить несколько ключей, они будут объединены по правилу OR.
Убедитесь, что названия колонок из входящих датасетов не дублируются. Иначе вы не сможете сохранить настройку. В случае дубликатов выберите соответствующую колонку в одном из датасетов через псевдоним (Custom columns).
Блоки Actions
Блоки действий, которые выполняются после всех расчетов блоков General.
Send to flow
Действие отправит весь входящий датасет в указанный сценарий. 1 строка - 1 событие.

Дважды кликните в середину блока для открытия окна конфигурации.

Выберите сценарий из списка доступных. Укажите название триггера (или колонку, откуда следует взять название триггера через {{ }}).
Далее укажите идентификатор для события. Поддерживается шаблонный ввод. Например, на скриншоте будет взято содержимое колонки ID в качестве идентификатора. Можно соединять несколько колонок, например {{ ID }}_{{ DATA1 }}.
Cache profile
Сохранит входящий датасет как динамический профиль в память для дальнейшего использования в сценарии. Перезаписывает существующие данные.

Дважды кликните в середину блока для конфигурации.

При исполнении этого блока вы сможете найти его в списке ваших динамических профилей.
Save as table
Сохранит входящий датасет как таблицу. Ее можно будет использовать в других сегментах.

Дважды кликните в середину блока для конфигурации.
Таблица будет создана в рабочей схеме БД для Accelera (настраивается администратором системы).

Необходимо придерживаться стандартных правил наименования таблиц в SQL, недопустимы пробелы, цифры в начале, символы и тд.
REST API
REST API экшн позволяет отправлять данные из сегмента во внешние API сервисы через HTTP запросы.
Режимы отправки данных:
- Line (построчная)
Каждая запись датасета отправляется отдельным HTTP запросом.
Когда использовать: API принимает одну запись за раз. - Batch (пакетная)
Записи группируются в массив и отправляются пачками.
Когда использовать: API принимает массив записей.
Параметры: Размер пакета — количество записей в одном запросе - Nested (вложенная)
Массив записей вкладывается в JSON-обертку с дополнительными полями.
Когда использовать: API требует определенную структуру с метаданными.
Параметры:
JSON обертка — структура с плейсхолдером$DATA
Размер пакета — количество записей в массиве
Персонализация запросов
Подстановка в URL
https://api.example.com/users/{{user_id}}/profileПодстановка в заголовки
Authorization: Bearer {{api_token}}
X-User-ID: {{user_id}}Подстановка в тело запроса
{
"id": {{id}},
"name": "{{name}}",
"email": "{{email}}"
}Числовые значения указывайте без кавычек:
{{id}}Строковые значения — в кавычках:"{{name}}"
Дополнительные настройки
Таймаут и повторы
| Параметр | Описание | По умолчанию |
|---|---|---|
| Таймаут | Максимальное время ожидания ответа | 30 сек |
| Количество повторов | Повторы при ошибках 5xx и сетевых сбоях | 3 |
| Задержка | Пауза между повторами | 5 сек |
Rate limiting
Ограничивает количество запросов в секунду для защиты от превышения лимитов внешнего API.
Сохранение результатов
Позволяет записывать результаты запросов в таблицу rest_api_results:
- Полный JSON ответа
- Извлечение конкретных полей по пути (например:
data.user.id)
Маппинг результатов (для batch/nested):
- По индексу — ответ[i] соответствует запросу[i]
- По ID полю — поиск в массиве ответов по ID
- Общий результат — весь ответ для всех записей батча
Обработка ошибок
| Тип ошибки | Поведение |
|---|---|
| Сетевая ошибка | Повтор (если настроено) |
| Ошибка 5xx | Повтор (если настроено) |
| Ошибка 4xx | Без повтора, запись ошибки |
| Таймаут | Без повтора, запись ошибки |
При включенном сохранении результатов все ошибки записываются в таблицу с полем is_success = false.
Ограничения
- HTTP методы: POST, PUT, PATCH
- Формат данных: только JSON
- Максимальный таймаут: 600 секунд
- Максимальный rate limit: 1000 запросов/сек
Где хранятся результаты
При включенном сохранении результаты записываются в таблицу rest_api_results в схеме DB_WORKSPACE_SCHEMA.
Структура таблицы:
| Поле | Описание |
|---|---|
| segment_id | ID сегмента |
| startup_id | ID запуска |
| node_id | ID ноды |
| client_key_field | Название поля-идентификатора |
| client_key_value | Значение идентификатора записи |
| request_url | URL запроса |
| request_method | HTTP метод |
| response_status | HTTP статус ответа |
| response_body | Полный JSON ответа (если включено) |
| extracted_fields | Извлеченные поля в формате JSON |
| error_message | Текст ошибки (при неудаче) |
| is_success | Флаг успешности |
| created_at | Время создания записи |
Настройка кампании
Для запуска расчета сегментов по расписанию используйте кампанию.

Для настройки введите имя кампании, описание, задайте дату старта.
Если галочка Recurrent осталась неактивна, кампания выполняется единожды в указанное время.
При активации повторяющейся кампании укажите дату старта и параметры повторения.
Можно запускать кампанию по будням, каждый месяц, в выходные дни, каждый час и тд.
В самом начале модала настройки находится тумблер активации кампании. Кампания насчет действовать только после его активации (после этого необходимо сохранить сегмент).

При активной кампании ее иконка поменяет свой цвет:

Статусы сегментов
При запуске тестового сегмента (или отработке триггера кампании) создается задача на расчет данных. Вы можете следить за состоянием каждого запуска на панели статусов.
Нажмите на соответствующую кнопку, чтобы раскрыть эту панель.

В верхней части панели доступны кнопки обновления данных и очистки всех статусов (действие нельзя отменить).
Выберите необходимый статус и на схеме вы сможете увидеть статус каждого блока (отработал ли он успешно, в процессе, или возникла какая-то ошибка). Также вам доступно количество данных, рассчитанное каждым блоком и дата окончания расчета.

В случае возникновения ошибки расчета вы увидите ее на панели статуса соответствующего блока.

Статусные события сегментов
Для того что бы включить статусные события сегментов в enivornment нужно добавить переменную FLOW_SEGMENT_EVENTS=true, по умолчанию этот функционал выключен.
При запуске, окончании и ошибке генерирует системное событие Campaign_Status.
В контексте события будут содержаться следующие параметры:
- status = started, finished, error. Параметр содержит информацию о статусе сегмента
- segment_id = {{segment_id}}. Параметр содержит информацию об ID. сегмента, с которым и связанно системное событие

На скриншоте представлен простой сценарий, который отлавливает событие Campaign_Status и проверяет с помощью инструмента Decision статус и ID нужного нам сценария. Когда приходит событие с нужным нам контекстом пользователь проходит дальше по сценарию, если контекст не тот, то выходит из него.

В настройках decision можно проверять как нужный статус исполнения сегмента, так и его ID, что позволяет гибко настраивать сценарии и реагировать в зависимости от бизнес-задач.