Подписчик сам выбирает удобный канал. Вы дёргаете один эндпоинт /v1/send — Zapnoty отправит в Telegram или Max в зависимости от канала подписки.
· Webhooks, retry и медиа включены
Без нас
Telegram Bot API и Max API различаются по формату кнопок, медиа, форматированию и ошибкам. Поддерживать оба — значит удваивать код и тесты.
Telegram 429 с Retry-After, Max 5xx, bot blocked, chat not found — каждую ошибку нужно правильно классифицировать и решать, повторять ли.
Если вы пишете только в Telegram — теряете пользователей Max. И наоборот. Поддержать оба нативно — недели разработки.
Что внутри
Один POST, Zapnoty сам выбирает канал по subscriber_id. Текст, медиа, кнопки, форматирование — одинаковый JSON для Telegram и Max.
Фото, видео, документы. URL-кнопки и callback_data с вебхуком button.clicked. До 3 рядов по 3 кнопки — в обоих каналах.
Переключаете format: plain/markdown/html — Zapnoty сам конвертирует в формат, который принимает конкретный мессенджер.
Имя проекта, описание и логотип появляются автоматически. Приветственное и прощальное сообщения — на двух языках.
t.me/zapnotybot?start=proj_SLUG — подписка в один клик с привязкой subscriber_id, permissions и тегов.
subscription.created, delivery.success/failed, button.clicked — все события с HMAC-SHA256 подписью и retry 3×.
Как это работает
Регистрация через Яндекс, VK или magic link по email. API-ключ формата zn_ + 32 символа создаётся одной кнопкой.
Пользователь кликает t.me/zapnotybot?start=proj_SLUG → подписан в один клик. Для Max — аналогичная ссылка.
Один Bearer-токен, один JSON. Text или template, опциональные media и buttons. Retry и webhook события — автоматически.
FAQ
Telegram Bot API — низкоуровневый: SDK, polling/webhooks, ручной retry, свой webhook-сервер. Zapnoty — SaaS-слой: один REST-эндпоинт, готовый retry с exponential backoff, HMAC-подпись исходящих событий, rate limit, очередь для broadcast, кабинет с аналитикой и командой.
Для разработчика — да. Внутри мы транслируем единый JSON в разные API (Max требует user_id вместо chat_id, другой upload для медиа). Вы не касаетесь этих различий — пишете один раз.
Приходит событие MyChatMember, мы автоматически деактивируем все подписки этого chat_id. Webhook delivery.failed с понятной причиной. Retry не делаем — бессмысленно.
Rate limit — 300 запросов в минуту на проект. При превышении — HTTP 429 с Retry-After. На бесплатном тарифе — 100 кредитов (~100 отправок) в месяц.
Да. Есть бизнес-тарифы с командой до 50-500 пользователей, расширенным retention логов (365 дней) и приоритетной поддержкой. Данные хранятся в РФ.
Нет. Вы используете общий @zapnotybot и его Max-аналог. Брендинг (имя проекта, описание, логотип) добавляется автоматически в каждое сообщение. Для полного white-label — корпоративный тариф.
Без привязки карты. 100 кредитов в месяц бесплатно — этого хватит, чтобы попробовать все возможности.
Решения и кейсы
Частые сценарии, в которых Zapnoty заменяет связку из 3-4 отдельных сервисов.
В 10 раз дешевле SMS, доходчивее email
OTP, статусы заказов, брошенные корзины, промо
Формы с уведомлением сразу в Telegram, без забытых ящиков
Drip-уроки, напоминания, Q&A и вход через бот
Поддержка в Telegram/Max без тяжёлого чат-виджета