Send AI-parsed restaurant orders and status updates via Telegram and Google Sheets
๐ AI-Powered Restaurant Order & Notification System A Complete n8n Workflow for Automated Ordering and Customer Updates
This professional n8n workflow provides an end-to-end solution for small restaurants. It includes a Telegram Customer Bot for placing orders and an Automated Notification System that updates customers via Google Sheets.
๐ Description
This system eliminates the need for manual order taking and status updates. It features:
AI Order Bot: Customers chat with a Telegram bot to view the menu and place orders. An AI agent (Claude Haiku) parses natural language (e.g., "2 pizza + 1 coke") into structured data. Order Management: Orders are saved automatically to Google Sheets for staff to manage. Real-Time Notifications: As staff change the status in the sheet (e.g., to Preparing or Ready), n8n instantly notifies the customer via Telegram.
Key Bot Commands
| Command | Description | | :--- | :--- | | /start | Welcome message and instructions | | /menu | View today's food and drink offerings | | /help | See all available commands | | STATUS [Queue #] | Check the live status of an order | | CANCEL [Queue #] | Cancel an order (only if Pending) | | /myorders | View your last 5 orders |
๐ Setup Requirements
- Google Sheets Configuration
Your spreadsheet acts as your Admin Dashboard. Ensure Row 1 has these exact headers in order:
| Column | Header Name | Description | | :---: | :--- | :--- | | A | Queue Number | Auto-generated by the bot (e.g., #4582) | | B | Chat ID | Customer's Telegram ID โ captured automatically | | C | Name | Customer's first name | | D | Order | Items ordered โ parsed and cleaned by AI | | E | Status | Dropdown: Pending, Preparing, Ready, Completed, Cancelled | | F | Order Time | Timestamp of when the order was placed | | G | Order Date | Date of the order | | H | Last Status Sent | Internal: Tracks last notification sent to prevent duplicates |
> โ ๏ธ Important: Set up a Data Validation dropdown on column E with the values: Pending, Preparing, Ready, Completed, Cancelled. This is how staff update order status.
> โ ๏ธ Important: In the Read All Rows node, go to Options โ Output Row Number and ensure it is enabled. The workflow uses row_number to write back to the correct cell.
- n8n Credential Configuration
You need 3 credentials set up in n8n before activating:
| Credential Type | Where Used | Notes | | :--- | :--- | :--- | | Anthropic API | Claude Haiku node | Required for AI order parsing | | Google Sheets OAuth2 API | All Google Sheets nodes | Connect your Google account | | Telegram Bot API | All Telegram nodes | Use your bot token from @BotFather |
Steps: Go to n8n โ Settings โ Credentials โ Add Credential Add each credential type above After importing the workflow, open each node and select the correct credential
- Workflow Import Steps
Copy the workflow JSON In n8n, click + โ Import from JSON โ Paste and confirm Connect all credentials in each node Ensure Output Row Number is enabled in Read All Rows node options Pre-fill column H (Last Status Sent) with the current Status for all existing rows to prevent old rows from firing notifications on first run Turn the workflow Active
๐ How It Works
Phase 1: The Customer Bot (Workflow 1)
Customer texts bot โ Route Message โ detects command type โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ /start โ Welcome message โ โ /help โ Help guide โ โ /menu โ Today's menu โ โ /myorders โ Last 5 orders โ โ STATUS โ Live order status โ โ CANCEL โ Cancel if Pending only โ โ [order] โ AI parses โ saves โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Order saved to Google Sheet (Status = Pending) Customer receives queue number + wait time
Phase 2: The Staff Notification System (Workflow 2)
Every 1 minute โ Schedule Trigger fires โ Read ALL rows from Google Sheet โ For EACH row independently (runOnceForEachItem): Skip if no Queue Number or Chat ID Skip if Status = Pending Skip if Status = Last Status Sent (already notified) โ Send notification if Status changed โ Send Telegram message to that customer only โ Write new Status into column H (Last Status Sent) โ Prevents duplicate notification next minute
Status Flow & Customer Messages
| Staff sets Status to | Customer receives | | :--- | :--- | | Preparing | ๐จโ๐ณ "Your order is being Prepared! We'll notify you when it's ready." | | Ready | ๐ "Your order is READY for collection! Please collect from the counter." | | Completed | โ "Order marked as Completed. Thank you for dining with us!" | | Cancelled | โ "Your order has been Cancelled. We apologise for the inconvenience." |
๐ Order Cancellation Rules
Customers can only cancel orders in Pending status. All other states are protected:
| Current Status | Customer tries CANCEL | Response | | :--- | :--- | :--- | | Pending | CANCEL 1234 | โ Cancelled successfully | | Preparing | CANCEL 1234 | โ ๏ธ Cannot cancel โ being prepared | | Ready | CANCEL 1234 | โ ๏ธ Already ready โ please collect | | Completed | CANCEL 1234 | โ ๏ธ Already completed | | Cancelled | CANCEL 1234 | โ ๏ธ Already cancelled | | Someone else's order | CANCEL 1234 | โ You can only cancel your own orders |
๐ฆ Required Credentials Summary
| Credential | Provider | Free Tier | | :--- | :--- | :--- | | Anthropic API | anthropic.com | Paid โ ~$5 minimum deposit | | Google Sheets OAuth2 API | Google Cloud Console | Free | | Google Sheets Trigger OAuth2 API | Google Cloud Console | Free | | Telegram Bot API | @BotFather on Telegram | Free forever |
๐งช Test Scenarios
Run these in order to verify the full system:
/start โ Should receive welcome message /menu โ Should see the menu with prices Type 2 pizza + 1 coke โ Should get queue number STATUS [queue] โ Should show โณ Pending In sheet: change Status to Preparing โ Within 1 min, customer gets ๐จโ๐ณ message In sheet: change Status to Ready โ Customer gets ๐ message STATUS [queue] โ Should now show ๐ Ready CANCEL [queue] โ Should say "already ready, please collect" In sheet: change Status to Completed โ Customer gets โ message /myorders โ Should show order history with final status
โ ๏ธ Known Limitations
Notification delay:** Up to 1 minute between staff updating the sheet and customer receiving the message (due to polling interval) Column H required:** The Last Status Sent column must exist in your sheet. Without it, every row will fire a notification on every poll Anthropic API cost:** Claude Haiku is not free โ very low cost (~$0.25 per million tokens) but requires a funded account Google Sheets trigger limitation:** The Google Sheets Trigger cannot detect which specific row changed, which is why a Schedule Trigger with row comparison is used instead
๐ File Structure
restaurant_WITH_STICKIES.json โ Complete workflow (W1 + W2) with sticky notes restaurant_workflow_docs.md โ This documentation file
Built with n8n โข Claude Haiku AI โข Google Sheets โข Telegram Bot API
Related Templates
AI Email Classifier & Auto-Delete for Gmail (SPAM/OFFER Cleaner)
This workflow is designed for freelancers, solopreneurs, and business owners who receive a high volume of irrelevant mes...
Generate Product Ad Copy & CTAs with GPT-4 for Slack and Airtable
โก AI Copywriter Pro: Instant Ad Copy & CTA Generator Transform product details into compelling marketing copy in second...
Auto-classify Gmail emails with AI and apply labels for inbox organization
Who is this for? Professionals and individuals who receive high volumes of emails, those who want to automatically organ...
๐ Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments