Din lanseringschecklista är redan för lång. Sedan slänger någon in “vi behöver captions, hashtags, bilder och en publiceringsplan” i Slack, och plötsligt jagar du copy, tillgångar, godkännanden och deadlines över fem verktyg.
Den här Slack Cloudinary-automationen träffar marknadschefer först (för det är du som får bära ansvaret). Men byråledare och grundare som skeppar produkter varje vecka känner av det också. Resultatet är enkelt: en produktbrief in, ett komplett kampanjkit ut, redo att granskas i Slack.
Nedan ser du hur arbetsflödet sätter ihop captions, discovery-hashtags, AI-bilder hostade i Cloudinary och ett publiceringsschema i ett enda paket som du kan godkänna snabbt.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Slack + Cloudinary: kampanjkit klara för lansering
flowchart LR
subgraph sg0["Create Campaign Blue Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Inbound Product Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Normalize Product Fields", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Create Campaign Blueprint AI", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Parse Blueprint JSON", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Blueprint LLM Engine", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Create IG Captions AI", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "Caption LLM Engine", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Parse Caption JSON", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Produce Hashtag Set AI", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "Hashtag LLM Engine", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Parse Hashtag JSON", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Posts for Images", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/openAi.dark.svg' width='40' height='40' /></div><br/>Create Social Image AI"]
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Image to Cloudinary"]
n14@{ icon: "mdi:robot", form: "rounded", label: "Create Posting Schedule AI", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Parse Schedule JSON", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Schedule LLM Engine", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Campaign Assets"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Assemble Campaign Payload"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Dispatch Campaign to Slack"]
n7 -.-> n5
n10 -.-> n8
n17 --> n18
n8 --> n14
n8 --> n17
n3 -.-> n2
n6 -.-> n5
n16 -.-> n14
n4 -.-> n2
n9 -.-> n8
n15 -.-> n14
n18 --> n19
n0 --> n1
n2 --> n5
n2 --> n11
n5 --> n8
n5 --> n17
n12 --> n13
n13 --> n17
n1 --> n2
n11 --> n12
n14 --> n17
end
subgraph sg1["Utility: Error Flow"]
direction LR
n20@{ icon: "mdi:play-circle", form: "rounded", label: "Utility: Error Trigger", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Utility: Slack Error Alert"]
n20 --> n21
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n20 trigger
class n2,n3,n5,n7,n8,n10,n14,n15 ai
class n4,n6,n9,n16 aiModel
class n0,n13 api
class n18 code
classDef customIcon fill:none,stroke:none
class n0,n12,n13,n17,n18,n19,n21 customIcon
Utmaningen: lanseringsinnehåll fastnar i produktionen
De flesta lanseringar misslyckas inte för att produkten är dålig. De stannar upp för att kampanjinnehållet kommer sent, ser inkonsekvent ut eller behöver “bara en revision till” som blir tio. Du börjar med en rörig produktbrief, sedan skriver någon om den för sociala medier, någon annan letar hashtags, och design teamet stressar fram bilder som matchar vinkeln. När du väl är redo att posta har tillfället passerat, och du sitter fortfarande och klistrar in länkar i Slack för att få ett snabbt “ja”.
Det eskalerar snabbt. Här är var det faller isär i verkliga team.
- Produktunderlag kommer in halvstrukturerat, så copywritern lägger tid på att rensa i stället för att skriva.
- Hashtags och captions tas fram på olika ställen, vilket gör att de färdiga inläggen känns som om de kommer från olika varumärken.
- Bildfiler delas som bilagor, delas igen, försvinner, och ingen är säker på vilken version som är “final”.
- Beslut om publiceringstid blir en åsiktsfråga, så ni tappar en timme på att diskutera i stället för att schemalägga.
Lösningen: en brief blir ett komplett kampanjkit i Slack
Det här arbetsflödet tar en enda uppsättning produktdetaljer (skickade via webhook) och gör om det till ett komplett kampanjpaket för sociala medier som du faktiskt kan leverera. Först rensar och normaliserar det råindata så att AI:n arbetar från stabila, korrekt formaterade fält i stället för stökig text. Sedan genererar en sekvens av AI-agenter en kampanjplan, fem Instagram-klara captions med CTA:er och en discovery-inriktad hashtag-uppsättning. Parallellt skapar det fotorealistiska kommersiella visuella bilder med DALL·E 3, laddar upp bilderna till Cloudinary och hämtar tillbaka säkra URL:er. Slutligen rekommenderar det optimala publiceringstider (i tidszonen Asia/Kolkata) och slår ihop allt till en strukturerad JSON-payload som levereras direkt till Slack för granskning.
Arbetsflödet startar när du skickar in en produktbrief till webhook-endpointen. AI tar fram strategisk plan, captions, hashtags, bilder och schema, och sedan kombineras allt och postas i Slack med Cloudinary-länkar så att ingen laddar ner filer eller letar tillgångar.
Vad som förändras: före vs. efter
| Detta elimineras | Effekt du kommer att se |
|---|---|
|
|
Effekt i praktiken
Säg att du kör två lanseringar i veckan. Manuellt tar ett enkelt kit ofta 5 captions (cirka 45 minuter), hashtags (15 minuter), ett bildkoncept och iteration (cirka 2 timmar), plus schema och formatering för granskning (30 minuter). Det är ungefär 3–4 timmar per lansering. Med det här arbetsflödet: du skickar produktdetaljerna en gång, väntar på generering och uppladdningar (ofta under 20 minuter) och granskar sedan allt i Slack med Cloudinary-URL:er. Du lägger mest tid på att godkänna, inte producera.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Slack för att leverera kampanjkit till teamet.
- Cloudinary för hosting och delning av bild-URL:er.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard).
Kompetensnivå: Medel. Du kopplar konton, klistrar in API-nycklar och testar en webhook-payload en eller två gånger.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Arbetsflödet
En produktbrief träffar webbhooken. Du skickar namn, beskrivning, fördelar, målgrupp och tonalitet i korrekt formaterad JSON. Det kan komma från ett formulär, ert interna verktyg eller till och med en annan automatisering.
Arbetsflödet rensar de stökiga delarna. Det trimmar whitespace, tar bort konstig escapning och normaliserar fält så att AI-agenterna inte misstolkar briefen. Litet steg, stor tillförlitlighetsboost.
AI genererar kampanjens byggstenar. En blueprint-agent skapar strategi och post-objekt, och sedan genererar dedikerade agenter fem Instagram-captions med CTA:er samt en hashtag-uppsättning på 12–18 taggar. Varje output parsas och valideras mot ett strikt JSON-schema, så att du inte får oanvändbara textklumpar.
Bilder och schema produceras, sedan slås allt ihop. DALL·E 3 skapar fotorealistiska visuella bilder, Cloudinary hostar dem och returnerar säkra URL:er, och en schemaläggningsagent rekommenderar publiceringstider med motivering. Arbetsflödet slår ihop captions, hashtags, bildlänkar och schema till en slutlig payload och skickar den till Slack.
Du kan enkelt ändra formatet på Slack-meddelandet så att det matchar er granskningsprocess utifrån era behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggern
Sätt upp den inkommande produkt-payloaden som startar flödet för kampanjgenerering.
- Lägg till noden Inbound Product Webhook och ställ in HTTP Method på
POST. - Ställ in Path till
691cefdb-6770-40db-9b6a-1da2350088fei Inbound Product Webhook. - Skicka en test-payload med fält som
body.product_name,body.product_description,body.target_audience,body.brand_voice,body.benefitsochbody.reference_image.
Steg 2: anslut och normalisera inkommande produktdata
Rensa och standardisera produktfälten innan de skickas till AI-genereringen.
- Anslut Inbound Product Webhook till Normalize Product Fields.
- I Normalize Product Fields ställer ni in följande tilldelningar med exakt dessa uttryck: body.product_name till
{{$json.body.product_name.replace(/\\"/g, "").replace(/"$/, "").trim() }}. - Ställ in body.product_description till
{{$json.body.product_description.replace(/\\\"$/, "").trim() }}. - Ställ in body.target_audience till
{{$json.body.target_audience.replace(/\\\"$/, "").replace(/,$/, "").trim() }}. - Ställ in body.brand_voice till
{{$json.body.brand_voice.trim() }}, body.benefits till{{$json.body.benefits.replace(/\\\"$/, "").trim() }}och body.reference_image till{{$json.body.reference_image}}.
body kommer uttrycken i Normalize Product Fields att returnera tomma värden.Steg 3: sätt upp kampanjens blueprint-AI
Generera den centrala kampanj-blueprinten som driver bildtexter, bilder, hashtags och schemaläggning.
- Anslut Normalize Product Fields till Create Campaign Blueprint AI.
- I Create Campaign Blueprint AI behåller ni Text-prompten exakt som den är, inklusive referenser som
{{ $json.body.product_name }}och{{ $json.body.benefits }}. - Säkerställ att Parse Blueprint JSON är ansluten som output parser för Create Campaign Blueprint AI och låt JSON Schema Example vara oförändrat.
- Öppna Blueprint LLM Engine och välj er modell (t.ex.
gpt-4o). - Credential Required: anslut era openAiApi-credentials i Blueprint LLM Engine.
Steg 4: konfigurera AI för bildtexter, hashtags och schemaläggning (parallella grenar)
Det här workflowet använder parallella AI-grenar. Create Campaign Blueprint AI skickar output parallellt till både Create IG Captions AI och Split Posts for Images, och Create IG Captions AI skickar output parallellt till både Produce Hashtag Set AI och Merge Campaign Assets. Produce Hashtag Set AI skickar output parallellt till både Create Posting Schedule AI och Merge Campaign Assets.
- I Create IG Captions AI behåller ni Text-prompten intakt och säkerställer att den refererar till
{{ JSON.stringify($json.output.article_summary) }}. - Anslut Caption LLM Engine som språkmodell för Create IG Captions AI och lägg till Parse Caption JSON som output parser.
- Credential Required: anslut era openAiApi-credentials i Caption LLM Engine.
- I Produce Hashtag Set AI behåller ni prompten som refererar till
{{ JSON.stringify($("Create Campaign Blueprint AI").first().json.output.article_summary) }}och{{ JSON.stringify($json.output.captions) }}. - Anslut Hashtag LLM Engine som språkmodell och koppla in Parse Hashtag JSON som output parser.
- Credential Required: anslut era openAiApi-credentials i Hashtag LLM Engine.
- I Create Posting Schedule AI behåller ni prompten som refererar till
{{ $('Create Campaign Blueprint AI').item.json.output.article_summary.target_audience }}och{{ JSON.stringify($('Create Campaign Blueprint AI').item.json.output.posts, null, 2) }}. - Anslut Schedule LLM Engine som språkmodell och koppla in Parse Schedule JSON som output parser.
- Credential Required: anslut era openAiApi-credentials i Schedule LLM Engine.
Steg 5: generera och ladda upp sociala bilder
Skapa AI-genererade visuella element per inlägg och ladda sedan upp dem till Cloudinary för leverans.
- Från Create Campaign Blueprint AI säkerställer ni att Split Posts for Images är ansluten och ställer in Field To Split Out till
output.posts. - Konfigurera Create Social Image AI med Model satt till
dall-e-3och behåll hela Prompt, inklusive referenser som{{ $json.platform }}och{{ $('Create Campaign Blueprint AI').item.json.output.article_summary.title }}. - Credential Required: anslut era openAiApi-credentials i Create Social Image AI.
- I Upload Image to Cloudinary ställer ni in URL till
https://api.cloudinary.com/v1_1/[YOUR_ID]/image/upload, Method tillPOSToch Content Type tillmultipart-form-data. - Ställ in Body Parameters så att de inkluderar file som
formBinaryDatafråndata, och upload_preset tillupload. - Credential Required: anslut era httpBasicAuth-credentials i Upload Image to Cloudinary.
Steg 6: slå ihop assets och skicka till Slack
Kombinera bildtexter, hashtags, bilder och schema till en enda payload och skicka till Slack.
- Säkerställ att output flödar in i Merge Campaign Assets från Upload Image to Cloudinary, Create IG Captions AI, Produce Hashtag Set AI och Create Posting Schedule AI.
- I Merge Campaign Assets ställer ni in Number of Inputs till
4. - Anslut Merge Campaign Assets till Assemble Campaign Payload och behåll JS Code intakt för att aggregera
images,captions,hashtagsochschedule. - Anslut Assemble Campaign Payload till Dispatch Campaign to Slack och behåll Text-meddelandet, inklusive uttryck som
{{$json.images.join("\n")}}och{{"#" + $json.hashtags.join(" #")}}. - Credential Required: anslut era slackApi-credentials i Dispatch Campaign to Slack.
Steg 7: lägg till felhantering
Avisera ert team i Slack om någon nod fallerar under körning.
- Konfigurera Utility: Error Trigger och anslut den till Utility: Slack Error Alert.
- I Utility: Slack Error Alert behåller ni Text-fältet med uttrycken
{{$json.node.name}},{{$json.error.message}}och{{$json.timestamp}}. - Credential Required: anslut era slackApi-credentials i Utility: Slack Error Alert.
Steg 8: testa och aktivera ert workflow
Verifiera flödet från början till slut och aktivera det för produktionsanvändning.
- Klicka på Execute Workflow och skicka en POST-begäran till Inbound Product Webhook med exempeldata för produkten.
- Bekräfta att Create Campaign Blueprint AI, Create IG Captions AI, Produce Hashtag Set AI, Create Social Image AI och Create Posting Schedule AI alla kör utan fel.
- Kontrollera att Dispatch Campaign to Slack publicerar ett meddelande som innehåller bild-URL:er, bildtexter, hashtags och schemaläggningsdata.
- Om fel uppstår, verifiera aviseringarna i Utility: Slack Error Alert för att identifiera vilken nod som fallerade.
- När testningen är lyckad, växla workflowet till Active för att möjliggöra produktionskörningar.
Saker att se upp med
- OpenAI-inloggningar kan gå ut eller slå i organisationsrestriktioner. Om det skapar fel, kontrollera först status på din OpenAI API-nyckel och faktureringsgränser.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder nedströms misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output i all evighet.
Vanliga frågor
Cirka 30 minuter om dina API-nycklar är redo.
Ja, men du vill ha någon som är bekväm med att testa en webhook-request. Ingen kodning krävs, bara att koppla Slack, Cloudinary och OpenAI i n8n.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner startar på 20 USD/månad för högre volymer. Du behöver även räkna in OpenAI API-kostnader, som oftast är några cent per kampanj (bilder kostar mer än text).
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, du kan anpassa den utan att bygga om allt. De flesta team börjar med att redigera steget “Normalize Product Fields” så att det matchar ert produktschema, och justerar sedan AI-prompterna i blueprint-/captions-/hashtag-agenterna så att de matchar varumärkets tonalitet. Om du vill ha annan bildhosting kan du ersätta HTTP-requesten “Upload Image to Cloudinary” med en uppladdningsanrop till en annan lagringsleverantör. Du kan också ändra leveransformatet till Slack i sista steget “Dispatch Campaign to Slack” så att granskare ser exakt det de behöver.
Oftast beror det på en utgången Slack-bottoken eller saknade kanalbehörigheter. Återanslut dina Slack-inloggningar i n8n, bekräfta att boten är inbjuden till målkanalen och kontrollera n8n:s körlogg för att se det exakta Slack API-felmeddelandet.
På n8n Cloud beror kapaciteten främst på din plans månatliga körningar, medan egen hosting beror på din server. I praktiken är den långsammaste delen bildgenerering och uppladdning, så team kör ofta några kampanjkit per timme utan att tänka på det. Om du behöver hög volym, stryp anrop till OpenAI och Cloudinary för att undvika rate limits och köa kit efter lanseringsprioritet.
Ofta, ja. Det här arbetsflödet använder flera AI-steg med strukturerad JSON-parsning och sammanslagning, vilket är mycket enklare att uttrycka i n8n utan att betala extra för varje gren. Du får också möjligheten att köra egen hosting, vilket spelar roll när du genererar många kampanjkit. Zapier eller Make kan fortfarande fungera om du bara vill ha ett lättviktsflöde från “brief till Slack-meddelande” och du inte behöver bildgenerering. Prata med en automationsexpert om du väljer mellan olika upplägg.
När det här väl rullar slutar lanseringsinnehåll vara ett kaos. Du skickar en brief, granskar ett paket i Slack och går vidare till jobbet som faktiskt får kampanjen att växa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.