Skip to main content
Lifetime license included with every purchase
n8n workflowscontent repurposingAI contentsocial media

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.

Nn8n Marketplace Team·June 24, 2026·Updated June 24, 2026·7 min read

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.

Per-channel prompts beat one mega-prompt

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

NodePurpose
HTTP Request / RSSPulls the source content in
CodeNormalizes the source and fans it out
SwitchRoutes one item per channel branch
OpenAIWrites the channel-specific variant
Google SheetsHolds channel config and the shipped log
HTTP Request / platform nodesPublishes each channel

Getting started

  1. Pick the three or four channels you genuinely publish to.
  2. Build the normalize step so any source reduces to title, body, url, key_points.
  3. Add a Switch node with one output per channel.
  4. Give each branch its own OpenAI prompt with a length cap and a tone note.
  5. Add a Code parse node on every branch, before the post step.
  6. Wire each branch to its publish node and run one source end-to-end.
  7. Append a log row per channel so you can see exactly what shipped where.
Browse content automation templates
Skip the build

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.

Get the Social Media Scheduler & Designer

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
FAQ

Common questions

How do I repurpose one piece of content into many with n8n?
Take a single source (a blog post or transcript), then use a Switch or Code node to fan it into one branch per channel. Each branch runs its own OpenAI prompt for that channel's format, and a Sheets log records what shipped where.
Why use a Switch node instead of one big AI prompt for all channels?
Per-channel prompts beat one mega-prompt. A LinkedIn post and a tweet need different lengths, tones, and structures. Fanning out with a Switch lets each channel get a focused prompt instead of asking one call to juggle five formats at once.
Do I need to parse the AI output before posting repurposed content?
Yes. Each channel's OpenAI call returns text, and the posting node expects specific fields. Add a Code node per branch to parse the response before it reaches the publish step, or the post lands malformed.
Stop reading. Start running.

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.

Free — $40 value

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