Routine support questions answered from policy, everything else escalated
Most support messages are the same handful of questions about shipping, returns, and payment. This assistant answers those from the store's own policies and hands anything account-specific straight to a person.
- Trigger
- A customer sends a message in chat
- Run mode
- Answers from store policy only, escalates anything it can't source
- Built with
- n8n · Gemini · Google Sheets · Gmail
- Connected to
- Gmail · Google Sheets
01 / Problem
What the manual version cost
Before the system existed, this all ran on someone's attention.
- 01
The same questions about shipping windows, returns, and payment methods arrive every day and get answered by hand every time.
- 02
Answers vary depending on who replies, so two customers can be told different things about the same policy.
- 03
Genuine problems — a specific order, a refund dispute — sit in the same queue as the routine questions and wait behind them.
- 04
There's no record of what was asked, so nobody can see which questions are worth fixing at the source.
02 / Solution
What we built instead
Each decision below is a deliberate one — the interesting part is usually where the system refuses to guess.
- 01
The store's shipping, returns, and payment policies are supplied to the model as its only source of truth.
- 02
The assistant returns a structured response rather than loose text — the reply, an escalation flag, and the reason behind it.
- 03
That flag drives the routing in code, so escalation is a branch in the workflow rather than a judgement the model narrates.
- 04
Anything order-specific, any refund request, and anything not covered by policy is escalated with the customer's message and the reason attached.
- 05
Off-topic questions are declined politely rather than escalated, so the human queue stays limited to real support work.
- 06
Conversation memory is scoped to the session, so a follow-up question keeps its context without leaking between customers.
- 07
Every exchange is appended to a log — question, reply, whether it escalated, and why.
Message to answer or escalation
The customer always gets a reply. The branch decides whether a person is brought in behind it.
- Trigger
Customer message
Chat
- AI
Answer from store policy
Gemini
- Action
Reply to customer
Chat
- Logic
Outside policy?
- escalateAction
Escalate to support
Gmail
- Action
Log the exchange
Google Sheets
03 / Result
What the system guarantees
Not projections. These hold because of how the system is built.
Policy answers are identical every time, because they come from one source rather than from whoever is on shift.
The assistant can't invent a policy it wasn't given — anything outside its knowledge is routed to a person instead of guessed at.
Escalations arrive with the original message and the reason already attached, so the person picking it up doesn't start by asking what happened.
Off-topic messages never reach the queue, so an escalation genuinely means something needs a human.
The log makes recurring questions visible, which is what tells you a policy page needs rewriting rather than more staffing.
Next case study
Every enquiry scored, filed, and answered before it goes cold
Lead capture & follow-up