Чат-бот для мероприятия полезен не сам по себе. Он должен связать четыре части одного пути: регистрацию участника, актуальную программу, адресные уведомления и обращение к организатору. Если хранить эти части раздельно, отменивший участие человек продолжит получать напоминания, а бот сможет показать устаревший зал.
Ниже — способ описать такой процесс до выбора платформы. Сначала определите данные и правила, затем пройдите один полный сценарий от регистрации до фиксации результата отправки. Это не отчёт о действующем внедрении, а основа для требований и приёмки.
Когда мероприятию полезен чат-бот
Чат-боты для мероприятий подходят для конференций, деловых встреч и других событий, где программа может меняться после регистрации. Бот выполняет понятные операции:
- принимает регистрацию и подтверждает, какие сведения сохранены;
- показывает программу из утверждённого источника;
- напоминает о выбранных сессиях и сообщает об их изменениях;
- передаёт организатору вопрос, на который нет подтверждённого ответа.
Главное отличие такого сценария от обычной записи на услугу — изменяемая программа. У конференции есть несколько сессий, залы, докладчики, версии расписания и общие объявления. Одно изменение касается не всех зарегистрированных, а только подходящей группы участников.
Запись на консультацию, процедуру или другой временной слот требует иных правил: свободных интервалов, переноса брони и защиты от двойной записи. Этот соседний сценарий разобран в материале о боте для записи. Здесь речь идёт о сопровождении участника конкретного события.
Не каждую функцию нужно отдавать ИИ. Кнопки подходят для регистрации, выбора сессии и отказа от сообщений. Модель может разбирать свободный вопрос, но отвечать ей следует только по утверждённым данным. Если нужного факта нет, безопасное действие — передать вопрос человеку.
Как устроить регистрацию и данные участника
До диалога определите, что считается одной регистрацией. Удобно присваивать ей внутренний идентификатор регистрации, а в личном диалоге с ботом искать повтор по идентификаторам мероприятия и чата. Тогда повторная отправка формы обновит существующую запись, а не создаст второго участника.
Для базового сценария могут понадобиться:
| Поле | Для чего оно нужно |
|---|---|
| Идентификатор регистрации | Найти конкретную регистрацию и связанные события |
| Идентификатор мероприятия | Не смешивать данные разных мероприятий |
| Идентификатор личного чата | Связать запись с доступным диалогом бота |
| Имя или обращение | Подписать подтверждение и обращение к организатору |
| Выбранные сессии | Отправлять адресные изменения программы |
| Часовой пояс | Показывать время без двусмысленности |
| Статус участия | Различать активную регистрацию и отмену |
| Статус сообщений | Учитывать согласие и последующий отказ |
| Время изменения статуса | Восстановить последовательность действий |
| Просмотренная версия программы | Понять, требуется ли сообщить об обновлении |
Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.
Это проектный минимум, а не универсальный перечень персональных данных. Не стоит просить должность, телефон, компанию или дату рождения просто «на будущее». Каждое поле должно быть связано с конкретным действием. Правовые основания, срок хранения и текст согласия определяет специалист заказчика.
После заполнения бот показывает подтверждение: название события, выбранные сессии, часовой пояс и доступные действия — изменить выбор, отменить участие или отключить сообщения. Подтверждение не должно скрывать ошибку записи. Если рабочая система не приняла данные, участник получает понятный статус, а организатор — сигнал о незавершённой операции по согласованному правилу.
При повторной регистрации система находит существующую пару из идентификаторов мероприятия и личного чата, сравнивает поля и сохраняет изменения в той же записи. Отдельно фиксируется событие обновления. Так можно увидеть историю, не увеличивая число участников.
Как показать программу и отвечать на вопросы
У расписания должен быть один утверждённый источник: например, таблица, база события или административная система. Бот не должен одновременно брать время из таблицы, зал из переписки и имя докладчика из старого файла.
Каждая опубликованная редакция получает версию — номер или временную метку, например «версия программы: v2». Запись сессии содержит как минимум:
- идентификатор сессии;
- тему;
- подтверждённого докладчика, если он назначен;
- дату и время с часовым поясом события;
- зал или отметку, что место ещё не определено;
- версию программы.
В ответе бот указывает, по какой версии показывает сведения: «Программа v2: сессия S1 начнётся в 15:30 в зале C». Участнику время можно дополнительно показать в его часовом поясе, но исходное значение и правило преобразования должны оставаться в данных.
Свободный вопрос не даёт ИИ права дополнять программу. Если источник не содержит докладчика, бот пишет, что докладчик пока не указан. Если нет подтверждённого нового зала, бот не выбирает его по контексту. Вопрос вне подготовленных данных вместе с идентификаторами события и участника передаётся организатору. Человек отвечает или обновляет единый источник, после чего бот использует новую утверждённую версию.
Как рассылать изменения и напоминания
Рассылка начинается не со списка всех регистраций, а с фильтра. Для изменения выбранной сессии можно задать правило:
Сообщение ставят в очередь, только если участие активно, сообщения включены, контакт с ботом доступен, сессия выбрана, а просмотренная версия программы старше текущей.
Статус «контакт доступен» следует устанавливать после входящего взаимодействия, например запуска бота пользователем. В документации Telegram Bot Features команда /start начинает взаимодействие, а при первом открытии чата пользователь видит кнопку Start. Поэтому регистрационная форма вне Telegram сама по себе не доказывает, что бот уже может вести доступный диалог с этим человеком.
Участнику нужен явный способ отключить сообщения. После отказа запись остаётся в учёте мероприятия, но адресные уведомления и напоминания для неё прекращаются. Отмена участия сильнее обычного отказа от рассылки: она исключает человека и из сообщений об изменениях, и из последующих напоминаний участникам.
Telegram ограничивает интенсивность рассылки. Согласно проверенной документации Telegram Bots FAQ, при превышении стандартных ограничений Bot API может отвечать ошибкой 429; для массовых уведомлений отправку нужно планировать с учётом действующих лимитов. Эти правила могут меняться, поэтому перед запуском их сверяют для выбранного режима и нагрузки.
Попадание в выборку, попытка отправки и доставка — разные события. Для каждого сообщения полезно хранить:
- версию программы и причину уведомления;
- время постановки в очередь;
- время попытки;
- ответ API или код ошибки;
- итоговый статус: например, «в очереди», «отправлено», «ошибка» или «результат неизвестен»;
- число повторных попыток по согласованному правилу.
Статус «отправлено» не следует автоматически называть прочтением. Бот также не должен обещать доставку каждому адресату: пользователь мог заблокировать диалог, соединение могло прерваться, а платформа — отклонить запрос.
Учебный перенос сессии конференции
Ниже — синтетический пример для обсуждения логики, а не файл, клиентский кейс или результат внедрения Switch On AI.
У условной конференции сессия S1 была назначена на 14:00 в зале A по программе v1. Организатор переносит её на 15:30 в зал C и выпускает программу v2. В учёте находятся четыре человека:
- Анна участвует, включила сообщения, запустила бота и выбрала S1;
- Борис отменил участие;
- Вера участвует, но отключила сообщения;
- Глеб участвует и получает сообщения, но не выбирал S1.
Для этого изменения проверяют пять условий: участие активно, сообщения включены, контакт доступен, сессия S1 выбрана, участник видел версию старше v2. Условия выполняются только для одного адресата из четырёх: Анна видела v1, а остальные участники исключены раньше по состоянию регистрации, настройке сообщений или выбору сессии. Это число показывает только размер учебной выборки, а не число доставленных сообщений.
| Событие участника | Состояние регистрации | Сообщение | Условие остановки |
|---|---|---|---|
| Анна, R-101: выбрала S1 и ранее видела v1 | Активна; сообщения включены; контакт доступен | Поставить в очередь: «S1 перенесена с 14:00, зал A, на 15:30, зал C». Целевая версия — v2; текущий результат — «в очереди», доставка неизвестна | После зафиксированной попытки не создавать дубль; повторять отправку только по согласованному правилу |
| Борис, R-102: отменил участие | Отменена; прежний выбор S1 не учитывается | Не отправлять; результат — «не отправлено», причина — «участие отменено» | Отмена прекращает изменения и напоминания |
| Вера, R-103: отключила сообщения, S1 выбрана | Активна; сообщения отключены | Не отправлять; результат — «не отправлено», причина — «сообщения отключены» | Отказ прекращает обе рассылки, пока участница сама не включит сообщения |
| Глеб, R-104: S1 не выбирал | Активна; сообщения включены; контакт доступен | Изменение S1 не отправлять; результат — «не отправлено», причина — «сессия не выбрана» | Нет выбранной S1 |
Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.
После одной лишь постановки сообщения Анне в очередь просмотренная версия программы ещё не обязана меняться на v2. Момент обновления задают явно: например, когда участница открыла актуальную программу. Принятие запроса платформой можно хранить как отдельный результат попытки, но оно само по себе не доказывает прочтение. Иначе сбой или непрочитанное сообщение будут выглядеть так, будто участница уже увидела обновление.
Борис не получит ни перенос, ни следующее напоминание, пока его участие отменено. Вера также исключена из обеих рассылок, пока сама не включит сообщения. Глеб не получает изменение S1, но может получать общие объявления мероприятия, если для них определено отдельное основание и сообщения у него включены.

