Тип бота
Карта лояльности, которую невозможно забыть дома
Telegram-бот лояльности ведёт штампы или баллы в привязке к чату клиента, выдаёт реферальные коды с корректной атрибуцией и гасит награды на кассе по коду, который проверяет персонал. Он убирает физическую карту. Заурядный продукт он таким, ради которого возвращаются, не сделает.
Боты лояльности и рефералов: цена, сроки и ограничения
- Фиксированная цена
- $3,800 USD
- Срок
- 18 календарных дней с момента старта
- Нагрузка диплинка
- 64 символа из урезанного алфавита
- Проверка покупки
- Из одного Telegram невозможна — нужен поток данных с кассы
- Идентификация устройства
- Telegram не даёт боту постоянный идентификатор устройства
- Потолок рассылки
- ~30 сообщений/сек на бота
As of 2025-10-01, Telegram Bot API 13.4
Какую задачу это решает
У бумажных карточек со штампами известная и нелестная экономика. Большая часть теряется, не дойдя до конца, дошедшие не несут никакой информации о том, кто их заполнил, и вся схема остаётся для вас невидимой до момента, когда кто-то предъявит полную карточку. Вы платите скидкой и не покупаете ровным счётом никаких данных.
Лояльность в отдельном приложении решает проблему с данными и создаёт худшую: ради кофейни приложение никто не ставит. Доля установок у приложений одного заведения настолько мала, что схема достаёт только до самых лояльных клиентов — ровно до тех, кому стимул был не нужен.
Схема внутри переписки стоит посередине. Ставить нечего, баланс — в одном сообщении, и каждое начисление привязано к собеседнику, с которым можно заговорить потом. Для большинства операторов реферальная половина важнее накопительной: код, который надёжно связывает нового клиента с тем, кто его привёл, превращает расплывчатое сарафанное радио в то, что можно оценить и оплатить.
Чаще всего схемы рушатся на накрутках. Любой механизм начисления, который клиент может запустить сам, будет запущен персоналом ради знакомых, клиентами друг для друга и тем, кто сообразит, что QR-код на стойке можно сфотографировать. Защита от накруток здесь не опция сверху: от неё зависит, столько ли схема стоит, сколько вы посчитали.
Как идёт разработка
Клиент вступает по коду в точке продаж
QR-код на стойке или в чеке открывает бота и создаёт учётную запись в одно нажатие. Ни формы, ни почты, ни пароля — именно трение на этом шаге определяет охват всей схемы.
deep-linkНачисляет персонал, а не клиент
Участник показывает сменяющийся код из своего чата, сотрудник вводит его в кассовой части бота, штамп добавляется. Начисление по инициативе клиента — механизм, на котором строится любая накрутка, поэтому его здесь просто нет.
inline-keyboardСменяющийся код обесценивает скриншоты
Код участника меняется по короткому циклу и работает один раз. Скриншот, разосланный в групповом чате, протухает раньше, чем станет полезен, — это закрывает самое частое злоупотребление, не мешая ни одному честному человеку.
commandsНаграда открывается автоматически и сама о себе сообщает
Как только порог достигнут, клиенту приходит сообщение с готовым кодом на погашение. Оно приходит у кассы, пока человек ещё здесь, — в этот момент оно и конвертируется.
broadcastРеферальный код засчитывается на событии, которое выбираете вы
Не на регистрации, а на первой покупке, третьем визите или на чём угодно, за что вы действительно готовы платить. Награда за регистрацию порождает схему, которая оплачивает аккаунты, а не клиентов.
deep-linkЛимиты частоты ловят те узоры, которые оставляют накрутки
Десять начислений от одного сотрудника за пять минут или неестественно ветвящееся реферальное дерево поднимают флаг, а не выплату. Контроль виден руководству, и в этой видимости — большая часть его сдерживающей силы.
webhook
Что Telegram разрешает, а что нет
Бот не может подтвердить покупку в реальном мире — он лишь записывает то, что ему сообщили.
Каждое начисление восходит к действию персонала, поэтому честность схемы держится на контроле и аудите людей, а не на криптографии. Подрядчик, обещающий технически исключить злоупотребления персонала, продаёт лишнее.
Полезная нагрузка диплинка в команде start ограничена 64 символами из урезанного алфавита.
Реферальные коды — короткие идентификаторы, которые разворачиваются на сервере, а не упакованные в ссылку данные. Побочный плюс: такой код можно отозвать, а зашитый в ссылку — нельзя.
Telegram не даёт боту никакого постоянного идентификатора устройства.
Выявление накруток на уровне устройства невозможно, остаются поведенческие признаки. Один человек с несколькими учётными записями ловится по узору поведения, а не по отпечатку, и контроль строится исходя из этого.
Бот отправляет порядка 30 сообщений в секунду суммарно.
Рассылка по двадцати тысячам участников уходит около одиннадцати минут. Для акции это нормально; для чего-то, объявленного со стартом в конкретную минуту, — нет.
Telegram ограничивает бота, на которого пользователи регулярно жалуются как на спам.
У рекламного объёма есть настоящий потолок, и держит его терпение ваших же участников. Ограничения частоты зашиты в систему, а не оставлены на усмотрение того, кто на этой неделе ведёт кампанию.
Когда это не нужно строить
- Доля повторных покупок у вас и так высока по причинам, не связанным с ценой. Вы начнёте давать скидку на покупки, которые состоялись бы и без неё, — классический провал программы лояльности.
- Вы не контролируете поведение персонала на кассе. Каждое начисление идёт через сотрудника, поэтому схема без ответственности персонала превращается в скидку для их знакомых.
- Ваша маржа не выдерживает награду при той доле погашений, которую даёт работающая схема. Считайте по восьмидесяти процентам погашения, а не по двадцати, которые бумажные карточки дают за счёт потерь.
- У вас одна точка и меньше сотни постоянных гостей. Вы и так их знаете, а схема добавит процесс, не добавив информации.
На чём это работает
| Компонент | Версия | Зачем |
|---|---|---|
| grammY | 1.45 | Фреймворк бота; отдельные ветки диалога для участников и для персонала. |
| Cloudflare Workers | current | Среда исполнения, включая выпуск и проверку сменяющихся кодов. |
| Cloudflare D1 | current | Балансы, журнал начислений, граф рефералов и признаки накруток. |
| Zod | 4.4 | Валидация каждого действия персонала: это и есть чувствительная поверхность. |
| TypeScript | 5.9 | Строгий режим. Журнал баллов — это деньги, и типизирован он соответственно. |
О чём спрашивают перед стартом
Как помешать персоналу ставить штампы знакомым?
Технически — никак, и тот, кто утверждает обратное, вам что-то продаёт. Работает другое: журнал начислений по каждому сотруднику, лимиты частоты и еженедельный отчёт, в котором выброс виден сразу. Сдерживание прозрачностью, а не криптографией.
Может ли клиент посмотреть баланс, не спрашивая персонал?
Да, в любой момент, и это одно из самых ценных свойств. Неизвестный баланс — главная причина, по которой держатели бумажных карточек перестают участвовать: карточка лежит дома, и сколько на ней, человек не видит.
В какой момент реферал должен приносить выплату?
На квалифицирующем событии, которое чего-то стоит приглашённому, — обычно на первой покупке. Выплата за регистрацию порождает схему, производящую учётные записи, и производить их будут ровно те люди, которым вы меньше всего хотите платить.
Какую долю погашений закладывать в расчёт?
Высокую. У бумажных схем погашение низкое, потому что карточки теряются, и эта потеря молча субсидирует скидку. Баланс в переписке не теряется, поэтому считайте близко к полному погашению, иначе экономика вас удивит.
Будет ли схема работать сразу в нескольких точках?
Да: начисление и погашение в любой точке и отчётность по каждой отдельно. Именно вокруг погашения в чужой точке начинаются бухгалтерские споры, поэтому отчёты сделаны так, чтобы эти споры закрывать, а не подытоживать.
Можно ли отправлять участникам акции?
Да, тем, кто сам подключился к боту, и с намеренно осторожными ограничениями частоты. Telegram ограничивает ботов, на которых жалуются как на спам, поэтому перебор с рассылкой ставит под удар сам канал, а не только вовлечённость.