Cleaning calculator with orders to Telegram and a sheet
A calculator for a cleaning service: cleaning type, area, bathrooms and extras, with the total updating on every click. A placed order becomes a message for the staff bot and a row in the sheet. A demo built for this portfolio; the company is made up.
Demo calculator, it runs on this page
Apartment cleaning, Clean Corner service
The company is made up, the price list is a placeholder and the total is shown in price-list units. The order goes nowhere: once you place it, the message for the staff bot and the row for the sheet appear below, exactly as Telegram and Google Sheets would receive them.
Message in the staff Telegram bot
The buttons under the message work: press one and the status changes in the message and in the sheet row. In the real setup n8n changes it.
Row in the orders sheet
| Created | Order | Name | Contact | Items | Total | Date | Status |
|---|---|---|---|---|---|---|---|
What the calculator sends to the n8n webhook
- What it counts
- Area and bathrooms, type and urgency as factors
- Staff bot
- Order with Accept, Ask and Decline buttons
- Sheet
- One row per order, status set by a button
- Stack
- Astro, JavaScript, n8n, Telegram, Google Sheets
-
How it works: the calculator sends the order to an n8n webhook, n8n checks the total against the price lines, posts a message with buttons to the staff Telegram bot and appends a row to Google Sheets. A pressed button changes the status in that same row.
What it counts. Area and bathrooms make the base. Cleaning type, frequency and urgency carry no price of their own; they multiply the base by a factor, so a deep clean of a large flat costs proportionally more rather than the same flat surcharge. Extras add a fixed amount. The lines under the total show how it adds up, and the same breakdown goes to n8n.
How it works. On “Place order” the calculator sends the order contents, the price lines, the total and the contacts to an n8n webhook. n8n recalculates the total from the lines and flags the order if it does not match, assigns a number and posts a message to the staff chat with Accept, Ask and Decline buttons. A row is then appended to Google Sheets. Whoever on the crew presses the button takes the order: the status changes in the message, where the others see it, and in the sheet row.
Download. The n8n workflow for this chain imports through Import from File. The Telegram and Google credentials are connected after the import. The last node can be swapped from Google Sheets to HubSpot, Pipedrive or Airtable.
This is a demo. The company, the price list and the orders are made up; the calculator was built for this portfolio. Nothing is sent: the message and the row are shown as the bot and the sheet would receive them.
How I work. You send the price list and the options; I build the calculator and the chain on your n8n, Telegram and Google accounts, show it on test orders and hand it over with a short guide. Communication in writing.