Одна кнопка — трёхшаговая welcome-цепочка. Другая — напоминание за час до события. Третья — повторяющийся newsletter. Всё через REST API или кабинет.
· Once / Drip / Recurring — 3 типа, воркер каждые 30 сек
Без нас
Каждые 30 секунд опрашивать БД, брать задачи с FOR UPDATE SKIP LOCKED, retry при падении — нетривиальная инфраструктура.
Триггер подписки, шаги с задержками, условный переход, webhook на завершение цепочки. Реализация — недели работы.
И всё через email. А вы хотите в мессенджер, где open rate 95% вместо 20%.
Что внутри
POST /v1/scheduled с subscriber_id и scheduled_at в ISO 8601. Напоминания, запланированные промо, уведомления о событиях.
Триггеры: subscription, segment, permission. До 50 шагов, каждый с delay_minutes. Webhook drip.step_sent и drip.completed.
Каждые N часов (interval_hours ≥ 1). Broadcast-стиль с фильтрами channel/segment/permission. Поддержка медиа и кнопок.
Как в broadcast: {{first_name}}, {{username}}, {{lang}}. На каждого подписчика рендерится индивидуально.
Два воркера не обработают одну и ту же задачу. Масштабируйте воркеры горизонтально без дополнительной координации.
По завершении цепочки прилетит событие — можно триггерить следующий шаг вашего flow (например, открыть доступ к контенту).
Как это работает
POST /v1/scheduled / /v1/drip-chains / /v1/recurring. Задайте текст (или шаблон), фильтры, триггер или время.
Находит задачи с next_run_at <= now, блокирует FOR UPDATE SKIP LOCKED, отправляет через /v1/send. Падение — retry на следующем тике.
scheduled.sent / scheduled.failed для once, drip.step_sent / drip.completed для цепочек, recurring.sent для повторяющихся.
FAQ
Воркер тикает каждые 30 секунд. Задача с scheduled_at=12:00:00 уйдёт в промежутке 12:00:00-12:00:30. Точнее не нужно — Telegram и Max сами вносят задержки в ~200-500 мс.
До 50 шагов. Каждый — отдельный шаблон или текст с delay_minutes от момента триггера. Сложные сценарии: welcome (3 шага), онбординг (7-10 шагов), курс (20-30 шагов).
Да. Триггер — это одно из: subscription (новый подписчик), segment (получение тега), permission (получение разрешения). При срабатывании создаются записи drip_queue с расчётным временем каждого шага.
Следующие шаги пропускаются. Вы получите drip.completed webhook с пометкой о прерывании, чтобы обновить статус у себя (например, выгрузить «отписался на шаге 3»).
Как обычное сообщение — 1 кредит за Telegram/Max, 2 за email. Drip-цепочка на 5 шагов = 5 кредитов за одного подписчика. Recurring считается как broadcast — 1 кредит за каждую успешную доставку.
Да. DELETE /v1/drip-chains/:id — останавливает цепочку для всех подписчиков (активные шаги выполняются до конца, новые не стартуют). Для отдельного подписчика — снимите триггер (отзывите тег/permission или удалите подписку).
Без привязки карты. 100 кредитов в месяц бесплатно — этого хватит, чтобы попробовать все возможности.
Решения и кейсы
Частые сценарии, в которых Zapnoty заменяет связку из 3-4 отдельных сервисов.
В 10 раз дешевле SMS, доходчивее email
OTP, статусы заказов, брошенные корзины, промо
Формы с уведомлением сразу в Telegram, без забытых ящиков
Drip-уроки, напоминания, Q&A и вход через бот
Поддержка в Telegram/Max без тяжёлого чат-виджета