n8n workflow · 13 nodes · sentiment, drafted reply, forced escalation

MSP Review & Reputation Engine

Routine reviews get fast drafts. The ones that could hurt someone go to a person first.

status running · private n8nrole designed + built end to end
MSP Review & Reputation Engine: The workflow running on n8n. guard decides; escalate? routes anything a person m
The workflow running on n8n. guard decides; escalate? routes anything a person must see away from the reply queue entirely.
MSP Review & Reputation Engine: Execution 115, fired 10 August. A five star review praising the team by name. Se
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
  1. A review arrivesA webhook catches it and normalizes platform, rating, branch, and text.
  2. Claude reads and draftsSentiment, themes, and a reply in the brand voice, held to a word cap and a banned-phrase list.
  3. 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.
  4. 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.
  5. A person approvesEvery surviving reply waits on a signed approval link. The workflow has no ability to post.
  6. 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
n8n Claude (Sonnet) deterministic guard data-table ledger built via MCP