Du får äntligen tid att göra riktigt strategiarbete … och så fastnar du med att formatera en SWOT-rapport igen. Copy-paste från ett kalkylark, skriva om samma språk för “sammanfattning för ledningen”, fixa rubriker, exportera PDF:er och jaga “senaste versionen”. Det är segt. Och ärligt talat är det där bra tänkande går för att dö.
Marknadskonsulter känner det när kundleveranserna staplas på hög. En småföretagare känner det inför ett bankmöte. Strategiansvariga på byråer hamnar i samma röra, bara med fler flikar öppna. Den här automatiseringen för SWOT-PDF:er gör om ett Google-kalkylark till en kundfärdig PDF, mejlad automatiskt, med konsekvent struktur varje gång.
Nedan ser du vad arbetsflödet gör, vad du behöver för att köra det och hur mycket tid du får tillbaka när det väl är på plats.
Så här fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets till Gmail, SWOT-pdf:er för kunder
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Google Sheets", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Strengths Analysis", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Weaknesses Analysis", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Opportunities Analysis", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Threats Analysis", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI 4.1-nano", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "DeepSeek Reasoner", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "Strengths Section Formatting", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Weaknesses Section Formatting", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Opportunities Section Format..", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Threats Section Formatting", pos: "b", h: 48 }
n15["<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"]
n16@{ icon: "mdi:robot", form: "rounded", label: "Write The Introduction", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
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/>Combine Content"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Download PDF"]
n20@{ icon: "mdi:message-outline", form: "rounded", label: "Send Report", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "Table of Contents", pos: "b", h: 48 }
n22@{ icon: "mdi:database", form: "rounded", label: "Send ToC", pos: "b", h: 48 }
n23@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n24@{ icon: "mdi:database", form: "rounded", label: "Upload Strengths", pos: "b", h: 48 }
n25@{ icon: "mdi:database", form: "rounded", label: "Upload Weaknesses", pos: "b", h: 48 }
n26@{ icon: "mdi:database", form: "rounded", label: "Upload Opportunities", pos: "b", h: 48 }
n27@{ icon: "mdi:database", form: "rounded", label: "Upload Threats", pos: "b", h: 48 }
n28@{ icon: "mdi:database", form: "rounded", label: "Upload Introduction", pos: "b", h: 48 }
n29@{ icon: "mdi:database", form: "rounded", label: "Pull Info Again", pos: "b", h: 48 }
n30@{ icon: "mdi:database", form: "rounded", label: "Pull Info Again1", pos: "b", h: 48 }
n31@{ icon: "mdi:robot", form: "rounded", label: "Write The Conclusion", pos: "b", h: 48 }
n32@{ icon: "mdi:database", form: "rounded", label: "Pull Info Again2", pos: "b", h: 48 }
n33@{ icon: "mdi:database", form: "rounded", label: "Upload Conclusion", pos: "b", h: 48 }
n34["<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/>Generate PDF"]
n35@{ icon: "mdi:database", form: "rounded", label: "Pull Info Again3", pos: "b", h: 48 }
n36@{ icon: "mdi:robot", form: "rounded", label: "Title Page", pos: "b", h: 48 }
n37@{ icon: "mdi:database", form: "rounded", label: "Send ToC1", pos: "b", h: 48 }
n38@{ icon: "mdi:swap-vertical", form: "rounded", label: "GetName", pos: "b", h: 48 }
n17 --> n29
n15 --> n17
n38 --> n36
n2 --> n5
n2 --> n6
n2 --> n7
n2 --> n8
n22 --> n38
n37 --> n35
n36 --> n37
n19 --> n20
n34 --> n19
n1 --> n2
n27 --> n15
n18 --> n34
n9 -.-> n14
n9 -.-> n13
n9 -.-> n12
n9 -.-> n11
n29 --> n16
n30 --> n31
n32 --> n21
n35 --> n18
n8 --> n14
n24 --> n15
n10 -.-> n5
n10 -.-> n8
n10 -.-> n7
n10 -.-> n6
n4 -.-> n2
n21 --> n22
n33 --> n32
n25 --> n15
n23 -.-> n21
n23 -.-> n16
n23 -.-> n31
n23 -.-> n36
n5 --> n11
n28 --> n30
n6 --> n12
n26 --> n15
n31 --> n33
n7 --> n13
n16 --> n28
n3 -.-> n2
n14 --> n27
n11 --> n24
n12 --> n25
n13 --> n26
n0 --> n1
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 n0 trigger
class n2,n3,n5,n6,n7,n8,n11,n12,n13,n14,n16,n21,n31,n36 ai
class n4,n9,n10,n23 aiModel
class n1,n22,n24,n25,n26,n27,n28,n29,n30,n32,n33,n35,n37 database
class n19,n34 api
class n18 code
classDef customIcon fill:none,stroke:none
class n15,n18,n19,n34 customIcon
Problemet: SWOT-rapporter tar för lång tid att färdigställa
En SWOT ser enkel ut tills du måste leverera den på ett sätt som en kund (eller ledningsgrupp) faktiskt vill läsa. Du börjar i Google Sheets, sedan skriver du om avsnitt så att de låter proffsiga, sedan letar du efter ett “snyggt” format, sedan exporterar du till PDF och sedan mejlar du. Upprepa det för varje nytt bolag, varje ny version, varje ny intressent. En liten ändring (“vi borde lägga till en partnerrisk under Hot”) kan trigga en hel ny runda med redigeringar och nya exporter, och slutdokumentet blir ändå inkonsekvent mellan olika projekt.
Det blir snabbt mycket. Här är var det brukar fallera.
- Varje rapport blir cirka 1–2 timmar av puts eftersom innehåll och formatering ligger på olika ställen.
- Versionshanteringen blir rörig, så “final_v7.pdf” blir ett återkommande skämt som ingen uppskattar.
- Team återanvänder gamla formuleringar, vilket gör att varje kundpresentation låter märkligt lik den förra.
- Manuell export och mejlskick skapar onödiga misstag, som att skicka fel PDF till rätt person.
Lösningen: generera SWOT-PDF:er från ett kalkylark och mejla dem
Det här arbetsflödet hämtar strukturerade företagsdata från Google Sheets, använder AI för att generera en skriven SWOT-berättelse (inte bara punktlistor) och sätter sedan ihop allt till en formgiven rapport. Det skapar avsnitten du brukar stressa med i slutet: en strategisk introduktion, tydliga texter för styrkor/svagheter/möjligheter/hot och en avslutning som läser som en faktisk rekommendation. När rapporten är sammanställd som HTML konverteras den till en korrekt formaterad PDF med flera sidor via APITemplate.io. Därefter sparar n8n resultatet tillbaka till Google Sheets för spårning och skickar PDF:en via Gmail till den som behöver den.
Arbetsflödet startar när du kör det för en rad (eller ett set av rader) i fliken “Company Info Input”. AI omvandlar dessa indata till kundfärdigt språk. Till sist genereras PDF:en, lagras och mejlas utan att du behöver röra Google Slides, Docs eller en PDF-editor.
Det du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du tar fram 5 SWOT-rapporter i veckan för kundkartläggning eller kvartalsplanering. Manuellt kanske du lägger cirka 30 minuter på att skriva texten, ytterligare 30 minuter på att formatera till en korrekt formaterad PDF-layout och 10 minuter på export, filnamn och mejl. Det är ungefär 6–7 timmar i veckan. Med det här arbetsflödet: du fyller i kalkylarket en gång (kanske 10 minuter per bolag), låter AI + PDF-generering köra (ofta 20 minuter i bakgrunden) och PDF:en landar automatiskt i Gmail, vilket gör “rapportdagen” till en snabb kontroll och skick.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra indata och utdata.
- Gmail för att mejla den färdiga SWOT-PDF-rapporten.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard).
Kunskapsnivå: Medel. Du kopplar några konton, lägger in API-nycklar och verifierar att Google Sheets-mallen matchar arbetsflödets förväntade fält.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Google Sheets startar allt. Arbetsflödet läser in företagsdetaljer från fliken “Company Info Input” i din SWOT-mall. Du kan köra det för ett företag eller loopa igenom flera poster när du batchar jobb.
Data formas för analys. n8n rensar fält, slår ihop indata vid behov och skickar objekt genom logikkontroller (som “har vi allt som krävs för att generera en full rapport?”). Det är den här delen som gör att dina resultat blir konsekventa i stället för “ibland toppen, ibland konstigt”.
AI skriver avsnitten som folk faktiskt läser. Med en AI Agent och en OpenAI Chat Model (eller DeepSeek som alternativ) genererar arbetsflödet SWOT-innehållet plus narrativa avsnitt som strategisk introduktion och slutsats. Det bygger fortfarande på dina indata, men sätts ihop till sammanhängande text som låter som en leverans.
Rapporten blir en delbar PDF. HTML:en sammanställs och APITemplate.io gör om den till en flersidig PDF. Den färdiga filen sparas (vanligtvis i Google Drive) och mejlas via Gmail OAuth2 till en kund, en intressentgrupp eller ditt interna team.
Du kan enkelt ändra mallens styling och tonläget i texten efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- Autentisering för Google Sheets och Gmail kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera: börja med att kontrollera n8n:s Credentials och Googles OAuth-consent-inställningar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Cirka 15–30 minuter om dina konton och din kalkylarks-mall är klara.
Nej. Du kopplar främst konton och klistrar in API-nycklar. Arbetsflödeslogiken är redan byggd.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in användningskostnader för OpenAI och APITemplate.io, vilket beror på hur långa dina rapporter är och hur ofta du kör dem.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Uppdatera prompterna i AI Agent / OpenAI Chat Model så att de matchar din röst och justera sedan HTML-mallen som skickas till APITemplate.io för typsnitt, spacing, färger och logoplacering. Många team lägger också till en kundspecifik intro-rad, ett avsnitt “nästa steg” och en kort metodbeskrivning så att PDF:en känns som en premiumleverans.
Oftast handlar det om utgången OAuth eller ett Google-konto som saknar åtkomst till kalkylarket du pekar på. Anslut Google Sheets på nytt i n8n och bekräfta sedan att exakt kalkylark och fliknamn matchar vad arbetsflödet förväntar sig (särskilt “Company Info Input”). Om du nyligen duplicerade mallen kan du använda ett nytt fil-ID utan att märka det. Kontrollera också Google API-gränser om du kör stora batchar.
I n8n Cloud beror det på din plans månatliga körningar, och varje rapport förbrukar vanligtvis flera körningar eftersom det är flera steg (läsa kalkylark, generera innehåll, rendera PDF, mejla, skriva tillbaka). Om du kör self-hosted finns ingen hård gräns för körningar; din praktiska gräns blir serverresurser plus API-rate limits från Google, OpenAI och APITemplate.io. För de flesta små team är det helt realistiskt att generera några dussin rapporter per vecka.
Ofta, ja, eftersom det här arbetsflödet har förgreningar, loopar, sammanslagningar och dokumentsammansättning som kan bli krångligt (och dyrt) i enklare automationsverktyg. n8n ger dig också en self-hosted-väg, vilket är viktigt när du kör många rapporter eller hanterar känslig kunddata. Zapier eller Make kan fortfarande vara bra om du bara behöver ett enkelt flöde “rad tillagd → mejl skickat” utan PDF-rendering. Om du är osäker, prata med en automationsexpert och skissa upp det snabbt.
När det här väl rullar slutar “göra det presentabelt”-delen att vara ditt jobb. Du får en repeterbar SWOT-rapportmaskin och kan lägga den återvunna tiden på det tänkande som faktiskt driver affären framåt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.