Skip to Content

Built for our own business, now available for yours.

Telegram bot for a subscription service

A bot in three languages where customers see their account, get notifications and ask for support — connected to Odoo.

Tell us what you need All case studies

The problem

Customers of our subscription service kept asking the same things by email and chat: what is my balance, when does my subscription renew, where are my connection details, how do I set up my device. The answers were in Odoo, but customers could not see them without logging in to the website.

What we built

A Telegram bot in English, Russian and Lithuanian.

  • Anyone can see the plans, device set-up guides in their own language, and our contacts.
  • A customer links the bot to their account with a one-time code sent by email.
  • Once linked, they can see their subscriptions, their wallet balance with recent transactions and their connection details, and they can open a support request and reply to it.
  • Odoo notifies the bot when a subscription is started, paused or closed, when connection details are posted, when money moves in the wallet and when support replies. The customer gets a message within seconds.
The customer bot's main menu: link an account, plans, setup guides, news channel, contact, language.
The customer bot's main menu: link an account, plans, setup guides, news channel, contact, language.
Three interface languages, switched with one tap.
Three interface languages, switched with one tap.

Technology

The bot is written in Python and connected to Odoo with standard Odoo tools, with no paid custom code inside Odoo Online. It runs on our own server around the clock. Before every update the bot runs through 37 automated checks against test copies of Telegram and Odoo, so real customers and data are never touched.

For technical readers: Python, aiogram 3, aiohttp, SQLite; Odoo JSON-RPC API and Odoo webhook actions; nginx, systemd.

What was hard

  • Notifications without custom code. Odoo Online does not allow custom modules, so notifications use Odoo’s own webhook actions. The bot re-reads every record over the API instead of trusting the webhook body, and sends exactly one message per event.
  • Safe account linking. Codes are sent by email, with a limit of 3 codes an hour and 3 attempts, and each code expires after 15 minutes. Tokens, codes and connection details never appear in logs.
  • Payments. The payment window does not open inside Telegram’s in-app browser, so payment links open in the customer’s normal browser through a sign-in link.

Result

All five stages (showcase, account linking, account view, notifications, support) went live in one day in September 2026.

Need a bot like this?

Tell us what it should do. We reply in writing with a fixed quote.

Tell us what you need