Как выбрать платформу и связать регистрацию с учётом
Сравнивать платформы лучше на одном сценарии, а не по числу кнопок в интерфейсе.
| Критерий | Шаблон конструктора | Собственный сценарий |
|---|---|---|
| Данные участника | Подходит, если доступны нужные поля, поиск повтора и изменение статуса | Можно задать собственную модель, идентификаторы и историю событий |
| Версии программы | Нужно проверить, умеет ли шаблон хранить версию и связывать её с ответами | Правило версий проектируется под источник программы |
| Адресная выборка | Подходит, если фильтр учитывает участие, отказ, контакт и выбранную сессию | Можно реализовать составное правило и журнал причин исключения |
| Отказ от сообщений | Нужна доступная команда или кнопка и немедленное обновление статуса | Поведение задаётся в сценарии и проверяется отдельно |
| Результат отправки | Нужно проверить доступные статусы и экспорт журнала | Можно разделить очередь, попытку, ответ API и итог |
| Интеграции | Зависят от тарифа, прав и доступных подключений | Также зависят от API, прав клиента и ограничений систем |
Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.
Таблица не доказывает совместимость конкретного продукта. Конструктор может закрыть задачу коротким сценарием, если в нём есть нужные данные и правила. Собственная разработка оправдана, когда существенные условия нельзя выразить настройками или требуется контролировать код, журнал и обмен данными.
До выбора пройдите один полный путь на учебных данных:
- создать регистрацию без дубля;
- выбрать сессию S1 и сохранить просмотренную версию v1;
- выпустить программу v2 с новым временем и залом;
- вычислить адресную выборку и записать причины исключения;
- поставить сообщение в очередь и отдельно зафиксировать результат попытки;
- проверить, когда участнику присваивается просмотренная версия v2.
Такой проход проверяет логику, но не заменяет испытание выбранной платформы. До разработки отдельно подтверждают API, тариф, права, экспорт данных и доступные статусы.
Как проверить запуск и подготовить бриф разработчику
Приёмка должна повторять исключения, из-за которых обычно появляются лишние записи и сообщения. Заранее запишите вход и ожидаемый результат.
| Проверка | Входные данные | Ожидаемый результат |
|---|---|---|
| Повторная регистрация | Те же идентификаторы мероприятия и личного чата, изменён выбор сессии | Существующая запись обновлена; второй участник не создан |
| Часовой пояс | S1 начинается в 15:30 в часовом поясе события; у участника другой пояс | Бот показывает корректно преобразованное время и обозначает пояс |
| Новая версия программы | В v1 указаны 14:00 и зал A, в v2 — 15:30 и зал C | После публикации v2 бот не отвечает сведениями из v1 |
| Неизвестный вопрос | В утверждённом источнике нет ответа | Бот не придумывает факт и передаёт вопрос организатору |
| Отмена участия | Активный участник отменяет регистрацию до напоминания | Запись исключена из изменения программы и напоминания |
| Отказ от сообщений | Участник отключает уведомления после регистрации | Новые сообщения ему не ставятся в очередь |
Если таблица не помещается, прокрутите её вправо. С клавиатуры используйте стрелки.
Это приёмочные сценарии для будущей проверки, а не заявление о выполненном тесте. Фактический результат записывают рядом с ожидаемым после подключения выбранных систем.
В бриф разработчику включите:
- событие, его идентификатор и основной часовой пояс;
- идентификатор регистрации и правило поиска повторов;
- обязательные поля и обоснование каждого из них;
- единый источник программы и способ выпуска новой версии;
- правила согласия, отключения сообщений и отмены участия;
- формулы выборки для переносов, напоминаний и общих объявлений;
- статусы очереди, попытки и результата доставки;
- способ передачи неизвестного вопроса организатору;
- ожидаемое поведение при недоступности внешней системы;
- нужные API, права, тариф и ограничения, которые предстоит подтвердить;
- входные данные и ожидаемый результат каждой приёмочной проверки.
Услуга разработки чат-ботов Switch On AI подходит, если нужно связать регистрацию, программу и уведомления конкретного события. Сначала Switch On AI разбирает одну операцию, проверяет данные и доступные API, затем согласует прототип ключевого сценария. Прототип не равен готовому внедрению, а совместимость и права каждой системы подтверждаются отдельно.
Чтобы подготовить разговор, покажите программу ближайшего события и повторяющиеся вопросы участников. На этой основе можно описать задачу, согласовать границы сценария и критерии приёмки без обещания гарантированной доставки или полного отраслевого внедрения.
Вопросы по этой задаче
Что происходит при изменении программы?
Организатор выпускает новую версию расписания. Бот выбирает только активных участников с включёнными сообщениями, доступным контактом и затронутой сессией, а результат каждой попытки фиксирует отдельно. Неизвестный результат отправки нельзя считать доставкой.
Как обработать повторную регистрацию?
Нужно найти запись по согласованному устойчивому признаку, например по идентификаторам мероприятия и личного чата, и обновить её. Новую регистрацию для того же участника и события не создают, но изменение сохраняют в истории событий.
Можно ли написать участнику, который не запускал бота?
Сценарий не должен рассчитывать на такой контакт. Регистрация вне Telegram сама по себе не подтверждает доступный диалог: для рассылки хранится отдельный признак начала взаимодействия, например получение команды /start в личном диалоге.
Когда использовать ИИ, а когда достаточно кнопок?
Кнопок достаточно для регистрации, выбора сессии, отмены и отказа от сообщений. ИИ может разбирать свободные вопросы, но отвечает только по утверждённому источнику; при отсутствии факта вопрос передаётся организатору.
