Du börjar med ett ämne. Sedan förökar sig flikarna. Länkar i ett dokument, anteckningar i ett verktyg du aldrig öppnar igen, källor inklistrade i ett kalkylark “för senare”. Senare kommer aldrig.
Den här Tavily Sheets automation träffar content marketers först, ärligt talat. Men byråstrateger som bygger kundbriefar och grundare som skriver thought leadership känner samma tröghet. Du vill ha ett researchat, källbelagt utkast snabbt, utan att tappa spåret av bevisen.
Det här arbetsflödet gör ett inskickat ämne till en Markdown-rapport för research och sparar sedan intro, innehållsförteckning, avsnitt och klickbara källor i Google Sheets. Du får se hur det fungerar, vad du behöver och var team vanligtvis kör fast.
Så fungerar den här automationen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: Tavily + Google Sheets: researchrapporter, klara snabbt
flowchart LR
subgraph sg0["Form Submission Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Outline Topic Planner", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine A", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Five Topic Parser", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Intro Draft Agent", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine B", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Distribute Topics", pos: "b", h: 48 }
n6["<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/>Combine Streams A"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Topic Fields", pos: "b", h: 48 }
n8["<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/>Combine Streams B"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Expand Topic List", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Retrieve Source List", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine C", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Source Analysis Agent", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Update Sources Sheet", pos: "b", h: 48 }
n14@{ icon: "mdi:database", form: "rounded", label: "Fetch All Content", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Generate Contents Plan", pos: "b", h: 48 }
n16@{ icon: "mdi:database", form: "rounded", label: "Write ToC Sheet", pos: "b", h: 48 }
n17@{ icon: "mdi:database", form: "rounded", label: "Store Intro Sheet", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Parse Title Intro Chapters", pos: "b", h: 48 }
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/form.svg' width='40' height='40' /></div><br/>Form Submission Trigger"]
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate Records", pos: "b", h: 48 }
n21@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Engine D", pos: "b", h: 48 }
n22["<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/>External Search Request"]
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Search Results", pos: "b", h: 48 }
n24["<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/>Transform Results Script"]
n25@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Draft Output", pos: "b", h: 48 }
n26@{ icon: "mdi:robot", form: "rounded", label: "Section Writer Agent", pos: "b", h: 48 }
n27@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Source Output", pos: "b", h: 48 }
n28["<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/>Combine Section Data"]
n29@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Topic Items", pos: "b", h: 48 }
n30@{ icon: "mdi:database", form: "rounded", label: "Read Topic Sheet", pos: "b", h: 48 }
n31["<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/>Extract Section Items"]
n24 --> n26
n24 --> n27
n3 --> n17
n6 --> n20
n8 --> n6
n28 --> n20
n12 --> n13
n22 --> n23
n26 --> n25
n2 -.-> n0
n5 --> n8
n17 --> n6
n7 --> n9
n9 --> n8
n23 --> n24
n25 --> n31
n25 --> n28
n27 --> n28
n29 --> n30
n10 --> n12
n0 --> n3
n0 --> n5
n0 --> n7
n31 --> n28
n13 --> n14
n30 --> n10
n14 --> n15
n20 --> n29
n20 --> n22
n15 --> n16
n19 --> n0
n1 -.-> n0
n4 -.-> n3
n11 -.-> n12
n11 -.-> n15
n21 -.-> n26
n18 -.-> n3
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 n19 trigger
class n0,n2,n3,n12,n15,n18,n26 ai
class n1,n4,n11,n21 aiModel
class n10,n13,n14,n16,n17,n30 database
class n22 api
class n24,n31 code
classDef customIcon fill:none,stroke:none
class n6,n8,n19,n22,n24,n28,n31 customIcon
Problemet: research sprids över verktyg (och det gör även din tid)
Research ska minska risken i det du skriver. I stället skapar den ofta sitt eget kaos. Du söker, öppnar tio flikar, skummar, kopierar länkar, klistrar in citat och försöker sedan minnas vilken källa som stödde vilken poäng. Under tiden är “utkastet” fortfarande en tom sida. Även när du får ihop det blir källhanteringen skör: trasiga länkar, saknade referenser och ett dokument som inte visar hur du kom fram till det när en kund (eller redaktör) frågar: “Var kommer det här ifrån?” Det är inte hårt arbete som gör ont. Det är det ständiga hoppandet mellan sammanhang.
Friktionen byggs på. Här är var det ofta faller isär i verkligheten.
- Du lägger runt 2 timmar på att samla källor och känner dig ändå för dåligt källbelagd.
- Anteckningar finns på tre ställen, så du läser om samma artiklar nästa vecka.
- Din disposition och dina källor hänger inte ihop, vilket gör att “faktakoll” hamnar sist.
- När du delegerar research får du en hög länkar utan struktur eller användbara avsnitt.
Lösningen: Tavily research + AI-skrivande, lagrat strukturerat i Sheets
Det här n8n-arbetsflödet tar ett enda ämnesinskick och gör det till en djup, organiserad researchrapport i Markdown. Det börjar med att använda en AI-agent (via OpenRouter) för att generera fem underämnen som gör ämnet faktiskt researchbart, inte luddigt. Sedan tar det fram en arbetstitel, en introduktion och en innehållsförteckning så att du slipper stirra på en tom sida. För varje underämne anropar arbetsflödet Tavily för att hämta de främsta källorna (fem per avsnitt), analyserar källorna och använder dem för att skriva detaljerat Markdown-innehåll som är förankrat i bevisen. Till sist sparar det intro, innehållsförteckning, avsnittsutkast och klickbara källor i Google Sheets och skapar en prydlig “researchdatabas” som du kan återanvända när du senare skriver blogginlägg eller kundleveranser.
Arbetsflödet startar med en formulärtrigger. Därifrån planerar det dispositionen, samlar källor via Tavilys Search API och skriver avsnittsutkast med en AI-agent som använder källorna som kontext. Allt landar i Google Sheets, så dina länkar, anteckningar och utkast alltid finns på ett ställe.
Vad du får: automation vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar två researchade inlägg per vecka. Manuellt kanske du lägger cirka 2 timmar per inlägg på att samla källor (öppna flikar, kopiera länkar, klistra in utdrag) plus ytterligare en timme på att göra den röran till en disposition, alltså runt 6 timmar i veckan bara för att nå “redo att skriva”. Med det här arbetsflödet skickar du in ämnet i ett formulär (2 minuter) och låter sedan flödet generera fem underämnen, hämta cirka 25 källor och skriva Markdown-avsnitt medan du gör något annat. Även om du lägger en timme på att granska och forma outputen får de flesta team tillbaka runt 3 timmar per vecka direkt.
Det du behöver
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra källor, innehållsförteckning och utkast.
- Tavily för att hämta de främsta källorna per underämne.
- OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard).
Kunskapsnivå: Nybörjare. Du kopplar konton, klistrar in API-nycklar och matchar dina kolumnrubriker i Google Sheet mot 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
Ämnesinskick startar allt. En formulärtrigger startar arbetsflödet i samma ögonblick som du skickar in ett ämne, så du slipper släpa runt på prompts eller copy-pasta mellan flera verktyg.
Dispositionen planeras innan sökningen börjar. En AI-agent genererar fem fördjupande underämnen och tar sedan fram en arbetstitel, ett intro och en innehållsförteckning så att researchen har en tydlig destination.
Varje underämne får riktiga källor från Tavily. Arbetsflödet loopar igenom underämnena, skickar varje till Tavily via HTTP-begäran, delar upp resultaten och omvandlar dem till en konsekvent struktur som en AI-skribent faktiskt kan använda.
Markdown-avsnitt och källistor sparas i Sheets. Det skriver intro och innehållsförteckning på rätt plats, uppdaterar ett källblad med klickbara länkar och lagrar avsnittsutkast så att du kan granska, redigera och återanvända dem senare.
Du kan enkelt justera antalet underämnen eller källor för att matcha önskat djup. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Konfigurera arbetsflödets startpunkt så att nya formulärinskick kan initiera research-pipelinen.
- Lägg till och öppna Form Submission Trigger för att definiera formulärfälten som krävs för ämnesinmatning.
- Låt webhooken vara aktiverad så att inskick kan starta Outline Topic Planner automatiskt.
- Bekräfta att Form Submission Trigger är kopplad till Outline Topic Planner i canvasen.
Steg 2: Anslut Google Sheets
Det här arbetsflödet läser och skriver till flera ark för källor, ämnen, introduktioner och innehållsförteckningar.
- Öppna varje Google Sheets-nod och anslut autentiseringsuppgifter.
- Använd samma kalkylarksval och arknamn i Retrieve Source List, Update Sources Sheet, Fetch All Content, Write ToC Sheet, Store Intro Sheet och Read Topic Sheet.
- Verifiera läs-/skrivbehörigheter för alla flikar som används av dessa noder.
Steg 3: Konfigurera AI för ämnesplanering och utkast till introduktion
Konfigurera AI-agenterna och deras språkmodeller så att de producerar ämnen och introduktioner.
- I Outline Topic Planner, välj OpenRouter Chat Engine A som språkmodell.
- Koppla Five Topic Parser till Outline Topic Planner som output parser.
- I Intro Draft Agent, välj OpenRouter Chat Engine B som språkmodell och koppla Parse Title Intro Chapters som output parser.
- Bekräfta exekveringsflödet: Outline Topic Planner skickar output till Intro Draft Agent, Distribute Topics och Assign Topic Fields parallellt.
Steg 4: Konfigurera ämnesdistribution och batchning
Dela upp och slå ihop ämnesoutput för att förbereda efterföljande bearbetning och batchning.
- Säkerställ att Assign Topic Fields routas till Expand Topic List och sedan till Combine Streams B.
- Anslut Distribute Topics till Combine Streams B så att båda strömmarna slås ihop.
- Routa Combine Streams B till Combine Streams A och därefter till Iterate Records för batchhantering.
- Bekräfta att Store Intro Sheet matar in i Combine Streams A för att synkronisera introduktionsutkast med ämnen.
Steg 5: Konfigurera källhämtning och analys
Hämta källor från Sheets, analysera dem med AI och uppdatera källistan.
- Bekräfta att Read Topic Sheet matar in i Retrieve Source List och därefter till Source Analysis Agent.
- Koppla OpenRouter Chat Engine C till Source Analysis Agent som språkmodell.
- Verifiera flödet från Source Analysis Agent till Update Sources Sheet och därefter till Fetch All Content.
Steg 6: Konfigurera extern sökning och utkast för avsnitt
Kör externa sökningar, transformera resultat och skriv avsnitt med AI parallellt.
- Ställ in External Search Request för att fråga er sök-API-endpoint och skicka resultaten till Split Search Results.
- Säkerställ att Split Search Results flödar in i Transform Results Script.
- Bekräfta parallell exekvering: Transform Results Script skickar output till både Section Writer Agent och Aggregate Source Output parallellt.
- Koppla OpenRouter Chat Engine D till Section Writer Agent som språkmodell.
Steg 7: Aggregera utkast och bygg innehållsplanen
Aggregera avsnittsutkast och källor, och skapa sedan innehållsförteckningen.
- Verifiera att Section Writer Agent skickar output till Aggregate Draft Output.
- Bekräfta parallell exekvering: Aggregate Draft Output skickar output till både Extract Section Items och Combine Section Data parallellt.
- Slå ihop inputs i Combine Section Data från Aggregate Source Output, Extract Section Items och Aggregate Draft Output innan Iterate Records-looparna.
- Säkerställ att Fetch All Content matar Generate Contents Plan och därefter till Write ToC Sheet.
Steg 8: Testa och aktivera ert arbetsflöde
Kör ett komplett test för att verifiera output i alla ark och bekräfta att AI-stegen exekveras korrekt.
- Klicka på Execute Workflow och skicka in ett testformulär till Form Submission Trigger.
- Kontrollera att ämnesoutput visas i Google Sheets och att Store Intro Sheet och Write ToC Sheet får nya rader.
- Bekräfta att Update Sources Sheet fylls i och att sökdrivet innehåll slutförs hela vägen till Aggregate Draft Output.
- När resultaten ser korrekta ut, växla arbetsflödet till Active för produktion.
Vanliga fallgropar
- Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först autentiseringen i n8n och delningsinställningarna för kalkylarket.
- Tavily (HTTP-begäranden) kan slå i rate limits när du kör stora batcher. Om du ser intermittenta fel, sakta ner loopen genom att minska batchstorleken eller glesa ut anropen.
- Standardprompter i OpenRouter AI-agenter är generiska. Lägg in din tonalitet tidigt (ton, målgrupp, citeringsstil), annars kommer du att skriva om varje avsnitt för hand.
Vanliga frågor
Cirka 30 minuter om dina API-nycklar och ditt Google Sheet är redo.
Nej. Du kopplar främst konton och klistrar in API-nycklar. Den enda “tekniska” delen är att matcha kolumnerna i ditt Google Sheet mot fälten som arbetsflödet skriver.
Ja. n8n har ett gratis alternativ för egen hosting 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- och Tavily-API-användning.
Två alternativ: n8n Cloud (hanterad tjänst, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, men du bör ändra på två ställen så att allt förblir konsekvent. Minska inställningen för “topp 5 källor” i Tavily-sökanropet (steget HTTP Request) och uppdatera skrivprompten i Section Writer Agent så att den inte förväntar sig fem källhänvisningar varje gång. Vanliga justeringar är att använda tre källor för snabba inlägg, generera fler än fem underämnen för pelarsidor och skriva kortare avsnitt för nyhetsbrev.
Oftast är det ett behörighetsproblem. Säkerställ att Google-kontot som är kopplat i n8n har redigeringsåtkomst till exakt det kalkylarket, och kontrollera sedan autentiseringen igen i Google Sheets-noderna, som “Write ToC Sheet” eller “Store Intro Sheet”. Om det fortfarande fallerar har ofta fliknamnet i arket eller de förväntade kolumnrubrikerna ändrats, så att noden inte hittar var den ska skriva.
Många. På n8n Cloud Starter begränsas du av månatliga körningar, och varje rapport använder flera körningar eftersom den loopar igenom underämnen och källor. Om du kör med egen hosting finns inget tak för körningar, så det beror främst på serverstorlek plus rate limits i Tavily/OpenRouter.
För det här användningsfallet är svaret oftast ja. Arbetsflödet kräver loopar, att slå ihop strömmar, att tolka strukturerad AI-output och att hantera batchar, vilket är områden där n8n brukar kännas mer flexibelt och billigare. Zapier eller Make kan fungera om du förenklar flödet (färre underämnen, färre skrivningar), men så fort du vill ha “research + skriv + lagra prydligt” kommer du att känna begränsningarna. Egen hosting är också viktig här eftersom research-flöden kör mycket. Prata med en automationsexpert om du vill ha hjälp att välja den mest strukturerade lösningen för din volym.
Du får en repeterbar researchmotor som lämnar ett tydligt spår i Google Sheets. Sätt upp den en gång och använd sedan de återvunna timmarna till att publicera mer (eller bara andas).
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.