Payment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
Telegram bot for booking haircuts at a barbershop
The bot in Telegram
A part of the code
async def booking_done(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
"""The last step of the form: thanks the client and passes the request on."""
request = context.user_data["booking"]
request["phone"] = update.message.text.strip()
await update.message.reply_text(TEXTS["booking_thanks"], reply_markup=main_menu())
await context.bot.send_message(settings.admin_chat_id, format_request(request))
sheet.append_row([datetime.now().isoformat(timespec="minutes"), *request.values()])
return ConversationHandler.END
All the answers and buttons are in texts.yaml, so the client changes a price or the hours without touching the code.
Files: a ZIP archive with bot.py, texts.yaml, settings.example.env (where the bot token and the sheet go, filled in by the client), requirements.txt and a README: creating the bot in Telegram, connecting the Google Sheet and running it on a small server or hosting. The bot sends the request but does not check the barbers' calendar: the owner confirms the time.
Client: a barbershop with 3 barbers that took bookings only by phone. Task: a Telegram bot with a menu: prices, address and hours, a booking form (service, day and time, name, phone) that sends each request to the owner's chat and adds it to a Google Sheet.
The client and all details are made up.
About this service
A cafe gets the same messages every day: what's on the menu, are you open, do you deliver, can I order ahead. This Telegram bot shows your menu and prices from buttons and, from Standard, takes a pre-order step by step: dishes, pickup time or delivery address, a phone number. The order comes to your chat and a Google Sheet, and you confirm it with the guest yourself. You give the menu with prices, hours, address and delivery terms; we write the Python code, a texts file and a README on creating the bot in @BotFather and running it on your computer, server or a hosting. The bot takes no payments (it can link to your own payment page), does not track what is left in the kitchen and does not reserve a table in any calendar. Running it and the token are on your side.
What is included
- What you getA ZIP archive with the Python code, your menu in a separate texts file, an example settings file and a README; the code is also shown on the order page.
- Menu by buttonsSections like breakfast, coffee and desserts, with your prices
- Orders in your chatEach pre-order arrives as one clear message, from Standard
- A sheet of ordersEvery order is also a row in a Google Sheet
- Your prices onlyThe bot never shows a price you did not give
- New menu in minutesChange dishes and prices in the texts file and restart
How it works
- 1MenuYou give the dishes, prices, hours and the order questions
- 2CodeWe write the bot and the guide to running it
- 3LaunchYou create the bot, put in its token and run it
- 4ChangesYou ask for changes within your package
What we need from you
Your menu as text with sections and prices, opening hours and address; delivery areas, prices and minimum order, if you deliver; what the order form should ask (dishes, pickup time, address, phone) and the chat or group where orders should go; a link to your payment page if you have one. Never send the bot's token or any passwords: the README shows where you put them yourself.
We will ask you:
- Your menu and prices
- How guests order
- Where orders go
- Hours, address, delivery terms
Compare packages
| Packages | BasicCafe menu bot$24 | StandardPre-order bot$51 | PremiumCafe bot with offers$87 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Platform | Telegram | Telegram | Telegram |
| Ready answers | up to 10 | up to 25 | up to 40 |
| Forms (request, booking, order) | No | up to 3 | up to 5 |
| Requests sent to your chat and a Google Sheet | No | Yes | Yes |
| Admin commands and broadcasts | No | No | Yes |
| Languages of the menu | 1 | 1 | 2 |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Does the bot know if a dish has run out?
No. It shows the menu from your texts. If something runs out, change the texts file and restart the bot, or tell the guest when you confirm the order.
Can guests pay for the order in the bot?
No. The bot can give a link to your own payment page, but it does not take payments; you can keep taking payment on pickup or delivery as you do now.
Can it book a table?
It can take a table request with a date, time and number of guests and send it to you. It does not check free tables or a calendar: you confirm the booking.
Where does it run?
On your computer, server or a hosting with Python. While it runs, it answers; we do not host bots, and the token stays with you.
Can you also make it for WhatsApp?
No, this service makes Telegram bots. A WhatsApp bot needs the WhatsApp Business API and an approved business account.
Did not find your answer?
