Turns one piece of long-form work into platform-native posts, and gates its own output against brand-voice rules enforced in code rather than asked for in a prompt. If a draft breaks a rule, it does not ship. Prompts drift; a linter does not.
The film
Try it
A browser-side simulation of the routing logic — pick an input and watch which rule fires. The logged runs below are the receipts.
Simulation — same rules, sample inputs
Pick a sample. The inputs are fictional; the routing rules are the ones the live agent enforces in code, and the live agent averages 7.08s per run.
The voice gate — a banned-word list in a prompt is a request; in code it's a gate
A LinkedIn post must land between 90 and 230 words
The carousel must have exactly five slides
Anything flagged routes to Flag for Rewrite — the draft is still saved either way
Logged runs
Each replay below animates a logged n8n execution at the speed it actually ran — the decision path, the output, and the latency come straight from the execution log. Nothing staged.
Replay of logged execution #32 — 6.91s actual
Source
Built a review-reply agent that refuses to post
Angle
counterintuitive claim
n8n execution log0.00s…
Decision · Send Drafts
Spoken version keeps the refusal as the lead and emphasizes speed and zero cost as proof of efficiency.
LinkedIn post
Built an n8n + Claude agent that reads customer reviews and refuses to post most of them.
It classifies sentiment, decides what needs human eyes, drafts replies. Three live runs averaged 3.48 seconds. A 5-star got queued for one-tap approval. A 2-star alleging food poisoning went straight to escalation. A 1-star about a child's rash? The model declined to draft anything at all—then explained why in the output instead of leaving a blank.
The refusal rules live in code, not prompts. Unparseable output escalates rather than guesses.
Zero cost beyond tokens. Self-hosted n8n, database, Telegram alerts.
Carousel outline
This AI agent's job is to refuse. — It reads reviews. It classifies them. It drafts replies. It almost never posts.
5-star review: queued for approval. — 2-star with food poisoning claim: escalated immediately. 1-star about a rash: declined to reply at all.
Speed: 3.48 seconds average. — Sentiment + topic classification + routing decision + draft, all in under 4 seconds per review.
Refusal is coded, not prompted. — Escalation rules live in n8n logic. Unparseable model output escalates instead of guessing.
Cost: tokens only. — Self-hosted n8n, database, Telegram alerts. No subscription fees. No guard rails you don't control.
Video script
I built a review agent that almost never posts anything. It reads incoming reviews, classifies sentiment, and decides what a human needs to see. Most replies get drafted and queued for approval. But a review alleging food poisoning? Escalated. A review about a child's rash? The model refused to draft a reply at all—then explained why. The whole thing runs in 3.48 seconds. Cost is zero beyond tokens.