Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    Документация пользователяС чего начатьFAQТермины
      Обновления платформыarrow
    • v2026.2.77v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
      Хранение и сбор данныхarrow
    • Ресурсы подписокРабота с базами данныхПрофиль подписчикаИмпорт профилей клиентов и обновление данныхЧастые ошибки при импорте профилейИмпорт данных по расписаниюУправление таблицами данныхАвтоматизация сбора данных о профилеМассовое обновление профилей клиентовDouble opt-in подпискаСтоп-спискиСвязи между профилямиЭкспорт истории профилейЭкспорт профилейАвтоматическое создание статического сегмента при импортеКак открыть CSV-файлМатчингТипы полей в базе данныхГлобальные контрольные группыМенеджер подписок
      Каналы коммуникацииarrow
      • Emailarrow
        • Рассылка с нуляarrow
        • Быстрый стартПервая Email-рассылка
        Рекомендации по взаимодействию с ISPНастройка собственного from-доменаНастройка и использование постмастеров
        Pusharrow
        • Mobile Pusharrow
        • Первая Mobile push-рассылкаНастройка и подключение
            Провайдеры Mobile Pusharrow
          • Apple Push Notification ServiceYandex.AppMetricaFirebase Cloud MessagingHuawei Mobile ServicesRuStore
            Интеграция приложения с Altcraftarrow
          • Обработка и добавление подпискиРегистрация событийПровайдеры: структура push-сообщения
          Web Pusharrow
        • Первая Web push-рассылкаНастройка ресурса и сайта
            Провайдеры Web Pusharrow
          • Firebase Cloud MessagingApple SafariMozilla Services
          Передача данных в платформуМетоды Web Push SDKPWA и Push-уведомления
            Миграция и перенос подписокarrow
          • Перенос push-подписок из стороннего сервисаПеренос push-подписок для SafariМиграция с OneSignal
        SMSarrow
      • Первая SMS-рассылка
        Telegramarrow
      • Telegram BotTelegram Group
        Maxarrow
      • MAX BotMAX Group
      Viber™WhatsAppNotifyСхема работы каналов коммуникацииРуководство: SMS-рассылка через VK NotifyРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Сегментацияarrow
    • Статические сегментыДинамические сегментыОбновляемые сегменты
        Условия сегментацииarrow
      • Сегментация по данным профиляСегментация по взаимодействиям с сущностямиСегментация по активности в каналах коммуникацииСегментация по внешним даннымСегментация по внешним SQL-таблицамСегментация по структуре профиля
      Лучшее время отправки (BST)Логические операторы "И" и "ИЛИ"Рекомендации по работе с сегментами
      Шаблоны сообщенийarrow
      • Работа с шаблонами сообщенийarrow
      • Работа в редактореEmail-шаблонSMS-шаблонPush-шаблонMAX-шаблонTelegram-шаблонWhatsApp-шаблонViber-шаблонNotify-шаблон
        Визуальный редактор для email-шаблонаarrow
      • Интерфейс редактораДобавление элементовЭлементы и их настройкиПользовательские блокиСтили элементаСтруктура элементов
      Блочный редактор для email-шаблонаФрагменты шаблоновИзображения в сообщенияхПерсонализация контента в сообщенияхФормирование таблиц на основе элементов массива
        Переменные и функции Altcraftarrow
      • Использование логических выражений в сообщенияхИспользование циклов в сообщенияхИспользование переменных маркета в сообщенияхИспользование функционала JSONPath
        Динамический контент сообщенийarrow
      • Использование API-контента в сообщенияхИспользование HTML-контента в сообщенияхИспользование JSON-контента в сообщенияхИспользование контента из SQL базы данных в сообщениях
      Импорт и экспорт шаблона сообщенияЭкспорт шаблона из PixcraftИмпорт шаблона из стороннего сервиса
      Рассылкиarrow
    • Броадкаст-рассылкаТриггерная рассылкаРегулярная рассылкаМультивариантный тест (A/B/n)РазмещенияРасписание рассылокТестирование расылокКалендарь рассылокУправление очередью сендера
      Кампанииarrow
    • Работа с КампаниямиЛокальные контрольные группы (ЛКГ)Ошибка нарушения стратификации при достижении лимитаРасширение аудитории в кампанииРазметка аудитории в кампаниях
      Сценарии автоматизацииarrow
    • Работа со Сценариями автоматизацииУзлы сценарияКлассические сценарии автоматизации маркетингаПриветственный сценарий: пошаговая настройкаАвтоматическое оповещение менеджера через сценарийСценарий брошенной корзины
      Маркетarrow
    • Настройки маркета
        Продуктыarrow
      • Создание продукта вручнуюИмпорт продукта из файлаИмпорт по расписаниюСегменты продуктов и SKUПодготовка YML-файла
      ЗаказыПеременные маркета в шаблонахРуководство: как отправить письмо подтверждения заказа
      Лояльностьarrow
    • Создание и настройка программы лояльностиИнтеграция лояльности с внешними системамиСоздание программы лояльности с нуляБазовые кейсы использования программы лояльностиСегменты заказовПромокоды
      Веб-слойarrow
      • Формыarrow
        • Создание формыarrow
        • Основные настройки формыКонструктор формыОформление формыДействия и публикация формыУсловная постраничная логика в формах и опросах
        Аналитика данныхСвязывание данных канала и формыNPS-тестирование
        Пикселиarrow
      • Целевые действия клиентов и скоринг
        Попапыarrow
      • Создание и публикация попапаНастройка попапа в редакторе кодаУправление попапами вручную через скриптАналитика попаповРуководство: попап для подписки на pushБазовые кейсы размещения попапа через Менеджер теговКейс: Создание попапа с виджетом "Колесо фортуны"
        Менеджер теговarrow
      • Настройка и установка Менеджера теговТипы триггеровТипы переменныхСвязывание пикселя и Менеджера тегов
      Отчеты и аналитикаarrow
    • Отчет по каналамОтчёт по трафику
        Сводный отчётarrow
      • Все показатели сводного отчета
      Когортный отчётВремя жизниВоронка конверсииЦелиПрирост аудиторииКарта кликов (Email)Отчет по программам лояльностиОтчёт о возвратахОтчёт о недоставкахОтчет по глобальным контрольным группам
      Интеграцииarrow
    • Синхронизация статических сегментовMAXЯндекс.АудиторииАудитории Google AdsFacebook Ads ManagerОбласть видимости интеграцииWhatsAppViberTildaYandex AppMetricaLpgeneratorVK РекламаПередаваемые при синхронизации данные
        Интеграция сторонних сервисов с Altcraft через Albatoarrow
      • Подключение Altcraft к AlbatoЗапуск приветственного сценария через AlbatoПередача данных о событииОтправка триггерной рассылкиРегистрация событийИмпорт данных из Google Sheets через AlbatoПередача данных из Altcraft
      Notify
        Захват событийarrow
      • Захват событий AltcraftТипы событий для захватаСтруктуры сообщений захвата событийОтправить JSON-запрос батчемОтправить сообщение в очередь RabbitMQОтправить сообщение в exchange RabbitMQОтправить сообщение в Kafka brokerПредварительное тестирование события
      Настройкиarrow
    • Настройки аккаунтаНастройки атрибутовПоисковые теги: создание и применениеПользовательские ссылкиВиртуальные сендерыПолитики отправки
        Пользователи и разграничение доступаarrow
      • Двухфакторная аутентификация (2FA)
        Подключенияarrow
      • Подключение к Facebook AdsПодключение к Google AdsПодключение к Яндекс.Аудиториям™Подключение к 360dialogПодключение к EdnaПодключение к Devino TelecomПодключение к SMS TrafficПодключение к VK Рекламе™Подключение к MTS OmniChannelПодключение через OAuth2Подключение через Basic AuthenticationПодключение через Token AuthenticationПодключение через Custom AuthenticationПодключение к MAXПодключение к NotifyПодключение к Rapporto
      Журнал аудита
      API-запросы: с чего начатьarrow
    • Импорт и обновление профиляЗапуск триггерной рассылкиОтправка профиля клиента в сценарий
    Архив документацииБиблиотека email-маркетолога
  • Сегментация
  • Условия сегментации
  • Сегментация по внешним SQL-таблицам

