An order list should be as easy as a text message.
Phone-in orders are slow and easy to misread. This demo shows how a plain-English order flows through to a confirmed basket, with branches for substitutions, minimum-not-met and abandoned.
What triggers this workflow
WhatsApp, SMS or web chat opens a new conversation with the order bot.
Source: WhatsApp / SMS / web chat
Workflow steps
- n8n + LLM stepIntakeCustomer drops a plain-English list; the bot parses line by line.
- n8nConfirmBot replies with basket, slot and subtotal; customer replies YES / EDIT / CANCEL.
- n8nSubstitutionIf an item is out of stock, ask before swapping or skipping.
- n8nMinimumIf subtotal is below the delivery minimum, offer click-and-collect or top-up.
- Twenty CRM + ChatwootHandoffPicking instructions route to the fulfilment team with the final basket.
Tools used
Human handoff
A picker always confirms the basket
The bot never starts fulfilment until the customer replies YES. Substitutions are explicit questions, never silent swaps.
- Customer asks for an item the bot doesn't recognise
- Customer requests a non-stocked special
- Order is for a business account with agreed terms
Try it in your browser
Edit the sample inputs, choose a branch, and see what the workflow produces. The sandbox runs offline — no accounts touched, no messages sent.
Try it in your browser
Edit the inputs, pick a branch, and see what the workflow produces. Runs entirely in your browser — no messages are sent, no accounts are touched.
1. Conversational order intake
Hi Hannah, Cobblestone Grocer here. Drop your list in plain English and I'll confirm the basket and slot. — Tom, Cobblestone
2. Branch handling
Got it: milk, sourdough, free-range eggs. Delivery slot Today 4–6pm. Subtotal ~$28.40. Reply YES to lock in, EDIT to change, CANCEL to drop. — Cobblestone Grocer
Sample data only. Numbers, names and messages are placeholders for illustration. Wire the live workflow separately using the setup notes below.
Setup for production
Wiring it for production
Live deployment needs the conversation channel, stock lookup and picker integration.
- Connect the conversation channel — WhatsApp Business or SMS — with an approved sender.
- Configure the stock lookup (spreadsheet, OMS or inventory API).
- Wire the picker integration so the basket lands in the fulfilment queue with substitution flags.
- Add a re-engagement branch (configurable window) for abandoned baskets.
Production prerequisites
- Approved WhatsApp Business or SMS sender in the business's region
- Real-time or near-real-time stock lookup
- Picker on shift during delivery windows
Nothing here runs by default. Configuration has to be in place before any live send, booking or contact write.
Questions
What if the bot mis-parses the list?
The confirm branch always shows the parsed basket before fulfilment. Customers can EDIT and resubmit; nothing starts until YES.
Can it handle dietary requirements?
Yes — a separate input on the chat captures dietary requirements at intake, and the substitution branch respects them by default.
More demos you can run in your browser
Want this conversational order taking workflow running on your stack?
Pick the demo you're curious about or describe your own. We'll come back with what a real deployment looks like for your business — the workflow, the prerequisites, the people involved.