Практикуму нужен был Telegram-бот, где человек находит бесплатные материалы, проходит профтест, а под Новый год бросает кубик за подарок. Я собрал его так, что весь портал помещается в одно сообщение. Каждый из 710 подарков уходил одному человеку и записывался в базу. В Chat2Desk было видно, кто на самом деле перешёл по ссылке, а не только кому дошло сообщение.
Привет, это портал Практикума.
Выберите раздел, я всё покажу здесь же, не засоряя чат.
Яндекс Практикум учит цифровым профессиям. Аудитория у него большая и пёстрая. Один ещё думает, не сменить ли работу, другой уже выбрал направление и ищет, с чего начать бесплатно.
Практикуму нужен был канал в Telegram, через который человек попадает в бесплатные материалы и сервисную информацию. К этому промо с подарками - книги, промокоды, доступы к курсам. И аналитика, которая показывает, кто куда дошёл после кнопки, а не только кому ушло сообщение.
Отдельно просили, чтобы бот не превращался в простыню переписки на сорок сообщений. Нужен был компактный интерфейс, где сразу видно, в каком ты разделе.
Ещё по теме - AI-боты и ИИ-агенты для CRM · Сопровождение amoCRM и Kommo · CRM и автоматизация в Петербурге
Меню с бесплатными материалами, историями выпускников, консультациями и блогом. Ходить по нему быстро и не возвращаться на сайт.
Рассылка, в которой человек по-настоящему бросает кубик, и от выпавшего числа зависит его подарок.
Промокодов и курсов ограниченное число. Надо знать, кто, когда и что получил, и не отдать один код двоим.
Видеть не только, кому дошло сообщение, но и кто открыл лендинг или курс и после какой механики.
Помочь человеку выбрать направление и дальше вести его контентом, не продавая обучение с порога.
Чат не должен превращаться в ленту. Бот должен ощущаться как мини-приложение, а не как переписка.
Обычный бот на каждое нажатие шлёт новое сообщение. Двадцать нажатий, и чат превращается в свалку, где уже не понять, куда ты попал и как вернуться назад.
Все экраны портала я повесил на одно сообщение с картинкой. Кнопка не присылает новое сообщение, а переписывает у текущего подпись и клавиатуру. Человек остаётся в том же окне, и история чата не растёт.
У этого нашёлся приятный побочный эффект. Раз экран один, навигацию можно строить как в приложении, с текущим разделом, кнопкой назад и понятной глубиной. И бот уже воспринимается не как чат, а как интерфейс.
Бесплатные материалы про IT
Подборка вводных курсов, вебинаров и статей. Начать можно без оплаты и без установки чего-либо.
В Telegram есть встроенный анимированный кубик, и его результат приходит боту как обычное сообщение. Значит, подарок можно разыграть по-настоящему, а не крутить анимацию с заранее известным исходом.
КНИГА
КНИГА
КНИГА
КНИГА
ПРОМОКОД
ИЛИ КУРС
ПРОМОКОД
ИЛИ КУРС
Рассылка приглашает бросить кубик
Человеку приходит новогоднее сообщение с предложением сыграть за подарок, и он идёт в бота.
Бросок уходит через Dice API
Это штатный анимированный кубик Telegram. Человек видит настоящую анимацию, а результат приходит на бэкенд вместе с сообщением.
Бэкенд читает значение
Выпало от 1 до 4, и бот дарит бесплатную книгу. На 5 или 6 включается ветка с ограниченным пулом.
Из пула забирается следующий подарок
Сначала идут промокоды. Когда они кончаются, бот сам переходит на уникальные ссылки к бесплатному курсу.
Выдача фиксируется в базе
Дата, время, user_name, ссылка на диалог и сам код. С этого момента подарок помечен занятым, и второму человеку он не достанется.
Бросайте кубик.
От результата зависит подарок - книга, промокод на обучение или доступ к бесплатному курсу.
Кубик родной для мессенджера. Человек не заполняет поля и не уходит на лендинг, он играет там, где и так сидит. Отклик на такую рассылку заметно выше, чем на привычное "заберите подарок по ссылке".
Промокод, выданный дважды, не мелочь. Это либо человек с нерабочим кодом и обидой, либо лишние деньги на стороне клиента. Поэтому пул я сделал не списком в таблице, а отдельной сущностью в базе.
Когда выпадает 5 или 6, серверная часть берёт следующий свободный промокод и тут же помечает его выданным. Если промокоды кончились, выдача без остановки переходит на пул уникальных ссылок.
Пользователь этой развилки не видит. Для него это просто подарок, который пришёл в чат.
| Дата и время | Пользователь | Диалог | Что выдано | Тип |
|---|---|---|---|---|
| 31.12 · 12:04 | @user_name | ссылка на чат | PRACTICUM-XXXX | промокод |
| 31.12 · 12:07 | @user_name | ссылка на чат | PRACTICUM-XXXX | промокод |
| 31.12 · 12:11 | @user_name | ссылка на чат | книга | без лимита |
| 31.12 · 12:15 | @user_name | ссылка на чат | course/uniq-link | курс |
Развилка на входе
Человек выбирает, что ему ближе. Не может определиться с профессией, хочет учиться бесплатно или ему нужна консультация.
Уточнение этапа
Только думает о смене профессии или уже выбрал направление. От этого зависят тон и глубина следующих вопросов.
Вопросы и баллы
Ответы складываются в счёт, по нему бот выдаёт персональный результат с конкретной рекомендацией.
Рекомендация и подборка
Например, бесплатный курс про выбор профессии в программировании, следом подборка вебинаров про IT и digital.
Догрев на следующий день
Уходит рассылка с материалами про рынок Казахстана и востребованные профессии. Ещё не продажа, но уже про деньги и карьеру.
Приглашение и заявка
В конце бот зовёт пройти бесплатные вводные части курсов за 7 дней с бонусной скидкой. Если вопросы остались, можно оставить заявку на консультацию.
До первого предложения купить проходит три дня контента. Профтест отвечает на главный вопрос этой аудитории, "я не знаю, кем хочу быть", и только потом разговор переходит к обучению.
Заявка на консультацию стоит в конце как опция, а не как шлагбаум на входе. Кто готов, тот оставит.
По обычной ссылке из бота видно только, что сообщение отправлено. Дошёл ли человек до курса, никто не знал. Поэтому между ботом и целевой страницей я поставил промежуточную HTML-страницу.
Никак. Переход занимает около секунды и остаётся незаметным, страница не показывает ни заглушки, ни спиннера. Человек нажал кнопку в боте и оказался на курсе.
Редирект срабатывает и тогда, когда API ответил ошибкой. Аналитика не должна ломать человеку дорогу, поэтому если она упала, он всё равно попадает на курс.
В кнопке ссылка с параметрами, а не прямой адрес лендинга.
Разбирает параметры, дёргает Chat2Desk, сразу отправляет дальше.
У клиента появляется тег кампании, по нему строятся сегменты и отчёты.
Курс или лендинг. Человек попадает туда примерно через секунду и ничего не замечает.
Промо-кампания это короткий пик нагрузки на конечный запас подарков. Всё интересное происходит на краях, а не в счастливом сценарии, поэтому края я закладывал сразу.
Когда промокоды кончаются, выдача не падает с ошибкой и не отдаёт пустоту. Бот сам переходит на пул уникальных ссылок к бесплатному курсу, а человек получает обычный подарок.
В пике рассылки люди играют одновременно. Подарок забирается и помечается использованным в момент выдачи, поэтому два человека не могут получить одну и ту же строку из пула.
Редирект срабатывает и при ошибке Chat2Desk. Данные полезны, но не ценой того, что человек не попадёт на курс. В этой схеме аналитика на втором месте.
В журнале рядом с кодом лежит ссылка на диалог в боте. Когда приходит вопрос "мой промокод не работает", поддержка поднимает конкретный случай за минуту, а не ищет по выгрузкам.
Для меня главное здесь не сам бот. Промо-кампанию стало можно измерить. Видно, сколько подарков ушло и кому, какая механика привела человека на курс и какой сегмент на самом деле кликает. Кубик теперь можно сравнивать с любой другой механикой по цифрам, а не спорить о впечатлениях.
Задумали промо в Telegram с подарками и не хотите потом выяснять, кому ушёл какой код? Напишите. Разберу механику и скажу, где она может сломаться на пике рассылки.