Сегментация по внешним SQL-таблицам

Возможность подключения внешних SQL-баз данных позволяет более гибко подходить к сегментации профилей:

  • Нет необходимости хранить все данные в Altcraft MP
  • Соответственно, нет необходимости в регулярной синхронизации — данные всегда актуальны
  • Можно использовать данные по сущностям, которые в Altcraft MP не предусмотрены
  • Не зависит от платформы и системы, которую вы используете для хранения данных; необходим лишь доступ для выполнения SQL-запросов

Коннекторы для подключения к внешним базам создаются в панели администратора Altcraft.

подсказка

Если вы пользуетесь облачным решением — передайте данные для подключения к базе данных нашей службе поддержки: support@altcraft.com. Там же можно уточнить по вопросам, связанным с возможностью подключения к другим внешним службам и БД.

Создание запроса к базе данных​

Запросы можно конфигурировать как в панели администратора, так и в панели пользователя системы. Разница в том, что в панели пользователя вы сможете сразу просматривать профили, которые были выбраны вашим запросом.

Редактирование запросов в панели пользователя можно запретить настройкой конфигурации в main.json если это необходимо. Для этого нужно будет установить параметр "DISABLE_QUERY_EDITOR": true.

Запросы настраиваются в разделе Данные —> Запросы сегментации. Перейдите в раздел и нажмите кнопку + Создать.

