n8n automation · workflow engineering
No app to install, no website to visit. Clients book, staff run their day, and the owner runs the business — all through buttons in a chat they already have open.
actual product interface, unedited
Why it exists
The owner didn't want her clients learning a new app, and she didn't want to learn one either. Everyone she serves already lives in Telegram. So the entire business — bookings, staff schedules, cancellations, payments — had to work as a conversation, not a dashboard.
What it does
Owner, staff, and clients each see their own menu — same bot, different capabilities, no confusion about who can do what.
Request, confirm, reschedule, cancel, complete, get paid — every state transition is modeled, not improvised.
Settings, schedules, pricing, and reports live inside Telegram too — the owner never leaves the chat she's already in.
A scheduled workflow nudges clients before their visit — no one has to remember to send it.
Payment method, price, and totals per staff member roll up into real business analytics, not a notebook.
Every screen cleans up after itself — old menus and stale cards disappear, so the conversation never turns into scroll-back archaeology.
Role views
The bot greets everyone the same way — what follows depends entirely on who's asking. Nothing here is a mockup; these are the real menus.
↳ prices, staff, work hours, new locations — all configured right here, no separate dashboard
actual product interface, unedited
Under the hood
Every Telegram update enters through a single trigger, gets routed by responsibility, and fans out into focused, single-purpose workflows that call each other — never duplicate each other's logic.
Field notes
race condition · found live, fixed live
A single button press occasionally arrived twice from Telegram, milliseconds apart. Nothing was wrong in isolation — but re-running the same query in a workflow engine that doesn't guarantee run-once execution by default quietly duplicated and reordered a client's list of appointments. The fix wasn't a patch, it was a deliberate idempotency layer: every incoming update gets a fingerprint, checked against a table before anything else runs, so a duplicate delivery is dropped before it can touch a single record.
Built with
Need something like this?
Booking flows, staff coordination, payment tracking, admin tools — built as workflows, not a subscription to yet another SaaS dashboard.