Customer conversations
Turn an enquiry into a quote without retyping it
The enquiry already contains the order: the product, the quantity, where it has to go. Somebody then reads it and types the same facts into a second system. The machine's job here is reading, not deciding — it extracts the fields, and the price comes from your price list. A quote whose figure was written by a language model is not a quote.
- Triggers
- Two
- Runs
- On every enquiry
- Stack
- 5 tools
- Durable execution
- Not required
The flow
The top track turns a message into a draft. The bottom track prices it against a list that was refreshed on its own schedule, then checks whether anything is still missing.
An enquiry arrives
WhatsApp Cloud API
Extract the fields
OpenAI · Anthropic
Write the draft order
Sheets · Airtable
Nightly catalogue refresh
n8n 排程
Price the draft
n8n · Make
Everything needed present?
n8n IF
Send the quote to confirm
WhatsApp Cloud API
Ask a person to fill the gap
Slack · WhatsApp
Step by step
- 01
An enquiry arrives
WhatsApp Cloud APIThe webhook fires on the customer's message, and the 24-hour service window opens with it. Everything the flow sends back today is free text because of that; anything sent tomorrow is not.
- 02
Extract the fields
OpenAI · AnthropicPull product, quantity, delivery point and any deadline out of the wording. Extraction only — the model never prices, never totals, and never sends. It hands back fields and a note of what it could not find.
- 03
Write the draft order
Sheets · AirtableOne row per enquiry, with the original message kept beside the extracted fields. When a quote is later disputed, that pairing is the whole audit trail.
- 04
Nightly catalogue refresh
n8n 排程Prices and stock are pulled on their own schedule. A quote has to carry the price of the day it is sent, not whatever the workflow happened to cache last month.
- 05
Price the draft
n8n · MakeLook each line up in the refreshed list and total it in the workflow. This is arithmetic and it belongs in code — the one step in this flow that must never be delegated to a model.
- 06
Everything needed present?
n8n IFCheck the fields a quote cannot go out without: item, quantity, destination, and a price for every line. A blank in any of them is a stop, not a default.
- 07
Send the quote to confirm
WhatsApp Cloud APISend the priced quote with reply buttons — confirm, change something, talk to a person. The customer taps rather than restating an order they already described once.
- 08
Ask a person to fill the gap
Slack · WhatsAppRoute the draft to whoever handles that product, naming the missing field. An incomplete quote sent anyway is worse than a slow one.
What the platform will not allow
Two ceilings shape this: how much a confirmation message can hold, and how long you have before a reply stops being free.
Interactive reply buttons support "up to 3 buttons", each label capped at 20 characters, with a body of at most 1,024 characters. A quote confirmation therefore offers three choices and a short body — it is not a place to reproduce a full specification.
WhatsApp Cloud API — Interactive reply buttons messages"When a WhatsApp user messages you or calls you, a 24-hour timer called a customer service window starts", and while it is open you may send any service message. A quote priced and returned the same day needs no approval at all.
WhatsApp Cloud API — Send messages"When the window closes, you can only send pre-approved template messages." A quote that takes a day to price cannot come back as free text — the slow path needs its own template, drafted before the enquiry arrives.
WhatsApp Cloud API — Send messages"Templates must have a status of APPROVED before they can be sent in template messages", and each must be categorised as authentication, marketing or utility. The template for a late quote is a lead time you plan for, not something you write on the day.
WhatsApp Business Management API — Message templates
When this is not worth building
Three cases where the upkeep costs more than the retyping.
Your prices are a judgement rather than a lookup — negotiated per account, or freight quoted per shipment. The flow will still produce a number, and a number in the shape of a quote is read as one.
There is no price list a machine can read. If pricing lives in a folder of PDFs or in one person's head, extraction succeeds and pricing fails, which is the half that mattered.
You handle a few large enquiries rather than many small ones. When a single order is worth a great deal, the cost is not the retyping — it is getting a line wrong, and a draft nobody rechecks makes that likelier, not rarer.