В основных настройках укажите имя запроса, короткое имя (уникально для каждого запроса, используется в переменных платформы и в API-запросах), срок кэширования результата, а также группу, теги и описание запроса:

к сведению

Обратите внимание: срок кэширования результата работает только при расчете сегментов. В сценариях автоматизации используется отдельный механизм кэширования с собственными настройками.

Чтобы запрос сегментации работал правильно, он должен выбирать колонку с данными, которые уже есть в Altcraft MP. Например, если в Altcraft есть идентификатор клиента в базе профилей, то необходимо сформировать такой запрос, чтобы на выходе получился именно этот идентификатор, как минимум в одной из колонок:

Эти запросы будут использоваться внутри сегмента. Можно построить неограниченное количество таких запросов для уточнения сегмента. В каждом таком запросе вы можете выбирать по одному или нескольким параметрам, комбинируя запросы, создавая подзапросы, используя JOIN, UNION и т. д.

Обязательно выберите колонку, которая будет использоваться для поиска профилей, используйте кнопку обновить, чтобы получить новый список колонок по вашему запросу:

В запрос можно добавлять параметры, чтобы запрос изменялся уже при использовании внутри сегмента. Для этого используйте произвольное, но уникальное имя вашего параметра в фигурных скобках, например {CITY}:

Как только вы его укажете в запросе, появится форма с настройками параметра:

Здесь задается тип поля, его значение по умолчанию и заголовок, который будет отображен при создании сегмента.

Если мы хотим, чтобы в сегменте поле выбиралось из списка, мы используем настройку Задать опции. При ее включении выбираем, будем ли мы перечислять список опций или тоже выберем его из SQL:

При этом, если применяются идентификаторы, то SQL запрос должен возвращать две колонки, первая используется как идентификатор, а вторая будет отображаться пользователю:

В случае с заданным списком идентификатор и опции можно перечислить через запятую:

Для всех параметров конфигурируется порядок их отображения при построении сегмента. Порядок можно менять простым перетаскиванием элементов. Заголовки позиционируются отдельно, для более гибкого отображения.

Воспользуйтесь кнопкой предпросмотра выборки из базы данных, чтобы посмотреть, как форма запроса будет выглядеть в сегменте и как будет выглядеть тестовая выборка:

Укажите базу данных и поле профиля для выборки, а также колонку если их несколько. В разделе Параметры запроса сформируется форма в том виде, как она потом будет выглядеть в сегменте. Нажав кнопку Применить, вы запустите запрос и он сразу покажет те профили, которые удовлетворили условию запроса:

После сохранения запроса его можно будет использовать в сегментах.

Типы переменных​

При создании параметра запроса вы можете выбрать один из типов. От выбранного типа зависит, как значение подставляется в SQL-запрос.

Строка​

Значение подставляется как текст.

SELECT email FROM users WHERE city = '{CITY}'

Например, нам нужно найти профили из Москвы. При настройке сегмента указываем значение Москва в поле параметра {CITY}. Чтобы было понятнее, задаём заголовок параметра — например, "Город". В базу данных отправится запрос:

SELECT email FROM users WHERE city = 'Москва'

В результате в сегмент попадут профили, у которых в поле city указана Москва.

Целое число и Число с плавающей точкой​

Значение подставляется как целое число, если тип переменной "целое число", или дробное число, если тип переменной "Число с плавающей точкой":

SELECT email FROM orders WHERE order_amount >= '{AMOUNT}'

Например, нам нужно найти профили с суммой заказа от 1500. При настройке сегмента указываем значение 1500 в поле параметра {AMOUNT}. Чтобы было понятнее, задаём заголовок параметра — например, "Минимальная сумма заказа". В базу данных отправится запрос:

