Natrag
case study

BrandPilot + n8n: AI campaign content generation workspace za multi-output marketing briefove

React (campaign brief UI) n8n (workflow orchestration) OpenAI (channel-specific generation) multipart webhook + prompt routing

Ovaj case study opisuje “BrandPilot” demo MVP: React formu za unos strukturiranog campaign briefa i n8n workflow koji iz jednog inputa generira više marketinških outputa — blog post, LinkedIn post, FB/IG caption, X post, SEO pack, image prompt i video script. Fokus je bio na brzom dokazivanju end-to-end AI workflowa za agencijski use case, uz jasno odvajanje frontenda i orchestration sloja.

BrandPilot React frontend form and generated assets view
React frontend služi kao control panel: unos briefa, odabir outputa, slanje multipart payloada na n8n webhook i pregled strukturiranih rezultata.
BrandPilot n8n workflow orchestration
n8n workflow: Webhook → Normalize → Validate → Build Prompts → channel-specific OpenAI nodeovi → Build AI Success Response → Respond to Webhook.

Live demo

Demo forma dostupna je ovdje: https://brandpilot.dariomijic.com/

Aplikacija trenutno koristi laganiji model za jeftino i brzo testiranje workflowa, dok je arhitektura zamišljena tako da se za produkciju lako prebaci na jače modele, bazu, RAG i approval flow.

Kontekst i problem

U marketinškim timovima isti brief često treba pretvoriti u više različitih outputa za više kanala. Ako se to radi ručno, copywriter ili content tim mora više puta reinterpretirati isti input — za blog, social, SEO i vizualne promptove — što usporava rad i lako stvara nekonzistentan ton.

Cilj je bio složiti mali interni tool koji iz jednog strukturiranog briefa može pokrenuti više AI generacijskih koraka, vratiti rezultate u istom sučelju i poslužiti kao proof-of-concept za širi agency AI workflow.

Rješenje (overview)

Rješenje je podijeljeno na dva sloja: (1) React frontend kao jednostavan workspace za campaign brief, output selector i preview rezultata; (2) n8n kao orchestration sloj koji prima payload, normalizira ga, validira, generira promptove po asset tipu i vraća strukturirani JSON frontendu.

Time je UI ostao lagan i jasan, a sva “AI logika” i branching preseljeni su u workflow gdje je kasnije jednostavno dodavati nove outpute, agente, database write korake i integrations layer.

Workflow logika

Frontend šalje multipart/form-data payload na n8n webhook. Nakon toga workflow prolazi kroz četiri ključna koraka: normalize input, validate input, build prompts i execution chain kroz channel-specific OpenAI nodeove.

Webhook
→ Normalize Input
→ Validate Input
→ IF is_valid?
   ├─ false → Build Error Response
   └─ true  → Build Prompts
             → Generate Blog Post
             → Generate LinkedIn Post
             → Generate Facebook Instagram Caption
             → Generate X Post
             → Generate SEO Pack
             → Generate Image Prompt
             → Generate Video Script
             → Build AI Success Response
→ Respond to Webhook

Ulazni brief i output miks

Brief je strukturiran kroz polja poput campaign name, topic, audience, goal, tone, platform focus, key message, CTA i brand context. Uz to korisnik bira koje outpute želi generirati, čime jedan workflow može pokriti više realnih agencijskih potreba bez dodatnog UI kompliciranja.

Prompt orchestration i guardrails

Umjesto jednog univerzalnog prompta, workflow koristi Build Prompts node koji iz briefa slaže više channel-specific promptova. Svaki prompt ima posebna pravila za ton, format i očekivani output. Time se izbjegava da isti model pokušava “na slijepo” pogoditi što je dobar blog, a što dobar caption ili SEO paket.

U promptovima su dodani i guardrails: zabrana meta-komentara, ograničenja emojija, jasna jezična pravila te stroži output format za SEO dio kako bi parsiranje ostalo stabilno.

Strukturirani response frontendu

Na kraju workflowa Build AI Success Response node skuplja sve generirane rezultate i vraća jedan strukturirani objekt. To frontend čini jednostavnim: prikazuje samo assete koji postoje i zadržava jasan output contract između UI-ja i automation layera.

{
  "success": true,
  "run_id": "run_1773656263403",
  "project": {
    "campaign_name": "Proljetni reset kože",
    "topic": "hidratantna krema za svakodnevnu njegu osjetljive kože"
  },
  "assets": {
    "blog_post": "...",
    "linkedin_post": "...",
    "facebook_instagram_caption": "...",
    "x_post": "...",
    "seo_pack": {
      "keywords": ["..."],
      "meta_description": "..."
    },
    "image_prompt": "...",
    "video_script": "..."
  },
  "documents": [],
  "meta": {
    "generated_count": 7,
    "duration_ms": 2500
  },
  "errors": []
}

Tehnički izazovi i rješenja

MVP fokus
što je namjerno ostavljeno za iduću iteraciju
- jači modeli za premium outpute - upload i stvarno korištenje brand guideline dokumenata - spremanje runova i asseta u bazu - human review / approval layer - export prema CMS-u ili scheduler alatima - RAG sloj za brand-aware generiranje

Zaključak

BrandPilot pokazuje kako jedan relativno mali stack — React frontend + n8n + OpenAI — može postati ozbiljan interni tool za marketinški workflow. Ključna vrijednost nije samo u generiranju sadržaja, nego u tome što je jedan brief pretvoren u više kanalno-specifičnih outputa kroz isti, proširivi orchestration layer.

Kao demo MVP, projekt je dovoljno mali da se brzo izgradi i objasni, ali dovoljno konkretan da pokaže product thinking, workflow design i praktičnu AI automatizaciju za agencijsko okruženje.