# Build an AI content pipeline in n8n with human review

> Build an n8n content pipeline: brief to outline to draft with AI, claim checks, Google Docs output and Slack approval before anything is published.

Source: https://mentionx.ai/learn/n8n/n8n-ai-content-pipeline  
Author: Dipuck Jones, founder of MentionX  
Updated: 4 November 2026  
Level: Practitioner

**An n8n content pipeline turns an approved brief into an outline and a first draft, lists every factual claim for checking, and waits for an editor's approval in Slack. AI speeds up the first 60% of the work; people keep the judgement and the publish button.**

> **Key takeaways**
>
> - Start from a structured brief with approved proof points.
> - Generate outline and draft as separate steps for better control.
> - Extract every factual claim so editors can check them fast.
> - Keep approval and publishing with a person.

*Checked 4 November 2026 (CET) against n8n documentation and the n8n pricing page. n8n ships updates often and node options, plan limits and prices change, so confirm in your own instance and on the pricing page. "Our view" marks MentionX opinion. Ledgerline is a fictional company used for illustration.*

## Why build a pipeline instead of chatting?

Chatting with Claude or ChatGPT works for one piece. A pipeline helps when you produce content every week:

- **Consistency.** Every draft uses the same brief fields, style rules and checks.
- **Traceability.** The brief, outline, draft and approval are linked in one execution.
- **Throughput.** Drafts are ready when the editor starts work.
- **Guardrails.** Claim checks and approvals run every time, not when someone remembers.

## The pipeline at a glance

```text
Brief approved -> Outline (JSON) -> Draft -> Claim check -> Google Doc
  -> Slack approval -> status update (and CMS draft, later)
```

Separate steps beat one giant prompt. When the outline is wrong, you fix the outline prompt. When the voice is wrong, you fix the draft prompt. You can also use a cheaper model for the claim check and a stronger one for drafting.

## Writing the prompts

**Outline prompt:** give it the brief and ask for H2s phrased as the questions buyers ask, with two to three notes under each. Ask for JSON.

**Draft prompt:** give it the brief, the outline and your style rules (sentence length, banned words, UK or US spelling, reading level). Say: "Use only facts from PROOF. Where a fact is needed and not provided, write [NEEDS SOURCE]."

**Claim check prompt:** "List every factual claim in this draft. For each, say which PROOF item supports it, or 'none'." The output goes into the approval message.

Keep style rules in one place, such as a Set node at the top of the workflow or a data table row, so you update them once.

## Human review options

You have two built-in patterns:

1. **Slack Send and Wait for Response** (lesson 5) for a simple approve/decline on the whole draft.
2. **Human-in-the-loop for tools** (lesson 9) if an agent is doing the work and you want approval before specific tools run, such as "create CMS draft".

The n8n docs also describe setting a human fallback for AI workflows, which routes to a person when the AI can't complete a task.

*Our view:* the claim list is the most valuable part of this pipeline. It turns fact-checking from rereading the whole piece into checking a short list.

> **Pro move:** feed editor changes back in. Once a month, compare five AI drafts with the published versions and update the style rules with the patterns you keep fixing.

## The brief template that makes drafts better

Store this as columns in your brief sheet or data table. The AI step reads every column.

| Field | Example |
|---|---|
| working_title | How to cut invoice approval time |
| audience | Finance managers at mid-size companies |
| search_intent | Learn how to speed up approvals |
| buyer_questions | 3 to 5 questions people actually ask |
| key_points | What we want to say, in bullets |
| proof | Approved stats, customer quotes, links (only verified) |
| cta | Book a demo |
| banned_claims | Anything legal has ruled out |
| length | Target words |

The "proof" field matters most. Tell the model to use only facts from it, and to mark any gap with [NEEDS SOURCE] instead of inventing one.

## Where AI helps and where it doesn't

| Stage | AI's role |
|---|---|
| Research questions buyers ask | Helpful, with checking |
| Outline from brief | Very helpful |
| First draft | Helpful for structure; voice needs editing |
| Facts, stats, quotes | Only from the brief's proof field |
| Final edit and approval | Human |
| Publishing | Human or a workflow after approval |

## Publishing after approval

If your CMS has an n8n node or an API, the approved branch can create a draft post in the CMS rather than publishing live. Keep the final "publish" click with a person until you trust the pipeline. The Claude track's [brief-to-draft workflow](https://mentionx.ai/learn/claude/claude-brief-to-draft-workflow) covers the writing side in depth.

## Style rules worth writing down

A style block the draft step reads every time:

- Audience and reading level.
- UK or US spelling.
- Sentence and paragraph length limits.
- Words and phrases to avoid, including overused AI phrasing your editors dislike.
- How to cite sources and link internally.
- How to handle product names and trademarks.
- What never to claim (pricing promises, guarantees, competitor statements).

## Measuring the pipeline

Measure honestly before scaling:

| Measure | How |
|---|---|
| Edit time per draft | Editor logs minutes |
| Unsupported claims caught | Count from the claims list |
| Drafts rejected | Approval outcomes in Slack |
| Published performance | Compare with similar hand-written pieces after 90 days |