SELECT email FROM orders WHERE order_amount >= 1500

В сегмент попадут профили с суммой заказа больше или равной указанной сумме.

Логическое​

Значение подставляется как true (Истина), false (Ложь) или null (Не выбрано).

SELECT email FROM orders WHERE is_vip = {IS_VIP}

Например, нам нужно найти VIP-клиентов. При настройке сегмента выбираем значение Истина в поле параметра {IS_VIP}. Чтобы было понятнее, задаём заголовок параметра — например, "VIP клиент". В базу данных отправится запрос:

SELECT email FROM orders WHERE is_vip = true

В результате в сегмент попадут профили с VIP-статусом.

Массив​

Используется для работы с колонками типа-массива в PostgreSQL. Значения подставляются как массив.

SELECT email FROM orders WHERE statuses && ARRAY[{status_list}]

Переменная {status_list} имеет тип "Массив", Тип элементов массива — "Строка". При настройке сегмента выбираем нужные значения.

Например, в таблице orders есть колонка statuses типа text[], которая содержит массивы статусов заказа. Нужно найти профили, у которых в массиве есть хотя бы один из статусов completed или pending. В сегменте выбираем оба значения. В базу данных отправится запрос:

SELECT email FROM orders WHERE statuses && ARRAY['completed', 'pending']

В результате в сегмент попадут профили, у которых в массиве statuses есть completed или pending.

к сведению

Тип "Массив" работает только для PostgreSQL и требует, чтобы колонка во внешней таблице имела тип-массив (например, text[], integer[]). Для MySQL и ClickHouse использование этого типа не предусмотрено.

Чтобы сохранить запрос, необходимо задать хотя бы одно значение по умолчанию для параметра.

Год​

Используется для фильтрации по году из даты. В запрос подставляется год.

SELECT email FROM orders WHERE YEAR(order_date) = '{year}'

Переменная {year} имеет тип "Год". При настройке сегмента выбираем год.

Например, нужно найти профили, которые сделали заказ в 2025 году. В сегменте выбираем 2025. В базу данных отправится запрос:

SELECT email FROM orders WHERE YEAR(order_date) = 2025

В результате в сегмент попадут все профили с заказами в 2025 году.

Месяц​

Используется для фильтрации по месяцу из даты. В запрос подставляется номер месяца.

SELECT email FROM orders WHERE MONTH(order_date) = '{month}'

Переменная {month} имеет тип "Месяц". При настройке сегмента выбираем месяц из выпадающего списка.

Например, нужно найти профили, которые сделали заказ в мае. В сегменте выбираем "Май". В базу данных отправится запрос:

SELECT email FROM orders WHERE MONTH(order_date) = 5

В результате в сегмент попадут профили с заказами в мае.

Неделя​

Используется для фильтрации по дню недели. В запрос подставляется номер дня в нумерации платформы.

SELECT customer_email FROM customer_orders WHERE WEEKDAY(order_date) = '{weekday}'

Переменная {weekday} имеет тип "Неделя". При настройке сегмента выбираем день недели из выпадающего списка.

Соответствие дней недели и значений, которые подставляются в запрос:

День неделиЗначение
Воскресенье1
Понедельник2
Вторник3
Среда4
Четверг5
Пятница6
Суббота7

Например, нужно найти профили, которые сделали заказ во вторник. В сегменте выбираем "Вторник". В базу данных отправится запрос:

SELECT customer_email FROM customer_orders WHERE WEEKDAY(order_date) = 3
к сведению

Если в вашей базе данных используется другая нумерация дней недели, преобразуйте значение с помощью оператора CASE. Например, в MySQL WEEKDAY() возвращает 0 для понедельника, 6 для воскресенья. Чтобы привести нумерацию платформы к нумерации MySQL, используйте следующую конструкцию:

SELECT customer_email FROM customer_orders 
WHERE WEEKDAY(order_date) = CASE '{weekday}'
WHEN 1 THEN 6 -- воскресенье
WHEN 2 THEN 0 -- понедельник
WHEN 3 THEN 1 -- вторник
WHEN 4 THEN 2 -- среда
WHEN 5 THEN 3 -- четверг
WHEN 6 THEN 4 -- пятница
WHEN 7 THEN 5 -- суббота
END

Дата​

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

SELECT email FROM orders WHERE order_date >= '{date_from}'

