Каналы
Каналы — это провайдеры доставки, которые PushData использует для отправки уведомлений. Каждый канал привязан к отдельному приложению.
Чтобы настроить новый канал, откройте Приложения → Каналы → Добавить канал.
Email (SMTP или Resend)
Письма уходят через ваш SMTP-сервер (Mail.ru для бизнеса, Яндекс 360, корпоративный сервер — любой) или через API Resend; провайдер выбирается при создании канала.
| Поле | Описание |
|---|---|
| Хост, порт | SMTP-сервер и порт: 465 (SSL) или 587 (STARTTLS) |
| Логин, пароль | Учётная запись SMTP (у Mail.ru и Яндекса — пароль приложения, не пароль от почты) |
| Адрес и имя отправителя | Поле From: исходящих писем |
| API-ключ Resend | Вместо SMTP-полей, если выбран Resend |
Подробно и с примерами провайдеров — Email.
SMS (SMS.ru, SMSC)
Отправляйте SMS через российский шлюз — SMS.ru или SMSC (smsc.ru); один шлюз на канал.
| Поле | Описание |
|---|---|
| api_id | SMS.ru → Настройки → API |
| Логин, пароль | SMSC: логин кабинета и пароль (или пароль для API) |
| Имя отправителя | Согласованное с оператором буквенное имя; пусто — имя шлюза по умолчанию |
Telegram
Личные сообщения контактам через бота вашего приложения и рассылки в группу или канал.
| Поле | Описание |
|---|---|
| Токен бота | От @BotFather — формат: 123456:ABC-DEF...; при сохранении проверяется, вебхук бота направляется в PushData |
| ID чата | Необязательно: группа или канал (например, -1001234567890), куда уходит отправка без target |
Контакт становится доступен, когда открывает бота по своей ссылке Telegram (карточка контакта, поле telegramLink) или пишет ему. Подробно — Telegram.
MAX
Адресные сообщения контактам в мессенджере MAX (max.ru) через бота вашего приложения.
| Поле | Описание |
|---|---|
| Токен бота | От @MasterBot; при сохранении проверяется, бот подписывается на вебхук PushData |
Контакт становится доступен, когда открывает бота по своей ссылке MAX (карточка контакта, поле maxLink) или пишет ему; ваш сервер может передать max_user_id сам. Подробно — MAX.
VK
Личные сообщения от вашего сообщества VK тем, кто их разрешил.
| Поле | Описание |
|---|---|
| Ключ сообщества | Из настроек API сообщества, с правом messages (и manage, чтобы канал сам настроил Callback API); при сохранении проверяется |
| ID сообщества | Число сообщества; короткий адрес заполняется при сохранении |
Контакт становится доступен, когда пишет сообществу по своей ссылке VK (карточка контакта, поле vkLink) или разрешает его сообщения; ваш сайт может передать vk_user_id сам. Подробно — VK.
Telegram Gateway
Коды подтверждения на номер телефона через сам Telegram — без бота и chat id; контакту нужен телефон. $0,01 за доставленный код, недоставленный возвращается.
| Поле | Описание |
|---|---|
| Токен Gateway API | Из gateway.telegram.org → Settings; «Проверить связь» проверяет его на номере телефона |
| Срок кода, длина кода, канал-отправитель | 30–3600 с, 4–8 цифр, необязательный верифицированный канал, от чьего имени показывается код |
Отправка с channel_type: telegram_gateway несёт код в data.code или доверяет его шлюзу (тогда POST /api/v1/notifications/{id}/verify проверяет введённое человеком). Подробно — Telegram Gateway.
Резервный канал и переключение
Каналу можно назначить резервный — другой активный канал того же типа (второй SMTP, SMSC за SMS.ru) в форме канала или fallbackChannelId в GraphQL (createChannel / updateChannel; null убирает). Тогда:
- доставка, которую канал не смог выполнить из-за временного сбоя — провайдер недоступен, ошибка сети, 429 / 5xx, — сразу уходит через резерв, в той же попытке; журнал доставки это помнит (
DeliveryLog.routedVia). Постоянная ошибка (адрес, который провайдер отверг) остаётся за получателем и другой канал не пробует; - каждый такой сбой засчитывается каналу; после
CHANNEL_BREAKER_THRESHOLDподряд (по умолчанию 3) его предохранитель открывается наCHANNEL_BREAKER_COOLDOWN_MS(5 минут): следующие доставки уходят в резерв первым, не дожидаясь сбоя основного. Список каналов показывает «сбой · резерв до ЧЧ:ММ»; - успешная доставка через канал закрывает предохранитель и сбрасывает счётчик — трафик возвращается сам. Состояние видно в
Channel.consecutiveFailures/breakerOpenUntil.
Только один переход: резерв резерва не рассматривается. Отправки без channel_id идут через самый ранний активный канал типа — с его резервом.
Стоп-лист
Адреса, на которые отправки больше не уходят, — один список на приложение, e-mail и SMS:
- пополняют провайдеры: постоянный отказ почтового сервера, называющий ящик (
550 5.1.1 user unknown, «mailbox unavailable / does not exist», «recipient rejected»), кладёт адрес в список с причинойbounce; «нет маршрута / неверный номер» от SMS-шлюза (SMS.ru 202 / 207, SMSC 7 / 8) —invalid; собственный стоп-лист шлюза (SMS.ru 209) —stop. Отказы по политике (спам, relay denied) и любые временные сбои (4xx, 5xx самого сервера) ничего не добавляют: они ничего не говорят о получателе; - пополняете вы: Стоп-лист в меню приложения,
POST /api/v1/suppressions({ channel: "email" | "sms", address, reason?: manual | complaint | stop | bounce | invalid }),addSuppressionв GraphQL — жалоба, просьба по телефону, импорт из старой системы.
Рассылка пропускает адреса из списка ещё до отправки (они считаются в total_skipped), шаг SEND сценария пропускает их как отписку, а адрес, попавший в список посреди рассылки (первый отказ пачки), остальная её часть уже не пробует. GET /api/v1/suppressions?channel=sms перечисляет записи с ответом провайдера; DELETE /api/v1/suppressions/{id} (или «Убрать» на странице) снова пропускает адрес. Стоп-лист — про доставляемость; выбор человека живёт в центре настроек и реестре согласий.
Хвост отписки в SMS
Антиспам-правила с 1 августа 2025 требуют инструкцию по отписке в каждой массовой SMS. Поэтому каждая неслужебная SMS контакту заканчивается строкой — по умолчанию Отписка: {url} — с короткой ссылкой из 8 символов (https://app.pushdata.ru/u/AbC12xYz, выдаётся контакту один раз и переиспользуется): человек открывает её, подтверждает и отписывается от SMS приложения целиком (от всех тем; согласия по каналу закрываются). Отправки transactional: true и обязательные темы хвоста не несут. Настройки приложения → Соответствие закону → Хвост отписки в SMS выключает его (если отписку вы обрабатываете сами) и меняет текст ({url} — место ссылки; не больше 160 символов; smsOptOutFooter / smsOptOutText в GraphQL).
Домен отправителя
У сохранённого e-mail канала кнопка Проверить DNS читает у домена из адреса отправителя SPF (TXT v=spf1, заканчивающийся ~all / -all), DKIM (ключ в <селектор>._domainkey.<домен> — селектор виден в заголовке DKIM-Signature: s=… ваших писем, default, если не указан), DMARC (_dmarc.<домен>, p=quarantine или reject, когда SPF и DKIM проходят) и MX и говорит, чего не хватает. emailDomainCheck(channelId, dkimSelector) в GraphQL отвечает тем же. Без этих трёх записей письма домена уходят в спам при любом сервере.
Соответствие закону: 41-ФЗ и антиспам-правила
Два российских правила определяют, какой канал компания вправе использовать:
- 41-ФЗ (действует с июня–сентября 2025) — госорганы, банки, операторы связи, некредитные финансовые организации, маркетплейсы и платформы с аудиторией больше 500 000 не вправе информировать клиентов через иностранные мессенджеры — Telegram, WhatsApp, Viber (штраф до 200 000 ₽ по ст. 13.11.2 КоАП). Разрешённый мессенджер — MAX. Включите «Организация из перечня 41-ФЗ» в настройках приложения (
restrictedMessengersв GraphQL): каждая отправка, проверка канала и шаг сценария через Telegram отклоняются с400 channel_restricted(прогон сценария завершается ошибкой с причиной в журнале доставки), страница отправки закрывает вкладку Telegram, а роль берёт канал MAX — тот же режим «по контактам» с подписанной ссылкой. SMS, e-mail, push и in-app не затрагиваются. - Антиспам-правила с 1 августа 2025 — массовой SMS нужно явное документированное согласие абонента (дата, способ, текст), инструкция по отписке в каждом сообщении, а компания обязана показать согласие по запросу; оператор даёт абоненту блокировку массовых рассылок. PushData ведёт реестр согласий — каждая подписка с доказательством, закрытая отпиской, — и при отмеченном «Требовать согласие» для SMS в настройках приложения отправляет только тем, кто его дал (
transactional-отправки освобождены); каждая неслужебная SMS несёт хвост отписки с короткой ссылкой.
| Канал | Организации из 41-ФЗ | Остальные |
|---|---|---|
| MAX | да | да |
| SMS, e-mail, push, in-app, сообщения сообщества VK | да | да |
| Telegram | нет (channel_restricted) | да |
Push-уведомления
Для push-уведомлений (FCM, APNs, Web Push) настройте Push-провайдер в разделе Приложения → Push-провайдеры, а не канал.
Использование каналов в сценариях
После настройки канал становится доступным при добавлении узла Отправка в сценарий. Выберите канал и шаблон в панели настройки узла.