Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    Документация пользователяС чего начатьFAQТермины
      Обновления платформыarrow
    • v2026.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
      • Email-каналarrow
      • Рекомендации по взаимодействию с ISPНастройка собственного from-доменаНастройка и использование постмастеровБыстрый старт
        Push-каналarrow
        • Mobile Pusharrow
        • Настройка и подключение
            Интеграция приложения с Altcraftarrow
          • Провайдеры: структура push сообщенияОбработка и добавление подпискиРегистрация событий
          Web Pusharrow
        • Предварительные настройки
            Настройка для различных браузеровarrow
          • Apple SafariMozilla ServicesFirebase Cloud Messaging
          Подключение Web Push на сайтПередача данных в платформуМетоды Web Push SDK
            Миграция и перенос подписокarrow
          • Перенос push-подписок из стороннего сервисаКак перенести push-подписки, настроенные для SafariМиграция с OneSignal
      SMS-канал
        Создание рассылки с нуляarrow
      • EmailSMSWeb PushMobile PushWhatsAppViber™Руководство: SMS-рассылка через VK NotifyMAX BotMAX GroupNotifyTelegram BotTelegram Group
      Схема работы каналов коммуникацииРуководство: 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
      • Создание формыКонструктор формыОформление формыДействия при активации формыАналитика данныхСвязывание данных канала и формыУсловная постраничная логика в формах и опросахNPS-тестирование
        Пикселиarrow
      • Целевые действия клиентов и скоринг
        Попапыarrow
      • Создание и публикация попапаНастройка попапа в редакторе кодаУправление попапами вручную через скриптАналитика попаповРуководство: попап для подписки на pushБазовые кейсы размещения попапа через Менеджер теговКейс: Создание попапа с виджетом "Колесо фортуны"
        Менеджер теговarrow
      • Настройка и установка Менеджера теговТипы триггеровТипы переменныхСвязывание пикселя и Менеджера тегов
      Отчеты и аналитикаarrow
    • Отчет по каналамОтчёт по трафику
        Сводный отчётarrow
      • Все показатели сводного отчета
      Когортный отчётВремя жизниВоронка конверсииЦелиПрирост аудиторииКарта кликов (Email)Отчет по программам лояльностиОтчёт о возвратахОтчёт о недоставкахОтчет по глобальным контрольным группам
      Интеграцииarrow
    • Синхронизация статических сегментовMAXЯндекс.Аудитории™Аудитории Google AdsFacebook Ads Manager™Область видимости интеграцииWhatsAppViber™Tilda™Yandex AppMetrica™Lpgenerator™VK Реклама™Передаваемые при синхронизации данные
        Интеграция сторонних сервисов с 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-маркетолога
  • Каналы коммуникации
  • Схема работы каналов коммуникации

Схема работы каналов коммуникации

Общая структура​

При запуске кампании запускается бинарный файл campaign, который:

  • обрабатывает шаблон и бизнес-логику (стоп-списки, лимиты, подписки, фильтры и т.д.);
  • формирует структуру сообщений для отправки;
  • направляет готовые сообщения в очереди RabbitMQ;
  • фиксирует ошибки в журнале кампании.

Далее каждое сообщение попадает в соответствующий сервис обработки в зависимости от канала.


Email​

Для email-канала поддерживается несколько видов сендеров (отправщиков): AKMTA (сендер Altcraft) и внешние сендеры. В зависимости от используемого сендера, схема работы может отличаться.

Процесс отправки​

AKMTA​

Кампания отправляет сообщения в очереди:

  • akmta_<sender_id> — обычная очередь;
  • akmta_prior_<sender_id> — приоритетная очередь;
  • geo_akmta_<sender_id> — очередь рассылки по часовому поясу. Она приоритетнее обычной очереди, но менее приоритетна akmta_prior. Используется для того, чтобы даже при высокой нагрузке на платформу клиент получал коммуникации в пределах выбранного часа в его часовом поясе.

