Social Distribution Network

Five platform pipelines turning one published post into native posts, stories and reels — each with its own publish protocol, and its own case study.

Client
EpsolDev
Category
Automation Engineering
Completed
2026-08-15
Built with
n8n, Google Vertex AI, REST API
Topics
API Development, Automation
Social Distribution Network

n8n 5 platforms 262 nodes Publishing daily

One published blog post becomes a native post on five platforms — caption, image, video, story, all generated, all verified. This is the overview; each pipeline has its own case study, because each platform's publish protocol is genuinely different.

The Instagram pipeline, the largest of the five

Driven by the Blog Automation Engine, on top of Custom Blog Management.


The five

PipelineNodesWhat makes it different
Instagram70three surfaces per run — feed, story, reel — and two nested async polling loops
Facebook61photo posts in one call; reels need a three-phase resumable upload
YouTube47no image stage at all — the video is the post, behind an OAuth exchange
LinkedIn44takes bytes directly, so no media round-trip and nothing to clean up
Google Business Profile40local SEO surface rather than social; OAuth token minted per run

What they share

Every pipeline opens identically, and for the same reason the blog engine does — one graph serves every client site:

Schedule ─┐
          ├─> Config ─> Dispatch ─┬─> one site      (webhook)
Webhook  ─┘                       └─> sites_list    (scheduled)
                                          │
                                    Loop Over Sites
                                          │
                     Get Config ─> Due? ─> Claim ─> generate ─> publish ─> Record Post
  • Per-site scheduling. A site posting three times a week and one posting daily share one workflow and one trigger.
  • A claim gate. A scheduled tick and a manual run cannot double-post the same site.
  • Primary-and-fallback generation, with a wait between attempts — the usual first-attempt failure is a transient rate limit, and an immediate retry reproduces it.
  • Credentials from the control plane, fetched per run. Rotating a client's token needs no automation change.
  • One CBM Record Post that every terminal branch reaches, success or miss.

Why not one workflow with a switch

Facebook: a short photo path above, a long reel upload chain below

The sites are the same across all five. The platforms are not.

Instagram will not accept a post — it accepts a container, processes it asynchronously, then publishes it, and it may still fail. Facebook publishes a photo in a single call but needs a three-phase upload session for a reel. YouTube wants an access token minted per run and the video bytes before the metadata. LinkedIn wants an author URN resolved live, and takes the image bytes directly. Google Business Profile wants a post bound to a location.

YouTube: the only pipeline with no image stage

Forcing those into one graph means a switch node wrapping every step — five graphs pretending to be one, with a shared blast radius. Splitting them means a change to the reel protocol cannot break the photo path, and a platform outage is one workflow red on the dashboard instead of one branch in a graph nobody can read.

LinkedIn: bytes go direct, so there is no media round-trip

Google Business Profile: the smallest of the five


Media hygiene

Three of the five need a publicly fetchable URL rather than bytes, so the generated image is uploaded to the content platform's media library only to obtain one — and deleted once the platform has ingested it.

PipelineMedia round-trip
Instagram, Facebook, Google Businessupload for a URL, delete after publish
LinkedInnone — binary straight to the asset API
YouTubenone — bytes straight to the resumable upload

The library never fills up with thousands of one-use social images. Each delete sits after publish verification, so a failed post keeps its asset for inspection.


Lineage

The archive on the same instance holds a dozen superseded per-account social workflows — one per platform, per account. Adding a client meant duplicating a graph; improving a prompt meant editing every copy.

These five replaced all of them by making the site a parameter instead of a copy.


Stack

n8n Instagram Graph API Facebook Graph API YouTube Data API LinkedIn API Google Business Profile API Google Vertex AI Imagen Veo OAuth 2.0 JavaScript

All projects