Переменная {date_from} имеет тип "Дата". При настройке сегмента выбираем дату в календаре.

Например, нужно найти профили, которые сделали заказ после определённой даты. В сегменте выбираем дату, например 28.05.2024. В базу данных отправится запрос:

SELECT email FROM orders WHERE order_date >= '2024-05-28'

В результате в сегмент попадут профили с заказами от выбранной даты и позже.

Оператор сравнения​

В запрос подставляется оператор сравнения. В запросе для переменной типа "Оператор сравнения" кавычки не ставятся.

SELECT email FROM orders WHERE order_amount {operator} '{MIN_AMOUNT}'

Переменная {operator} имеет тип "Оператор сравнения". При настройке сегмента позволяет выбрать оператор из выпадающего списка.

Доступные операторы:

ОператорОписание
=Равно
>Больше
<Меньше
>=Больше или равно
<=Меньше или равно
<>Не равно

Например, нужно найти профили с суммой заказа больше 1000. В сегменте выбираем оператор >, указываем значение 1000. В базу данных отправится запрос:

SELECT email FROM orders WHERE order_amount > 1000

Логический оператор​

При выборе этого типа переменной при настройке запроса сегментации пользователю будет предложено выбрать оператор из списка. Кавычки не ставятся.

SELECT email FROM orders WHERE status = '{STATUS}' {logical} city = '{CITY}'

Переменная {logical} имеет тип "Логический оператор". При настройке сегмента выбираем оператор из выпадающего списка.

Доступные операторы:

ОператорОписаниеПример использования
ANDОба условия должны быть истинныstatus = 'active' AND city = 'Moscow'
ORХотя бы одно условие истинноstatus = 'active' OR city = 'Moscow'
NOTОтрицание условияNOT (status = 'active')
INЗначение входит в списокcity IN ('Moscow', 'Kazan')
NOT INЗначение не входит в списокcity NOT IN ('Moscow', 'Kazan')
LIKEСодержитcity LIKE '%Mos%'
NOT LIKEНе содержитcity NOT LIKE '%Mos%'
BETWEENВ диапазоне (включая границы)amount BETWEEN 1000 AND 5000
NOT BETWEENВне диапазонаamount NOT BETWEEN 1000 AND 5000
EXISTSСуществуетEXISTS (SELECT 1 FROM orders WHERE user_id = id)
NOT EXISTSНе существуетNOT EXISTS (SELECT 1 FROM orders WHERE user_id = id)
ANY / SOMEСравнение хотя бы с одним значением из подзапросаamount > ANY (SELECT amount FROM orders)
ALLСравнение со всеми значениями из подзапросаamount > ALL (SELECT amount FROM orders)

Например, нужно найти активных профилей из Москвы. В сегменте выбираем оператор AND, указываем город Москва. В базу данных отправится запрос:

SELECT email FROM orders WHERE status = 'active' AND city = 'Москва'
к сведению

Все параметры, кроме "Оператор сравнения" и "Логический оператор", должны быть заключены в одинарные кавычки — '{ПАРАМЕТР}'. Операторы сравнения и логические операторы пишутся без кавычек.

Использование запроса к внешней базе в сегменте​

Перейдите в раздел Данные — Сегменты. Создайте новый сегмент или откройте существующий для редактирования.

Добавьте новое правило и выберите поле-идентификатор или поле, по которому осуществляется поиск профиля запросом. Затем выберите один из вариантов:

  • В таблице данных — если хотите включить всех, кто подойдет под данное условие.
  • Не в таблице данных — если хотите включить всех, кто не подойдет под данное условие.

Затем выберите ваш запрос к таблице и заполните форму параметров запроса:

Условия в таблице данных/не в таблице данных можно неоднократно применять в сегменте, в том числе внутри групп, объединяя их по И (если каждое из условий должно выполняться) или по ИЛИ (если достаточно выполнения любого из условий).

После настройки сохраните сегмент.

Последнее обновление 8 июн. 2026 г.
Предыдущая страница
Сегментация по внешним данным
Следующая страница
Сегментация по структуре профиля
  • Создание запроса к базе данных
  • Типы переменных
    • Строка
    • Целое число и Число с плавающей точкой
    • Логическое
    • Массив
    • Год
    • Месяц
    • Неделя
    • Дата
    • Оператор сравнения
    • Логический оператор
  • Использование запроса к внешней базе в сегменте
© 2015 - 2026 Altcraft. Все права защищены.