Из очередей сообщения обрабатывает сервис akmtad. Дальнейшее поведение процесса akmtad зависит от приоритетности сообщения:

  • Для неприоритетных сообщений — сохраняет сообщения на диск, периодически читает и отправляет их по стратегии отправки, заданной для конкретного sender_id;
  • Для приоритетных — производит попытку немедленной отправки. Если установлены правила повторной отправки, то при неудаче сообщение будет сохранено на диск.

На диске сообщения попадают в очередь spool. Отправка оттуда происходит в соответствии с правилами сендера, платформа "читает" spool с периодичностью равной MTA_EXCHANGE_SCAN_PERIOD. Обратите внимание, что эти сообщения больше не хранятся в RabbitMQ.

Схема отправки выглядит следующим образом:

campaign —> Очередь RMQ (akmta / akmta_prior) —> akmtad —> (при неудаче — запись в очередь spool на диске ) —> SMTP

Остальные сендеры​

Отправка происходит от бинарного файла campaign через внешний HTTP-запрос. Если платформа не может отправить сообщение, то регистрируется ошибка кампании. Обратите внимание, что подобная ошибка не засчитывается как "Недоставка" и в отчет по недоставкам не вносится.

Регистрация статусов​

AKMTA​

Статусы доставки регистрируются сразу по:

  • коду ответа SMTP-сервера;
  • bounce-паттернам (анализ шаблонов возвратов).

Остальные сендеры​

Cтатус события обрабатывают трекинг-сервисы платформы.

Повторная отправка​

AKMTA​

  • Правила повторов задаются отдельно через Панель администратора. О том, как это сделать, можно прочесть в документации администратора;
  • В зависимости от SMTP-кода регистрируются статусы hard bounce или soft bounce;
  • Для soft и hard bounce правила повторной отправки могут отличаться.

Остальные сендеры​

Для остальных сендеров повторные попытки отправки не предусмотрены. В случае ошибки при отправке http-запроса, платформа не производит никаких действий.


SMS​

Процесс отправки​

Кампания отправляет сообщения в одну единую очередь — sms_sender. Затем сервис procintegras рассылает сообщения из очереди. Некоторые шлюзы поддерживают отправку батчем.

Регистрация статусов​

Регистрация статуса работает одним из следующих способов:

  • Шлюз присылает статус сообщения через вебхук. Статус обрабатывается сервисом procsmslisten;
  • Платформа "опрашивает" шлюз. Статус обрабатывается сервисом procsmsev.

Время жизни SMS-сообщения указывается в параметре конфигурации SMS_DEFAULT_TTL (по умолчанию ― 1 сутки). Платформа регистрирует недоставку, если статус не получен в течение этого времени.

Повторная отправка​

Повторные отправки SMS-сообщений происходят через 60, 120, 180, 300 и 600 секунд с момента последней неудачной попытки. Максимальное количество попыток — 5.


Push​

Процесс отправки​

Кампания отправляет сообщения в очередь. Очередь зависит от провайдера:

  • APNs — apns_push_sender
  • Firebase — firebase_push_sender
  • Huawei — huawei_push_sender
  • RuStore — rustore_push_sender
  • Браузерные push Firefox и Safari — web_push_sender
  • Прочие push-провайдеры — custom_push_sender

Затем сервис procintegras рассылает сообщения из очереди. Некоторые шлюзы поддерживают отправку батчем.

Регистрация статусов​

За обработку статуса браузерных веб-пушей отвечает сервис cookie_saver, который отправляет событие в push_events. Дальнейшая обработка происходит в procpush.

Регистрация статусов для мобильных push происходит схожим образом, главное отличие в том, что обработка асинхронных отправок происходит в очереди push_events, а синхронные сразу обрабатываются сервисом procrpc.

Время жизни push-сообщения указывается в параметре конфигурации MTA_DEFAULT_TTL (по умолчанию — 3 суток). Недоставка регистрируется, если не получен статус в течение этого времени.

