Build an n8n Content Repurposing Workflow (One Source, Five Channels)
Build an n8n content repurposing automation that turns one source into five channel-specific posts with a Switch fan-out, per-channel prompts, and a Sheets log.
A single good blog post can become a LinkedIn post, a tweet thread, a newsletter blurb, an Instagram caption, and a YouTube description. Most teams know this and still don't do it, because doing it by hand five times is tedious and copy-pasting one AI mega-prompt across all five produces mush. An n8n content repurposing automation solves it the right way: one source in, a fan-out to five branches, a focused prompt per channel.
The pattern that makes this work is the Switch node fan-out, and the mistake that kills it is asking one OpenAI call to write all five formats at once. A tweet and a LinkedIn post want different lengths, hooks, and rhythms. Cram them into one prompt and you get five variations of the same flat paragraph.
This walks the build: take a source, fan it out, prompt each channel separately, parse, post, and log what went where.
What you can repurpose from one source
The source can be a blog URL, a transcript, a Google Doc, or a row in a sheet. From there:
- A LinkedIn post with a hook and a takeaway
- A short tweet or an X thread
- A newsletter section with a subject line
- An Instagram or Threads caption with hashtags
- A YouTube description with timestamps
- A short-form video script outline
- A Sheets log row recording which channels actually shipped
Pick the three or four channels you actually publish to. A workflow that generates content for accounts you don't post on is just spending tokens.
The repurposing pipeline
Source Trigger → Normalize → Switch fan-out
→ [per-channel OpenAI prompt → parse] → Post → Log to Sheet
One source comes in. A Switch or Code node fans it into one item per channel. Each branch gets its own prompt. Each parses its own output. Each logs what it posted.
1. Collect and normalize the source
Whatever the input, normalize it into a single object first: title, body, url, key_points. A blog post, a transcript, and a Doc all reduce to those fields. Doing this once up front means every downstream branch reads the same shape, so adding a sixth channel later doesn't mean rewiring the source step.
2. Fan out with a Switch (or Code) node
This is the heart of it. A Switch node with one output per channel, or a Code node that emits one item per channel, turns your single source into N parallel items. Each carries the normalized source plus a channel tag.
Why fan out instead of looping one prompt? Because each channel's prompt lives on its own branch, so you tune the LinkedIn instruction without touching the tweet instruction. One mega-prompt couples them, and every edit risks the others.
The instinct is to ask a single OpenAI call for "a LinkedIn post, a tweet, and a caption." It works in a demo and disappoints in production: the model averages the formats and every output reads the same. Fan out with a Switch node so each channel gets a focused prompt with its own length cap, tone, and structure. A tweet prompt asks for under 270 characters and one idea. A LinkedIn prompt asks for a hook, three short lines, and a question. Separate prompts, separate quality.
3. Prompt each channel, then parse
Each branch runs its own OpenAI node with a channel-specific prompt. Then, on each branch, a Code node parses the response before it reaches the posting step.
Same warning as every AI content workflow: the model returns text, the post node expects fields. The parse step isn't optional just because there are now five of them. If anything, the repurposing case makes a missing parse worse, because one broken branch can ship five malformed posts at once.
4. Post to each channel
Route each parsed branch to its publish node. The native Twitter/X node, an HTTP Request to LinkedIn or Buffer, a Mailchimp node for the newsletter. The Social Media Scheduler & Designer handles the caption-plus-graphic side per platform, generating both the text and a DALL-E image for the channels that need one.
5. Log what actually shipped
Append one row per channel to a Google Sheet: source URL, channel, the posted text, status, timestamp. This is your audit trail. When someone asks "did the launch post go to LinkedIn?" the sheet answers in a second, and a failed branch shows up as a missing row instead of a mystery.
Implementation patterns worth copying
Pattern: parallel branches vs sequential loop
Fanning out with a Switch runs the channels in parallel, which is faster but harder to rate-limit. Looping one item at a time is slower but lets you throttle a strict API. For most repurposing volumes, parallel is fine; switch to a loop only when a platform starts returning 429s.
Pattern: channel config in a sheet
Keep the per-channel prompt instructions and length caps in a Google Sheet, not hardcoded. Then marketing can tweak the LinkedIn tone without opening n8n. The Content Scheduler & Distributor uses this sheet-driven config so the routing logic stays stable while the copy rules change.
Pattern: skip channels conditionally
Not every source belongs everywhere. Add a Filter on each branch so a technical deep-dive skips Instagram while a launch announcement hits all five. The source's own tags drive the routing.
n8n nodes you'll use most
| Node | Purpose |
|---|---|
| HTTP Request / RSS | Pulls the source content in |
| Code | Normalizes the source and fans it out |
| Switch | Routes one item per channel branch |
| OpenAI | Writes the channel-specific variant |
| Google Sheets | Holds channel config and the shipped log |
| HTTP Request / platform nodes | Publishes each channel |
Getting started
- Pick the three or four channels you genuinely publish to.
- Build the normalize step so any source reduces to
title,body,url,key_points. - Add a Switch node with one output per channel.
- Give each branch its own OpenAI prompt with a length cap and a tone note.
- Add a Code parse node on every branch, before the post step.
- Wire each branch to its publish node and run one source end-to-end.
- Append a log row per channel so you can see exactly what shipped where.
The Social Media Scheduler & Designer ships this end-to-end: give it a topic and a platform, it generates a channel-specific caption with hashtags via OpenAI, creates a matching graphic with DALL-E, and emails the ready-to-post content. It's the per-channel branch of the fan-out, built. It's part of The Complete n8n Templates Bundle, a one-time lifetime license to the whole catalog plus future templates, which pays for itself once you run more than one content automation.
For more on the upstream side, automate content creation with n8n covers turning a single brief into a content calendar, and n8n content distribution automation details the routing logic when one source feeds many channels. When you want the full distribution layer, the Content Scheduler & Distributor reads the queue and handles per-channel formatting from a sheet.
Compare repurposing templates →Common questions
How do I repurpose one piece of content into many with n8n?
Why use a Switch node instead of one big AI prompt for all channels?
Do I need to parse the AI output before posting repurposed content?
Get the workflow templates this guide is built on
Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.
Get 3 tested n8n templates, free
The full customer package for three real catalog templates — workflow JSON, step-by-step setup guide, credential checklist. Test-run on a live n8n instance like everything we sell. Plus new templates and automation guides in your inbox. No spam, unsubscribe anytime.
- 01Smart To-Do List ManagerPre-built n8n workflow template that automates productivity with OpenAI. Live in about 10 minutes.$14
- 02Email Follow-Up AutomatorPre-built n8n workflow template that automates crm with OpenAI. Live in about 15 minutes.$12
- 03Market Trend AnalyzerPre-built n8n workflow template that automates data processing with OpenAI. Live in about 10 minutes.$14
More automation guides

How to Automate Blog Content Generation with n8n and AI
The internet has enough auto-published AI slop. The workflows behind most of it look identical: a topic goes into OpenAI, the raw response goes straight into a WordPress node, and whatever the model r…

How to Automate RSS to Social Media with n8n (No Paid Relay)
Most RSS-to-social tutorials end the same way: they wire your feed into a paid relay like PostPulse, GetLate, or Blotato, charge a monthly fee on top of whatever you already pay OpenAI, and call it au…

n8n Social Media Scheduling From a Content Queue in Google Sheets
The social scheduling demos all look the same: connect Buffer, send a post, done. They skip the part that makes scheduling actually useful. That's a content queue you fill once and a workflow that pic…