Case study · built and shipped

An AI Social Media Campaign Engine with Human-in-the-Loop Approval

This project is a 63-node n8n workflow that turns a single brand intake form into a complete, scheduled social media campaign for LinkedIn and Facebook, with human approval built in. A research-augmented AI strategist (GPT-5-mini via OpenRouter, plus Perplexity search) applies proven copy frameworks to generate platform-tailored posts, each with copy, hashtags, a distinct visual style, and a posting date. Images are created with Google Imagen 4, then sent one by one to Slack for approval — rejected images are revised via NanoBanana using the reviewer's feedback. Approved assets are stored in Drive, logged in Sheets, and scheduled via the Late API.

Platform-tailored AI content from one brief
Per-image human approval with revise loop
End-to-end automation with audit trail
The goal

Generate a full multi-platform social campaign — copy and on-brand imagery — from a single brand brief, with human approval before anything posts.

Pain points & objectives
  • Consistent multi-platform posting is a grind. Producing a steady stream of platform-tailored posts for LinkedIn and Facebook — each with original copy and matching visuals — consumes hours of strategist and designer time every week.
  • Generic AI output ignores brand and platform nuance. Off-the-shelf tools produce one-size-fits-all captions that miss the professional tone LinkedIn rewards, the conversational warmth Facebook needs, and the brand's actual voice and value proposition.
  • No safety net before publishing. Fully automated posting is risky — an off-tone caption or wrong-looking image can go live unreviewed, so teams need approval control without losing the speed of automation.
The build

The brief: a full social campaign from one form, with a human holding the publish button.

The client wanted to turn a single brand intake into a complete, ready-to-schedule social media campaign across LinkedIn and Facebook — original copy and visuals for every post — while keeping a person firmly in control of what actually goes live. The two requirements were in tension: the speed and volume of full automation, paired with the editorial safety of human review. We resolved that tension with a 63-node n8n workflow built around an AI content strategist and a per-image human-approval loop.

Stage 1 — Brand intake. Everything starts from a simple form capturing the inputs that make content on-brand rather than generic: brand name, industry, target demographics and location, primary value proposition, the customer challenge, desired outcome, brand voice, specific topics to focus on, and the company website. These variables become the creative brief for the rest of the pipeline.

Stage 2 — Strategic content generation. A research-augmented AI agent (running GPT-5-mini via OpenRouter, with a Perplexity web-search tool and an explicit "think" step for planning) acts as the campaign strategist. Rather than spitting out captions, it first reasons about the right approach — selecting a proven copy framework such as PAS (Problem-Agitate-Solution), StoryBrand, or BAB (Before-After-Bridge) — and pulls current market or local context via web search when fresh data would strengthen the message. It then produces a batch of platform-specific posts: a professional, thought-leadership tone for LinkedIn and a warmer, community-driven tone for Facebook. Each post arrives as structured JSON containing the copy, emojis and hashtags, a distinct visual style (photography, infographic, 3D scene, or illustration), strategic overlay text, and a suggested posting date.

Stage 3 — Image generation. For each post, the matching image prompt is sent to Google Imagen 4 (hosted on Replicate) to generate an on-brief visual. Posts are processed one at a time through a batching loop so each image can be handled — and reviewed — individually.

Stage 4 — Human-in-the-loop approval. This is the heart of the system. Every generated image is sent to a reviewer in Slack using a send-and-wait-for-response step that pauses the workflow. The reviewer either approves the image — and the pipeline moves on to the next post — or rejects it with written feedback. On rejection, that feedback is fed to NanoBanana (an image-editing model, also on Replicate), which revises the image accordingly, and the new version is sent straight back to Slack for another round. The loop continues until a human signs off, so nothing proceeds on a visual the reviewer hasn't explicitly accepted.

Stage 5 — Storage and record-keeping. Once approved, an image-path switch resolves whether to use the original or the edited version, the final asset is uploaded to Google Drive, and the post's details are appended to a Google Sheets record — giving the team a clean, auditable log of every campaign asset and its metadata.

Stage 6 — Multi-platform scheduling. A platform switch routes each post to the correct destination, and the finished, approved content is scheduled through the Late API (getlate.dev) — to LinkedIn for the professional posts and to Facebook/Instagram for the social ones — using the brand's connected account IDs and the posting dates assigned earlier.

Why this design works. It captures the economics of automation without surrendering editorial control. The AI handles the heavy lifting — strategy, research, copywriting across two distinct platform voices, and four visual styles — while the Slack approval gate guarantees a human signs off on every single image before it's stored or scheduled. The rejection-and-revise loop means feedback doesn't bounce work back to square one; it refines the existing asset in place. Google Sheets provides the audit trail, Google Drive the asset library, and the whole orchestration runs on self-hosted infrastructure, keeping brand inputs and credentials under the owner's control.

Pipeline stages
  1. Brand intake — a form captures brand name, industry, audience, value proposition, voice, focus topics, and website as the creative brief.
  2. Strategic content generation — a research-augmented AI agent selects a copy framework, runs web research when useful, and outputs platform-specific posts as structured JSON.
  3. Image generation — each post's visual prompt is rendered by Google Imagen 4 (via Replicate), processed one post at a time.
  4. Human approval in Slack — every image is sent for sign-off; the workflow waits for an approve or a reject-with-feedback response.
  5. Revise loop (on rejection) — feedback is passed to the NanoBanana editing model, and the revised image is sent back to Slack until approved.
  6. Storage & logging — the approved (original or edited) image is uploaded to Google Drive and the post is recorded in Google Sheets.
  7. Multi-platform scheduling — a switch routes each post and schedules it to LinkedIn or Facebook/Instagram via the Late API on the assigned date.
Tools & platforms
  • n8n — workflow orchestration (63 nodes, self-hosted)
  • OpenRouter (GPT-5-mini) — the content strategist LLM
  • Perplexity — live web research tool for the agent
  • n8n Think tool — explicit strategic-planning step for the agent
  • Google Imagen 4 (via Replicate) — AI image generation
  • NanoBanana (via Replicate) — feedback-driven image editing
  • Slack — human-in-the-loop approval (send-and-wait-for-response)
  • Google Drive — approved-asset storage
  • Google Sheets — campaign record & audit log
  • Late (getlate.dev) — multi-platform post scheduling (LinkedIn, Facebook/Instagram)
  • n8n Form Trigger — brand intake form
  • Structured Output Parser — schema-enforced campaign JSON
Want one of these?

Got a workflow no one’s been able to build?

A free 20-minute call. Bring the messy, ambitious, “is this even possible” version, and I’ll tell you if it’s buildable and roughly how.