Синхронные и асинхронные запросы

Синхронные запросы — те запросы, при которых платформа регистрирует ответ по результату отправки, т.е. платформа ждет ответа на свой запрос.
Асинхронные запросы — те запросы, при которых платформа регистрирует ответ по постановке отправки в очередь, т.е. платформа не ждет ответа на свой запрос.

Повторная отправка​

Сендер смотрит на ответ шлюза и на возвращаемые заголовки и, в зависимости от ответа, устанавливает правило повтора. Если в ответе шлюза содержатся конкретные указания (например, шлюз "просит" попробовать заново через 5 минут), то повторная отправка будет выполнена в соответствии с ними. Если ответа нет, или в нем не содержатся точные указания, то срабатывают правила, установленные в конфигурации платформы:

  • PUSH_SENDER_RETRY_MAX_AMOUNT — максимальное количество попыток повторной отправки push-сообщений. По умолчанию — 3;
  • PUSH_SENDER_RETRY_INTERVAL — время между попытками повторной отправки (в секундах). По умолчанию — 1800;
  • PUSH_SENDER_RETRY_SCAN_INTERVAL — периодичность сканирования базы повторных отправок на наличие новых записей (в секундах). По умолчанию — 60.

Подробнее об этих параметрах можно прочесть в документации администратора.


Каналы мессенджеров​

Процесс отправки​

Кампания отправляет сообщения в очередь. Далее сообщения в очереди RabbitMQ обрабатываются в зависимости от канала:

  • Telegram Group, Telegram Bot — очередь piper_messages, обрабатывается в procpiper;
  • Viber, WhatsApp, Notify, MAX Group, MAX Bot — обрабатывается в procintegras.

Регистрация статусов​

  • Telegram — регистрируется в зависимости от http-ответа Telegram. Доставка регистрируется, если нет ошибок во время отправки в API Telegram. Соответственно, недоставка регистрируется, если платформа получила в ответ ошибку при отправке;
  • Viber, WhatsApp, Notify — статусы попадают в платформу через вебхуки. Если во время отправки сообщения получена ошибка, то регистрируется событие недоставки. Статусы "прослушиваются" сервисом trklisten.

Повторная отправка​

В данный момент повторные отправки для сообщений в мессенджерах кроме MAX не предусмотрены. Для MAX повторная отправка происходит через 15, 30, 60, 120, 300 секунд, далее регистрируется событие недоставки.

Ограничения по отправкам

Для Telegram действует ограничение в 28 запросов в секунду на один токен.
Для Notify по умолчанию установлено ограничение 20 запросов в секунду, значение можно изменить в параметре конфигурации VKNOTIFY_SEND_LIMIT_PER_SECOND, максимально — 50 запросов в секунду.
Для Viber по умолчанию установлен максимум в 50 запросов в секунду, изменяется в параметре VIBER_DEVINO_SEND_LIMIT_PER_SECOND.
Для WhatsApp по умолчанию установлено ограничение в 20 запросов в секунду (WHATSAPP_SEND_LIMIT_PER_SECOND); у различных провайдеров могут быть установлены свои ограничения по запросам.

Последнее обновление 25 мар. 2026 г.
Предыдущая страница
Telegram Group
Следующая страница
Руководство: SMS-рассылка через УТШ
  • Общая структура
  • Email
    • Процесс отправки
      • AKMTA
      • Остальные сендеры
    • Регистрация статусов
      • AKMTA
      • Остальные сендеры
    • Повторная отправка
      • AKMTA
      • Остальные сендеры
  • SMS
    • Процесс отправки
    • Регистрация статусов
    • Повторная отправка
  • Push
    • Процесс отправки
    • Регистрация статусов
    • Повторная отправка
  • Каналы мессенджеров
    • Процесс отправки
    • Регистрация статусов
    • Повторная отправка
© 2015 - 2026 Altcraft. Все права защищены.