Case study · 2026
EzSuppBot
An AI helpdesk that knows when to escalate
A hosted Telegram support-bot SaaS taking Stripe subscriptions. Businesses connect a bot and get an AI agent that answers from their own knowledge base and hands over to a human when it should — flat price, AI included.
Live
Taking subscriptions
AI
Included, not metered
Multi
Tenant bot runtime
1
Server migration, zero loss
Challenge
The established competitor ships a free relay bot and then charges metered credits for every AI reply — so the moment support actually works, the bill becomes unpredictable. The opportunity was an AI-first helpdesk at a flat price. The harder engineering problem was underneath: one service has to run many customers' bots at once, keep each tenant's data separate, take payments reliably, and survive being moved between servers without losing a single conversation.
Approach
- 01Built the master bot as the entire onboarding surface — a customer creates and configures their support bot inside Telegram, never touching a dashboard unless they want to.
- 02Ran per-tenant bots through long polling rather than webhooks, so changing domain or moving server needs no re-registration with Telegram and no downtime window.
- 03Put the AI behind an OpenAI-compatible interface so the model can be swapped — including for a self-hosted one — without touching product code.
- 04Wired Stripe checkout plus an inbound webhook for the paid tier, with transactional email through a verified sending domain.
- 05Closed the biggest operational risk: the live code had no version control, so it was brought under git as the source of truth before anything else changed.
- 06Migrated the whole service to its own server with a temporary bridge host, so traffic kept working throughout the DNS change.
The product
A FastAPI web dashboard, a master onboarding bot, and a per-tenant support-bot runtime — deployed as one service.
- Master bot handles signup, bot creation and configuration in-chat
- AI answers from each business's own knowledge base
- Escalation to a human when the bot shouldn't be answering
- Stripe checkout and webhook for the paid tier
- Transactional email from a verified sending domain
Running it
The unglamorous half — the part that decides whether a SaaS is a business or a side project.
- uvicorn under systemd, behind nginx with Certbot TLS
- Nightly off-site database backups to separate hardware
- Live code brought under version control as source of truth
- Migrated between servers with a bridge host and no data loss
- Port allocation planned so the sister product can share the box
Outcome
- A live SaaS at ezsuppbot.com taking Stripe subscriptions from real customers.
- Clear positioning against the incumbent: flat price with AI included, instead of metered credits.
- Scaffolding reused directly by the sister product, EzForwardBot — the second build was far cheaper than the first.
- A production service I own end to end: code, deploy, billing, email, backups and restore.
Services involved
Want something like this built — and kept running? oliver@omwc.co.uk