The workflow running on n8n. guard decides; escalate? routes anything a person must see away from the reply queue entirely.Execution 115, fired 10 August. A five star review praising the team by name. Sentiment positive, themes read correctly, and it still went to the escalation queue rather than the reply queue, because it names a technician. Follow the green line: the auto-reply branch below it never lit.
interactive · click and scroll itlive
Four real reviews fired at the live webhook, including a five star review that still escalates because it names a technician.
5 starsand it still never gets an automatic public reply, because the review names an employee.
0 postedposting is not wired to anything. Every reply waits on a signed approval link.
2 passesthe guard screens the review before the model and re-checks the drafted reply after it.
3 or belowthe rating floor. Under it, the reply queue is skipped entirely, whatever the model thinks.
What it solves
Review replies are public and permanent. A reply that admits fault, promises a refund, or names an employee in a dispute creates legal exposure a marketing team cannot take back, and sentiment scores do not catch those cases. The guard here is a code check with a one-way rule: the model can raise an escalation, never lower one.
Who it serves
MSPs and multi-location businesses answering reviews on Google and G2.
Who it is for
The marketing owner who wants drafting handled without inheriting the risk.
How it works
A review arrivesA webhook catches it and normalizes platform, rating, branch, and text.
Claude reads and draftsSentiment, themes, and a reply in the brand voice, held to a word cap and a banned-phrase list.
The guard decides, in codeRating at or below three, any mention of legal action, money, or a breach, or any review naming a staff member forces escalation. The model can raise an escalation, never lower one.
The reply is checked tooA draft that admits fault, promises money, guarantees anything, or invents a contact detail is sent back for revision rather than queued.
A person approvesEvery surviving reply waits on a signed approval link. The workflow has no ability to post.
Everything logsRating, sentiment, whether it escalated and why, the action taken, and who approved it land in a ledger.
What I would change if I rebuilt it today
The guard caught its own contact-allowlist bug on the first live run, a phone-number shape match that broke a literal comparison, and that is now a regression test. Next I would add an outcome loop: track which approved replies correlate with rating changes, because a reply engine with no outcome data is half a system.
Built with
n8nClaude (Sonnet)deterministic guarddata-table ledgerbuilt via MCP