Quick overview
For small service businesses: a two-page n8n form turns your Data Tables price list into an instant price estimate, emails it to the customer, saves it and alerts you on Telegram, so leads get a number in seconds instead of waiting for a reply.
How it works
- Page 1 of an n8n form collects name, email and phone.
- The active services are loaded from the price_list Data Table and page 2 is built from them, so the dropdown always shows your current services.
- The customer chooses a service, quantity, an optional express option and notes.
- The estimate is calculated: unit price × quantity, two volume discount tiers, express surcharge, per-service minimum charge, then VAT.
- The estimate gets a number (for example EST-20261018-4821) and is saved in the price_estimates Data Table.
- You get a Telegram alert, the customer gets the estimate by Gmail, and the full breakdown is shown on the last form page.
Setup
- Run the "Run once: create tables and sample prices" branch. It creates both tables and adds 4 sample services. Re-running it does not overwrite your prices.
- Replace the sample rows in price_list with your services, units, prices and minimum charges.
- In Settings, set business name, currency, VAT rate, discount tiers, express surcharge, validity days and Telegram chat ID.
- Add Telegram and Gmail credentials, activate the workflow and link the form from your website.
- Setup takes about 15 minutes.
Requirements
- An n8n instance with Data Tables and multi-page Forms; a Telegram bot and chat ID; a Gmail account (or any email node). A Gmail credential (one click on n8n Cloud; on self-hosted n8n it needs a Google Cloud OAuth client), or replace the Gmail node with Send Email (SMTP) or Outlook.
Customization
- Change tiers, surcharge and VAT in Settings; set active to false to hide a service.
- Replace Gmail with Outlook or SMTP and Telegram with Slack.
- Add fields such as address or preferred date on page 2, or turn accepted estimates into invoices or bookings.
Additional info
- Volume discount tiers are global (they use the quantity of any service). For per-service tiers, add tier columns to price_list and adjust the Calculate the estimate node.
- The result is an estimate; the final price is confirmed by you.
- If the email cannot be sent, the customer still sees the estimate and is told that you will get in touch.
- If the form is public, link it only from your own website or add a captcha: each submission sends an email from your Gmail account.