Request-intake bots for a study centre
The study centre needed to take course sign-ups without losing any of them.
Customer in Telegram
Hello. Choose a section.
Sign up
Request sent. An admin will message you.
Admin group
What stood in the way
Several admins need to see each request, and nothing should get lost when an admin changes.
The bot has to run around the clock without paying for a server.
What was done
- 01
Menu
About the centre, books, fees, FAQ. Common questions are answered in a couple of taps.
- 02
Four request types
Each request goes to a private admin group with a link to the person’s profile, and a “Message” button if they have a username.
- 03
Backup contact
If a request fails, the bot gives the person a contact to reach the centre directly.
- 04
No payment details in the bot
The bot never posts payment details; an admin sends them personally. This protects against clone bots with fake details.
- 05
Move to Cloudflare Workers
The first version was in Python. I then moved it to Cloudflare Workers, so the bots run 24/7 with no server bill.
- 06
A second bot
A simpler version for a single course: the course description and a request form.
Technology
- Python (aiogram)
- JavaScript
- Cloudflare Workers
My role
Built the bots and moved them to Cloudflare Workers.
What was checked
The bot logic is covered by automated tests that run without Telegram: menus, every request type, delivery to the group, protected service routes. On 23 Oct 2026 all 43 checks passed.