Dina kundrecensioner ligger i ett kalkylark, men nästa lansering blir ändå en panikinsats. Du klistrar in citat för hand, skriver om samma avsnitt fem olika gånger och undrar sedan vilken “vinkel” du glömde. Den där röriga mitten är där bra erbjudanden tappar tryck.
Den här automatiseringen av säljsidor träffar frilanscopywriters först, helt ärligt. Men growth-strateger och grundare som bygger funnels känner också av det, eftersom det är svårt att vara konsekvent när du producerar varianter snabbt. Resultatet: personabaserade utkast som återanvänder riktiga bevispunkter utan att du behöver detaljstyra varje stycke.
Det här arbetsflödet gör om recensioner i Google Sheets till flera Google Docs-utkast, där varje utkast är skrivet för en annan persona och behovssituation. Du får se vad det automatiserar, vad du får ut av det och vad som oftast skapar fel när du sätter upp det.
Så här fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets till Google Docs: säljsidevarianter snabbt
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Advertorial Writer", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Create Advertorial Docs", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Insert Advertorial", pos: "b", h: 48 }
n3@{ icon: "mdi:wrench", form: "rounded", label: "Think5", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model7", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Maslow Hierarchy Analysis", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser3", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Headline Writer", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields2", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser4", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Sales Page Copywriter", pos: "b", h: 48 }
n14["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n15@{ icon: "mdi:wrench", form: "rounded", label: "Think", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Customer Reviews Analysis Ag..", pos: "b", h: 48 }
n19@{ icon: "mdi:cog", form: "rounded", label: "Create Customer Analysis Docs", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Reviews Exist", pos: "b", h: 48 }
n21@{ icon: "mdi:cog", form: "rounded", label: "Get Product Features", pos: "b", h: 48 }
n22@{ icon: "mdi:cog", form: "rounded", label: "Set Limit of Reviews to use", pos: "b", h: 48 }
n23@{ icon: "mdi:cog", form: "rounded", label: "Randomize Reviews", pos: "b", h: 48 }
n24@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Reviews", pos: "b", h: 48 }
n25@{ icon: "mdi:cog", form: "rounded", label: "Get Base Copy", pos: "b", h: 48 }
n26@{ icon: "mdi:database", form: "rounded", label: "Get Amazon Reviews", pos: "b", h: 48 }
n27@{ icon: "mdi:cog", form: "rounded", label: "Insert Headlines", pos: "b", h: 48 }
n28@{ icon: "mdi:cog", form: "rounded", label: "Create Headline File", pos: "b", h: 48 }
n29["<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/>Review Insights"]
n30@{ icon: "mdi:cog", form: "rounded", label: "Insert Customer Analysis Text", pos: "b", h: 48 }
n15 -.-> n18
n3 -.-> n8
n3 -.-> n6
n3 -.-> n13
n3 -.-> n0
n11 --> n12
n16 --> n24
n9 --> n13
n25 --> n21
n8 --> n9
n8 --> n28
n12 --> n1
n29 --> n19
n20 --> n23
n24 --> n18
n23 --> n22
n0 --> n6
n26 --> n20
n2 --> n12
n14 --> n25
n28 --> n27
n21 --> n26
n17 -.-> n18
n13 --> n11
n5 -.-> n8
n5 -.-> n4
n5 -.-> n6
n5 -.-> n7
n5 -.-> n13
n5 -.-> n0
n5 -.-> n10
n1 --> n2
n6 --> n8
n4 -.-> n8
n7 -.-> n6
n10 -.-> n13
n22 --> n16
n19 --> n30
n30 --> n0
n18 --> n29
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 n14 trigger
class n0,n4,n6,n7,n8,n10,n13,n18 ai
class n5,n17 aiModel
class n3,n15 ai
class n20 decision
class n26 database
class n29 code
classDef customIcon fill:none,stroke:none
class n14,n29 customIcon
Problemet: varianter av säljsidor tar evigheter (och glider snabbt isär)
Att skriva ett stabilt säljsideutkast är jobb. Att skriva fem varianter som fortfarande låter som samma varumärke, använder samma bevis och inte hittar på nya påståenden är ett helt annat problem. Den vanliga processen är kaotisk: skumma igenom recensioner, kopiera “bra rader” till ett dokument, glöm var de kom ifrån och skriv sedan om samma nyttodel för olika målgrupper. Efter ett par varv matchar sidan inte längre produkt-/feature-dokumentet, och du sitter och kvalitetssäkrar din egen copy kl 23. Det är inte kreativ friktion. Det är processfriktion.
Det blir snabbt mycket. Här är var det faller isär i verkliga team.
- Du tappar kundens röst eftersom det är långsamt och störigt att plocka citat från ett ark.
- Personavarianter glider, så varje utkast får olika påståenden och olika “bästa” bevis.
- Du lägger cirka 2 timmar per variant bara på att formatera, organisera och rensa upp upprepningar.
- Lanseringstidslinjer blir tajtare, vilket betyder färre vinklar testade och svagare budskap totalt.
Lösningen: generera personabaserade Google Docs-utkast från Sheets-recensioner
Det här n8n-arbetsflödet börjar med ett enkelt formulär där du klistrar in Drive-mapp-ID:n, din URL till bascopy i Google Docs och ett Google Docs-dokument med produktfunktioner/USP:ar. Om du har ett Google Sheet fullt av recensioner hämtar det även dem, tar ett urval enligt ett angivet antal och gör om råa recensionsrader till felfri “kundröst”-text. Sedan extraherar en AI-agent insikter, mappar dem mot mänskliga behov (med ett Maslow-inspirerat perspektiv) och skriver ett återanvändbart kundanalysdokument för ditt erbjudande. Därifrån tar arbetsflödet fram rubriker och hooks med value stacking-principer (Hormozi-inspirerat) och genererar sedan flera säljsidevarianter där varje persona får sin egen ton, invändningar, brådska och inramning. Till sist skapar det ett Google Doc per variant i den mapp du valt, plus ett separat analysdokument som du kan återanvända senare.
Arbetsflödet startar från en formulärinsändning, inte ett kodprojekt. Det hämtar din bascopy och feature-dokumentet, blandar in recensionsbaserade bevis och producerar en liten batch av Google Docs som är redo att redigera. Du kommer fortfarande redigera, men du redigerar starka utkast i stället för att bygga sidor från noll.
Det du får: automatisering vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du vill ha 6 säljsidevarianter för en lansering. Manuellt lägger många cirka 2 timmar per variant på att hämta recensioner, skriva om avsnitt och hålla påståenden raka, vilket är ungefär 12 timmar innan riktig redigering ens börjar. Med det här arbetsflödet skickar du in formuläret på cirka 10 minuter och låter det sedan generera 6 Google Docs i bakgrunden (räkna med cirka 20–30 minuter beroende på din AI- och Drive-hastighet). Nu är ditt “stora jobb” att granska och putsa, inte att bygga utkast från grunden.
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 och hämta kundrecensioner.
- Google Docs för att hämta bascopy och skapa varianter.
- OpenRouter API-nyckel (hämta den från din OpenRouter-dashboard).
Svårighetsnivå: Medel. Du kopplar Google-credentials, klistrar in Drive-mapp-ID:n och gör lätt felsökning om någon behörighet är fel.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En formulärinsändning startar allt. Du anger två Drive-mapp-ID:n, ett filnamn, URL:en till bascopy i Google Docs och ditt dokument med produktfunktioner/USP:ar. Valfria fält inkluderar URL till recensionsarket, hur många recensioner som ska samplas, en målstad och hur många kopior du vill ha (upp till 20).
Dina källdokument hämtas och normaliseras. Arbetsflödet hämtar bascopy- och feature-dokumentet och hämtar sedan dina recensioner från Google Sheets. Om recensioner saknas förgrenar det, så att du inte bränner AI-anrop på tom input.
Recensioner blir strukturerade insikter, inte en klistra-in-hög. Det blandar och begränsar antalet recensioner, mappar nyckelfält, aggregerar texten och kör sedan en AI-pass “recensionsinsikt” för att extrahera teman, invändningar och bevis. Den analysen sparas i ett dedikerat Google Doc så att du kan återanvända den för framtida sidor.
Personas styr varianter och output. Ytterligare en AI-pass gör persona-analys (Maslow-inspirerade behov), tar fram rubrikförslag och genererar sedan fulla advertorial-/sales copy-varianter. En batch-loop skapar ett Google Doc per variant i din valda mapp och infogar sedan utkasttexten i varje fil.
Du kan enkelt ändra hur många recensioner som samplas för att matcha din nisch och recensionsvolym. Du kan också ändra personamixen och tonriktlinjerna. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera formulärtriggern
Konfigurera intake-formuläret så att arbetsflödet kan samla in alla nödvändiga URL:er, ID:n och copyparametrar innan några dokument- eller AI-steg körs.
- Lägg till och öppna Form Intake Trigger.
- Ställ in Form Title på
Copywriting Intake Form. - Verifiera att formulärfälten inkluderar Customer Analysis Folder ID, File Name, Base copy (Google Docs URL), URL of Product Reviews Tab (Google Sheets), Product Feature/USPs Doc, Number of Copies och Number of reviews to use.
- Säkerställ att triggern kopplas direkt till Fetch Base Copy som första steg i flödet.
Steg 2: koppla Google Docs och Sheets
Konfigurera hämtning av dokument och kalkylark så att arbetsflödet kan hämta bas-copy, produktfunktioner och recensionsdata.
- Öppna Fetch Base Copy och ställ in Document URL till
{{ $json['Base copy (Google Docs URL)'] }}. - Inloggningsuppgifter krävs: Koppla era googleDocsOAuth2Api-inloggningsuppgifter i Fetch Base Copy.
- Öppna Fetch Product Features och ställ in Document URL till
{{ $('Form Intake Trigger').item.json['Product Feature/USPs Doc'] }}. - Inloggningsuppgifter krävs: Koppla era googleDocsOAuth2Api-inloggningsuppgifter i Fetch Product Features.
- Öppna Retrieve Review Sheet och ställ in kalkylarkets URL till
{{ $('Form Intake Trigger').item.json["URL of Product Reviews Tab (Google Sheets)"] }}. - Inloggningsuppgifter krävs: Koppla era googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve Review Sheet.
⚠️ Vanlig fallgrop: Om Google Sheets-URL:en pekar på fel flik kommer Retrieve Review Sheet att returnera tom data och flödet stoppar vid Check Reviews Present.
Steg 3: förbered och filtrera recensionsdata
Slumpa, begränsa och omforma recensionsdatan så att AI-analysen använder ett kontrollerat och strukturerat urval av recensioner.
- I Check Reviews Present, bekräfta att villkoret kontrollerar
{{ $json }}med Operator satt tillnotEmpty. - Ställ in Shuffle Reviews Type på
randomför att blanda recensionsordningen. - I Limit Review Count, ställ in Max Items till
{{ $('Form Intake Trigger').item.json['Number of reviews to use'] || 10 }}. - I Map Review Fields, mappa nyckelfält som Review till
Title: {{ $json.review_title }} Body: {{ $json.review_comment }}. - I Aggregate Review Text, aggregera fältet Review så att alla valda recensioner slås ihop för analys.
Steg 4: konfigurera review insights och analysdokument
Generera marknadsföringsinsikter från recensioner och skriv in dem i ett analysdokument.
- Öppna Review Insight Agent och bekräfta att den använder recensionsinputen
{{ $json.Review }}. - Öppna OpenRouter Chat Model A och ställ in Model till
anthropic/claude-sonnet-4. - Inloggningsuppgifter krävs: Koppla era openRouterApi-inloggningsuppgifter i OpenRouter Chat Model A. Den här modellen driver Review Insight Agent.
- I Parse Review Insights, behåll parsing-skriptet som det är för att dela upp agentens output i strukturerade arrayer.
- Öppna Create Analysis Doc och ställ in Title till
{{ $('Form Intake Trigger').item.json['File Name'] }}och Folder ID till{{ $('Form Intake Trigger').item.json["Customer Analysis Folder ID"] }}. - Inloggningsuppgifter krävs: Koppla era googleDocsOAuth2Api-inloggningsuppgifter i Create Analysis Doc och Insert Analysis Text.
- I Insert Analysis Text, behåll Document URL satt till
{{ $json.id }}så att analysen infogas i dokumentet som precis skapades.
Steg 5: konfigurera persona- och rubrikgenerering (parallella grenar)
Generera personas och rubrikpaket, skriv sedan rubrikalternativ till ett Google Doc samtidigt som ni förbereder input för senare copygenerering.
- I Maslow Persona Analysis, bekräfta att input refererar till
{{ $('Aggregate Review Text').item.json.Review }}och{{ $('Review Insight Agent').item.json.output }}. - Säkerställ att Structured Parser B är kopplad till Maslow Persona Analysis. Lägg till inloggningsuppgifter i OpenRouter Chat Model B som driver den här agenten och parsern.
- Öppna OpenRouter Chat Model B och ställ in Model till
anthropic/claude-sonnet-4med Temperature0.7. - Inloggningsuppgifter krävs: Koppla era openRouterApi-inloggningsuppgifter i OpenRouter Chat Model B. Den här modellen är kopplad till Maslow Persona Analysis, Headline Crafting Agent, Sales Copy Generator och alla Structured Parser-noder.
- I Headline Crafting Agent, behåll input som refererar till
{{ $('Fetch Base Copy').item.json.content }},{{ $('Fetch Product Features').item.json.content }},{{ $('Review Insight Agent').item.json.output }}och{{ JSON.stringify($json.output) }}. - Headline Crafting Agent skickar output parallellt till både Map Inputs Set 2 och Create Headline Doc.
- Öppna Create Headline Doc och ställ in Title till
{{ $('Form Intake Trigger').item.json['File Name'] }}{{ " Headline Options" }}och Folder ID till{{ $('Form Intake Trigger').item.json['Advertorial Copy Folder ID'] }}. - Inloggningsuppgifter krävs: Koppla era googleDocsOAuth2Api-inloggningsuppgifter i Create Headline Doc och Insert Headline Options.
Steg 6: generera advertorial-utkast och sales copies
Skapa bas-advertorial-JSON:en, berika den med persona-drivna rubriker och generera flera varianter.
- I Advertorial Draft Agent, verifiera att inputreferenser inkluderar
{{ $('Form Intake Trigger').item.json['Product Name'] }},{{ $('Fetch Base Copy').item.json.content }},{{ $('Parse Review Insights').item.json['Marketing Angles'] }}och{{ $('Fetch Product Features').item.json.content }}. - Säkerställ att Maslow Persona Analysis körs direkt efter Advertorial Draft Agent i flödet.
- I Map Inputs Set 2, bekräfta att de mappade värdena är platshållare eller ersätt dem med dynamiska fält från Form Intake Trigger vid behov.
- Öppna Sales Copy Generator och behåll inputbindningar som
{{ $('Advertorial Draft Agent').item.json.output }}och{{ $('Form Intake Trigger').item.json['Number of Copies'] }}. - Säkerställ att Structured Parser C är kopplad till Sales Copy Generator för att tvinga fram JSON-output.
Steg 7: skapa advertorial-dokument och infoga copy
Dela upp de genererade copy-varianterna, loopa igenom dem och skapa separata Google Docs med infogad JSON-output.
- I Expand Output Items, ställ in Field to Split Out till
output. - Bekräfta att Batch Loop Items är kopplad efter Expand Output Items för att bearbeta varje copy.
- Öppna Generate Advertorial Docs och ställ in Title till
{{ $('Form Intake Trigger').item.json['File Name'] }} {{ "- Copy #" }}{{ $json.copy_number }}. - Ställ in Folder ID i Generate Advertorial Docs till
{{ $('Form Intake Trigger').item.json['Advertorial Copy Folder ID'] }}. - Inloggningsuppgifter krävs: Koppla era googleDocsOAuth2Api-inloggningsuppgifter i Generate Advertorial Docs och Insert Advertorial Text.
- I Insert Advertorial Text, behåll Document URL satt till
{{ $json.id }}och infoga{{ JSON.stringify($('Batch Loop Items').item.json.advertorial_copy) }}.
Steg 8: testa och aktivera ert arbetsflöde
Kör ett komplett test för att säkerställa att dokument skapas och fylls korrekt, och aktivera sedan för produktionsanvändning.
- Klicka på Execute Workflow och skicka in Form Intake Trigger med giltiga Google Docs- och Sheets-URL:er.
- Bekräfta att Create Analysis Doc, Create Headline Doc och Generate Advertorial Docs skapar nya dokument i rätt mappar.
- Verifiera att Insert Analysis Text, Insert Headline Options och Insert Advertorial Text fyller dokumenten med JSON-innehåll.
- Om output är tom, kontrollera datan vid Check Reviews Present och Aggregate Review Text för att säkerställa att recensioner hämtas.
- Växla arbetsflödet till Active för att aktivera formulärtriggern för produktionsanvändning.
Vanliga fallgropar
- Google Docs-credentials kan löpa ut eller kräva specifika behörigheter. Om saker skapar fel, kontrollera först status för credential-kopplingen i n8n och Drive-delningens inställningar för båda mapparna.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre ned i flödet misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du redigera outputen i all evighet.
Vanliga frågor
Cirka 30–45 minuter om dina Google-credentials är redo.
Nej. Du kommer mest klistra in URL:er och mapp-ID:n och sedan koppla credentials för Google och OpenRouter.
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 kostnader för OpenRouter LLM-användning, som beror på vilken modell du väljer och hur många varianter du genererar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är hela poängen. Du kan ändra persona- och behovslogiken genom att justera agenten Maslow Persona Analysis och sedan finjustera hur varianter skrivs i prompten Sales Copy Generator. Vanliga anpassningar är att lägga till regler för din varumärkesröst, ändra antal kopior (1–20) och byta vilka recensionsfält som prioriteras i Map Review Fields.
Oftast är det en OAuth-token som löpt ut eller att fel Google-konto är anslutet. Koppla om Google Docs OAuth2 i n8n och bekräfta sedan att de två Drive-mapparna är delade med samma konto. Kontrollera också att URL:en till bascopy och URL:en till produktfunktioner-dokumentet är åtkomliga (en “begär åtkomst”-skärm kommer i tysthet att stoppa körningen). Om du genererar många varianter kan du också slå i Google API-kvoter, så det hjälper att sprida ut körningarna.
Upp till 20 varianter per körning, eftersom intake-formuläret låter dig ange Number of Copies från 1 till 20.
För generering av flera varianter, förgreningar och loopar är n8n oftast ett bättre val. Det här arbetsflödet bygger på batchning, strukturerad parsning och flera AI-“agent”-steg, och den komplexiteten blir klumpig (och dyr) i enklare 2-stegsverktyg. Zapier eller Make kan fortfarande fungera om allt du vill ha är “ny rad i Sheets → skapa ett Doc”, men det ger dig inte personadrivna varianter med återanvändbar analys. Det finns också en kontrollfaktor: att self-hosta n8n betyder att du inte betalar per ministeg i skala. Prata med en automationsexpert om du vill ha hjälp att välja den enklaste stacken för din volym.
När detta väl rullar krymper ditt “variantproblem” till en granska-och-redigera-uppgift. Arbetsflödet tar hand om den repeterbara strukturen och bevisen så att du kan fokusera på de sista 10% som faktiskt säljer.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.