If edit time isn't lower than writing from scratch, fix the brief and prompts before producing more.

## The outline step as a node config

The outline step is a Basic LLM Chain with **Require Specific Output Format** on and a Structured Output Parser attached. A JSON example for the parser:

```json
{
  "h2s": [
    { "heading": "What is invoice approval?", "notes": ["define", "who is involved"] }
  ],
  "faq": ["How long should approval take?"]
}
```

Because a JSON example makes every field required, the model must always return both `h2s` and `faq`. The prompt field reads the brief from the current item, for example `{{ $json.working_title }}` and `{{ $json.key_points }}`, so each brief gets its own outline.

## Troubleshooting the pipeline

| Symptom | Cause | Fix |
|---|---|---|
| Every draft has the same topic | Brief fields set inside a sub-node | Move per-item expressions to the root node prompt |
| Parser error on output | Model added prose around JSON | Lower temperature; enable auto-fixing if available |
| Draft ignores style rules | Rules buried at the end of a long prompt | Put rules first, keep them short |
| Slack approval never arrives | Interactivity not set up | Check the waiting webhook URL from lesson 5 |
| Docs created in the wrong folder | Folder ID not set | Set the Drive folder in the Google Docs node |

## Worked example: Ledgerline's glossary pages

*Ledgerline is a fictional accounts-payable software company. Details are illustrative.*

Ledgerline wanted 40 glossary pages on accounts-payable terms. Each needed a definition, an example and a link to a product page.

They put 40 briefs in a sheet, each with approved proof (their own help-centre content). The pipeline produced drafts in batches of five a day so the editor wasn't flooded. The claim list caught a recurring problem: the model kept adding typical approval-time statistics that weren't in the proof. The draft prompt was tightened, and those claims became [NEEDS SOURCE] markers.

Editors still rewrote intros for voice. The team kept the pipeline because outlines and examples needed little change.

### Walkthrough

1. Create a brief sheet or data table with the fields above and a `status` column.
2. Trigger: Schedule Trigger every weekday morning, then Get Row(s) where status = `brief_approved`. Or a Form Trigger for new briefs.
3. **Basic LLM Chain** with a strong model to create an outline as JSON (H2s with notes). Structured Output Parser attached.
4. **Basic LLM Chain** to write the draft from brief plus outline, in your house style, using only proof facts.
5. **Information Extractor** or a second short chain to list every factual claim in the draft with the proof item it came from, or "none".
6. **Google Docs** node to create a doc with the draft and the claims list.
7. **Slack** Send and Wait for Response to the editor, with the doc link and claims list.
8. Approved: update status to `in_edit`. Declined: status `rework` with the reviewer's comment.

## Try it yourself

Run one real brief through the pipeline. Have the editor time how long the edit takes compared with writing from scratch, and count claims marked "none". Adjust the prompt until no unsupported claims appear, then decide whether the pipeline saves enough time to keep.

## Quick quiz

**1. Why list factual claims separately?**

*Answer:* So the editor can check every claim against an approved source quickly.

**2. Should the pipeline publish directly?**

*Answer:* Not at first. Create a CMS draft and keep publishing with a person.

**3. What should the model do when the brief lacks a fact?**

*Answer:* Mark it [NEEDS SOURCE] rather than inventing it.

## What should you check before the next lesson?

- Briefs include approved proof.
- Drafts list every claim for checking.
- A person approves before anything reaches the CMS.

Next: [Content repurposing and social drafts](https://mentionx.ai/learn/n8n/n8n-content-repurposing-social). Or return to the [n8n for Marketers track](https://mentionx.ai/learn/n8n/n8n-for-marketers).

## Common questions

**Will AI drafts hurt SEO?** Unhelpful content is the risk, not AI itself. Editing, expertise and original proof matter most.

**Which model is best for drafts?** Test two on the same brief. Stronger models usually need less editing.

**Can the pipeline handle translations?** Yes, as another chain step, with a native speaker reviewing.

## Sources

- n8n Docs, [Structured Output Parser](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured)
- n8n Docs, [Slack approvals](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/approvals)
- n8n Docs, [Human-in-the-loop for tools](https://docs.n8n.io/build/integrate-ai/ai-examples/human-in-the-loop-for-tools)
- n8n Docs, [Set a human fallback for AI workflows](https://docs.n8n.io/build/integrate-ai/ai-examples/set-a-human-fallback-for-ai-workflows)
- n8n Docs, [Google Docs node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs)
- All accessed 4 Nov 2026.

## Frequently asked questions

### Will AI drafts hurt SEO?

Unhelpful content is the risk, not AI itself. Editing, expertise and original proof matter most.

### Which model is best for drafts?

Test two on the same brief. Stronger models usually need less editing.

### Can the pipeline handle translations?

Yes, as another chain step, with a native speaker reviewing.

---

Written and reviewed by Dipuck Jones for MentionX Learn. The HTML version of this page: https://mentionx.ai/learn/n8n/n8n-ai-content-pipeline
