Content pipeline automation for a digital marketing agency

- 4 h → 45 min
- Production time per asset
- 75% faster
- Draft-to-publish time
Owner-reported: these figures are reported by me, not independently audited. Client names are withheld.
The Challenge
An agency that writes for several clients had a production line held together by senior writers' time. Every article started with hours of research and drafting before anyone could work on what the agency is actually paid for: the strategy and the final polish.
The agency's senior writers spent 4+ hours per article on initial research and drafting. With a steady stream of topics across several client accounts, that time turned into delivery delays: the queue grew faster than the writers could clear it.
The tooling made it worse. Work moved between disconnected tools by hand: research in one place, drafts in Google Docs, optimisation in SurferSEO, then a manual upload to each client's site. Every hand-off was a chance for a copy-paste error, and posting schedules slipped whenever a writer was busy elsewhere.
There was a quieter problem too. Each client has its own brand voice, and keeping those voices distinct depended on whoever happened to write the piece.
Constraints
- Quality stays with people. The agency's value is editorial judgement. A system that published AI text without a human reading it was never an option.
- Many clients, many voices. The pipeline had to keep each client's tone and rules separate.
- Simple controls. Editors had to be able to drive the pipeline from a topic table and a chat notification, not from a new application they would have to learn.
The Solution
The agency did not need another chatbot. It needed a pipeline: something that does the repetitive part of every article the same way every time, and hands the result to a person at the point where judgement matters.
Architecture
The pipeline runs on n8n, with Airtable as the control panel and the OpenAI API for generation.
- Trigger. Each topic is a row in Airtable. When its status changes, an Airtable webhook starts the workflow. Editors control the pipeline by changing a status, not by learning a new tool.
- Research. The workflow runs a search-results analysis through Serper.dev to pull current keyword data for the topic, so the draft starts from what is ranking now rather than from the model's memory.
- Generation. The topic and the research go through a multi-shot GPT-4 chain that produces three things in order: an outline, a draft built on that outline, and the SEO metadata.
- Human in the loop. The workflow posts a Slack notification so an editor can review, edit and approve the draft. Nothing moves on without that approval.
- Publish and distribute. Once approved, the article is posted to WordPress automatically, and the workflow generates social snippets and queues them in Buffer.
Why these decisions
- Outline first, then draft. Splitting the chain lets each step do one job. A reviewer can see where a weak draft came from, and a bad outline can be fixed before it becomes a bad article.
- Approval in Slack, not in a new dashboard. The review step only works if editors actually do it, so it arrives as a message they can act on rather than a page they have to remember to check.
- Direct CMS publishing. Posting through WordPress's endpoints instead of copy-and-paste removed a whole class of formatting and copy errors.
What I built
- An n8n workflow from Airtable status change to published post, with the research, outline, draft and metadata steps chained in sequence.
- The SERP research step, so every draft starts with current keyword context.
- The Slack approval step that holds every draft until an editor signs it off.
- WordPress publishing and Buffer scheduling for the approved piece and its social snippets.
Results
Owner-reported results after rollout:
- Production time per asset: 4 hours → about 45 minutes.
- Draft-to-publish time 75% faster.
- Content output grew without new hires. The same team now clears more of the topic queue.
- Copy-paste errors removed from publishing, because approved articles go straight to the CMS.
What the agency can do now that it couldn't before: spend its senior writers' time on strategy and final polish, and keep a regular posting schedule for every client without adding headcount.
Stack
- n8n: orchestrates the pipeline from trigger to publish.
- Airtable: the topic table and status field that start and track each article.
- Serper.dev: search-results data for the research step.
- OpenAI API (GPT-4): the multi-shot chain for outline, draft and SEO metadata.
- Slack: the human approval step.
- WordPress: direct publishing of approved articles.
- Buffer: scheduling the social snippets.
What I learned
- Automate the middle, not the ends. The research and first draft are repetitive; the brief and the final edit are where the agency adds value. The pipeline only took over the middle.
- A human gate makes AI output usable. Because every draft is reviewed before it goes anywhere, the team could trust the pipeline enough to use it on client work.
- Structure beats one big prompt. A chain with clear steps is easier to debug and improve than a single request that tries to do everything.
What I'd do next
Each client's voice rules could live as structured settings next to the topic, so the chain picks them up automatically and new client accounts start with their own tone from the first article.
Tell me about the process that's slowing your team down. I'll tell you honestly whether automation, Salesforce or an AI agent is the right fix.