Sökordsanalys blir snabbt rörig. Du kör en rapport, klistrar in resultat i ett kalkylark, justerar kolumner, tappar datumet, och gör sedan om allt nästa vecka och inget stämmer längre.
Innehållsmarknadsförare märker det när planeringen går långsamt. SEO-specialister märker det när uppföljningen blir rena gissningen. Och byråledare märker det när varje kund behöver ”en export till”. Den här DataForSEO Sheets-automationen förvandlar kaoset till en strukturerad, daterad historik som du faktiskt kan använda.
Du sätter upp ett n8n-flöde som hämtar sökords-, SERP- och People Also Ask-insikter från DataForSEO och lägger till dem i rätt Google Sheet vid varje körning. Ingen kolumnförskjutning. Ingen saknad kontext.
Så fungerar automationen
Här är hela flödet du kommer att sätta upp:
n8n Workflow Template: DataForSEO till Google Sheets: byggd sökordshistorik
flowchart LR
subgraph sg0["On form submission 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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n1["<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/>related keyword"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out1", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out2", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out3", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out4", pos: "b", h: 48 }
n10["<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/>keyword suggestion"]
n11@{ icon: "mdi:database", form: "rounded", label: "keyword suggestion sheet", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>get autocomplete"]
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/>get subtopics"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>people also ask"]
n15@{ icon: "mdi:database", form: "rounded", label: "get autocomplete sheet", pos: "b", h: 48 }
n16@{ icon: "mdi:database", form: "rounded", label: "get subtopics sheet", pos: "b", h: 48 }
n17@{ icon: "mdi:database", form: "rounded", label: "people also ask sheet", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields4", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields6", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out6", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields5", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields2", pos: "b", h: 48 }
n23@{ icon: "mdi:database", form: "rounded", label: "Add operation to main sheet ..", pos: "b", h: 48 }
n24@{ icon: "mdi:database", form: "rounded", label: "related keyword sheet", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter people also ask", pos: "b", h: 48 }
n26@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If fields not empty", pos: "b", h: 48 }
n27@{ icon: "mdi:database", form: "rounded", label: "Add to Sheet", pos: "b", h: 48 }
n28@{ icon: "mdi:database", form: "rounded", label: "Add to Sheet1", pos: "b", h: 48 }
n29@{ icon: "mdi:database", form: "rounded", label: "Add to Sheet2", pos: "b", h: 48 }
n30@{ icon: "mdi:database", form: "rounded", label: "Add to Sheet3", pos: "b", h: 48 }
n31@{ icon: "mdi:database", form: "rounded", label: "Add to Sheet4", pos: "b", h: 48 }
n2 --> n24
n2 --> n11
n2 --> n15
n2 --> n16
n2 --> n17
n5 --> n4
n6 --> n22
n7 --> n18
n8 --> n19
n9 --> n25
n20 --> n21
n3 --> n23
n4 --> n27
n22 --> n28
n18 --> n29
n21 --> n31
n19 --> n30
n13 --> n8
n14 --> n9
n1 --> n5
n12 --> n7
n0 --> n26
n10 --> n6
n16 --> n13
n17 --> n14
n24 --> n1
n25 --> n20
n15 --> n12
n11 --> n10
n26 --> n3
n23 --> n2
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,n25,n26 decision
class n11,n15,n16,n17,n23,n24,n27,n28,n29,n30,n31 database
class n1,n10,n12,n13,n14 api
classDef customIcon fill:none,stroke:none
class n0,n1,n10,n12,n13,n14 customIcon
Varför det här spelar roll: sökordsanalys utan kalkylarksspiralen
SEO-research är inte svårt för att data saknas. Det är svårt för att arbetsflödet runt datan är skört. En kollega exporterar SERP:ar till en CSV, en annan klistrar in ”People Also Ask” i en separat flik, och någon annan döper om kolumner för att passa sin egen mall. En vecka senare försöker du jämföra trender och inser att arket är ett lapptäcke. Än värre: datumet saknas, så du kan inte avgöra om en rankingförändring hände i tisdags eller för tre månader sedan. Så här faller bra innehållsmöjligheter mellan stolarna.
Friktionen byggs på. Det här är punkterna där det oftast skapar fel.
- Exporter matchar inte din arkstruktur, så varje körning börjar med rensning.
- SERP- och PAA-insikter ligger på olika ställen, vilket gör att planeringen sker utan helhetsbilden.
- När datum inte loggas konsekvent blir ”trenduppföljning” en magkänsla, inte en process.
- Manuell copy-paste bjuder in småfel som i tysthet förstör jämförelser och rapportering.
Det du bygger: DataForSEO-insikter loggade till Sheets automatiskt
Det här flödet ger dig en repeterbar pipeline för SEO-research. Det börjar med en enkel formulärinlämning i n8n (eller en schemalagd körning) där du väljer vilken typ av research du vill göra, som relaterade sökord, sökordsförslag, autocomplete-idéer, underteman eller People Also Ask-frågor. n8n skickar sedan rätt HTTP-anrop till DataForSEO, hämtar tillbaka det råa JSON-svaret och normaliserar det till korrekt formaterade rader. Om Google Sheet (eller den specifika fliken för den operatorn) inte finns ännu skapar flödet den åt dig. Till sist lägger det till resultaten med konsekventa kolumner och ett datum, så att varje körning blir en del av en växande sökordshistorik istället för en engångsexport.
Flödet startar från formulärtriggern, validerar dina indata och skickar sedan vidare via en switch som väljer rätt DataForSEO-endpoint. När datan expanderats till enskilda objekt mappar n8n fält till ett standardiserat format och lägger till rader i matchande Google Sheet-flik.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du analyserar 20 sökord varje vecka och vanligtvis hämtar fem dataset per sökord (relaterade, förslag, autocomplete, underteman och PAA). Om du lägger ungefär 3 minuter på att exportera, formatera och klistra in varje dataset blir det cirka 300 minuter, eller 5 timmar i veckan. Med det här flödet skickar du in en begäran en gång och låter n8n lägga till allt i rätt Google Sheet-flik; din ”tidsåtgång” hamnar närmare 10 minuter för uppsättning och granskning. Det är en riktig eftermiddag tillbaka, varje vecka.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- DataForSEO-konto för åtkomst till sökords- och SERP-data.
- Google Sheets för att lagra och följa upp sökordshistorik.
- DataForSEO API-uppgifter (hämta dem i din DataForSEO-dashboard).
Svårighetsgrad: Nybörjare. Du kopplar konton, klistrar in uppgifter och ändrar några fält som plats och språk.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En formulärinlämning triggar körningen. Du anger sökordet (eller en sökordsuppsättning) och väljer operationstyp, som relaterade sökord, förslag, autocomplete, underteman eller PAA.
Dina indata valideras och mappas. En If-nod kontrollerar obligatoriska fält så att du inte bränner API-anrop på tomma sökord. Sedan standardiserar en Set-nod det som resten av flödet förväntar sig, vilket håller den fortsatta mappningen stabil.
n8n routar till rätt DataForSEO-endpoint. En switch väljer rätt gren, och därefter hämtar HTTP Request-noder datasetet du valt. Split out- och batch-steg expanderar API-svaret till radformade objekt så att det blir enkelt att lagra.
Google Sheets-flikar skapas och fylls. För varje operator skapar flödet det relaterade arket vid behov, mappar fält till konsekventa kolumner och lägger sedan till rader med ett datum så att din historik växer över tid.
Du kan enkelt ändra operator-alternativen för att lägga till SERP-analys eller konkurrentresearch utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera formulärtriggern
Skapa formuläret som samlar in nyckelord, plats, språk och operationstyp från användare.
- Lägg till noden Form Submission Trigger som workflow-trigger.
- Ställ in Form Title till
SEO Related Keyword Finder🚀och Form Description till✏️ Enter your target keyword\n📍 Choose the location\n🌐 Select the language. - Konfigurera fält för keyword, location_name (rullgardinsmeny), language_name (rullgardinsmeny) och Operation (rullgardinsmeny).
- Valfritt: behåll stylingen options.customCss om ni vill att neon-temat ska användas på formuläret.
Steg 2: validera och mappa inkommande data
Validera obligatoriska indata och normalisera fältnamn för efterföljande noder.
- I Validate Input Fields behåller ni de fyra notEmpty-kontrollerna för
{{$json.keyword}},{{$json.location_name}},{{$json.language_name}}och{{$json.Operation}}. - I Map Request Fields skapar ni tilldelningar som mappar operation till
{{$json.Operation}}, keyword till{{$json.keyword}}, location_name till{{$json.location_name}}och language_name till{{$json.language_name}}.
Steg 3: anslut Google Sheets och logga sammanfattningen
Skriv den inkommande begäran till ett sammanfattningsark och routa sedan workflowet baserat på vald operation.
- Öppna Append Summary Row och ställ in Operation till
appendmed Authentication satt tillserviceAccount. - Mappa kolumner: Time till
{{$('Form Submission Trigger').item.json.submittedAt}}, keyword till{{$json.keyword}}, operation till{{$json.operation}}, language_name till{{$json.language_name}}och location_name till{{$json.location_name}}. - Inloggningsuppgifter krävs: anslut era googleApi-inloggningsuppgifter i Append Summary Row.
- I Route Operation Type behåller ni reglerna som matchar
related keywords🔑,keyword suggestion💡,get autocomplete🧩,get subtopics📚ochpeople also ask🔍på{{$json.operation}}.
[YOUR_ID]) och skapar nya flikar per operation med {{$json.keyword}} [{{$json.operation}}] som titel.Steg 4: konfigurera flödet för relaterade nyckelord
Det här flödet skapar en flik i arket och hämtar relaterade nyckelord från DataForSEO och lägger sedan till rader.
- I Create Related Sheet ställer ni in Operation till
createoch Title till={{ $json.keyword }} [{{ $json.operation }}]. - Inloggningsuppgifter krävs: anslut era googleApi-inloggningsuppgifter i Create Related Sheet.
- I Related Keywords API behåller ni URL som
https://api.dataforseo.com/v3/dataforseo_labs/google/related_keywords/liveoch JSON Body med{{$('Route Operation Type').item.json.keyword}},{{$('Route Operation Type').item.json.location_name}}och{{$('Route Operation Type').item.json.language_name}}. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i Related Keywords API.
- I Expand Related Items ställer ni in Field To Split Out till
tasks[0].result[0].items. - I Map Related Fields mappar ni fält som related keyword till
{{ $json.keyword_data.keyword }}och SERP Analysis till{{$json.keyword_data.serp_info.serp_item_types.join(",")}}. - I Append Related Rows ställer ni in Operation till
appendoch Sheet Name till={{ $('Create Related Sheet').item.json.sheetId }}. - Inloggningsuppgifter krävs: anslut era googleApi-inloggningsuppgifter i Append Related Rows.
Steg 5: konfigurera flöden för förslag och autocomplete
Konfigurera grenarna för nyckelordsförslag och autocomplete som skapar ark, anropar API:er, delar upp resultat, mappar fält och lägger till rader.
- För grenen med förslag konfigurerar ni Create Suggestion Sheet med Title
={{ $json.keyword }} [{{ $json.operation }}]och ställer in Operation tillcreate. - Inloggningsuppgifter krävs: anslut era googleApi-inloggningsuppgifter i Create Suggestion Sheet och Append Suggestion Rows.
- I Keyword Suggestion API behåller ni URL
https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/liveoch JSON body med samma{{$('Route Operation Type').item.json.*}}-uttryck. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i Keyword Suggestion API.
- För autocomplete konfigurerar ni Create Autocomplete Sheet och behåller Title som
={{ $json.keyword }} [{{ $json.operation }}]. - I Autocomplete API behåller ni URL
https://api.dataforseo.com/v3/serp/google/autocomplete/live/advancedoch JSON body medclientsatt tillgws-wiz-serp. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i Autocomplete API och era googleApi-inloggningsuppgifter i Append Autocomplete Rows.
tasks[0].result[0].items för uppdelning, så bekräfta att API-svaren innehåller den arrayen.Steg 6: konfigurera flöden för underämnen och people also ask
Konfigurera grenarna för underämnen och PAA som genererar ämnesidéer och frågor.
- I Create Subtopics Sheet och Create PAA Sheet behåller ni Title satt till
={{ $json.keyword }} [{{ $json.operation }}]och Operation satt tillcreate. - Inloggningsuppgifter krävs: anslut era googleApi-inloggningsuppgifter för Create Subtopics Sheet, Append Subtopic Rows, Create PAA Sheet och Append PAA Rows.
- I Subtopics API behåller ni URL
https://api.dataforseo.com/v3/content_generation/generate_sub_topics/liveoch JSON body med{{ $('Route Operation Type').item.json.keyword }}. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i Subtopics API och People Also Ask API.
- I People Also Ask API uppdaterar ni URL från
https://api.dataforseo.[CONFIGURE_YOUR_API_KEY]till er riktiga endpoint innan ni testar. - Behåll Filter PAA Type inställd på att filtrera på
{{$json.type}}lika medpeople_also_ask, och dela sedan upp med Expand PAA Details meditems.
[CONFIGURE_YOUR_API_KEY] i URL:en kommer anropet att misslyckas. Ersätt den med er faktiska DataForSEO-endpoint.Steg 7: testa och aktivera ert workflow
Kör ett manuellt test för att verifiera att varje gren skriver till sitt respektive ark och aktivera sedan workflowet.
- Klicka på Execute Workflow och skicka in formuläret Form Submission Trigger med ett nyckelord, plats, språk och en operation.
- Bekräfta att Append Summary Row lägger till en ny rad i arket
summaryoch att rätt operationsflöde körs. - Verifiera att det operationsspecifika arket skapas (t.ex. av Create Related Sheet) och att rader läggs till (t.ex. av Append Related Rows).
- Om en gren inte returnerar någon data, kontrollera svaren från Related Keywords API, Keyword Suggestion API, Autocomplete API, Subtopics API eller People Also Ask API för schemaändringar.
- När resultaten ser korrekta ut, växla workflowet till Active för att möjliggöra användning i produktion.
Tips för felsökning
- Google Sheets-uppgifter kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först Google-kopplingen i n8n:s lista över Credentials och bekräfta sedan att kontot kan skapa och redigera det aktuella kalkylarket.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- OpenAI-prompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Snabba svar
Cirka 30 minuter om dina DataForSEO- och Google-konton är redo.
Nej. Du kopplar främst inloggningsuppgifter och justerar några mappade fält. Flödet hanterar redan API-anropen och formateringen.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för DataForSEO API-användning baserat på hur många sökord och endpoints du träffar per körning.
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 klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är huvudskälet till att den här mallen är användbar. Du kan lägga till en SERP-gren genom att bygga ut switchen ”Route Operation Type” och duplicera mönstret du redan har (Create Sheet → HTTP Request → Split Out → Map Fields → Append Rows). Vanliga anpassningar är att ändra location_code och language_code, logga extra kolumner som CPC eller konkurrens, och lägga till ett AI Agent-steg som sammanfattar ”vad som förändrats sedan förra körningen”. Vill du göra konkurrentresearch kan du routa till en annan DataForSEO-endpoint och skriva till en egen flik så att dina Sheets förblir lättlästa.
Oftast är det ett OAuth-behörighetsproblem eller en utgången token. Återanslut din Google Sheets-credential i n8n och bekräfta sedan att kontot kan skapa nya kalkylark och redigera befintliga. Om arket ligger i en delad enhet, se till att samma Google-konto har åtkomst där också.
Några hundra sökord per körning är vanligt, och du kan skala upp med batchning.
Ofta, ja. Det här flödet bygger på routing, item-expansion och konsekvent fältmappning, och n8n hanterar den typen av logik med flera grenar utan att det blir ett prissättningsproblem. Du får också self-hosting, vilket spelar roll när du gör många sökordshämtningar. Zapier eller Make kan fortfarande funka för ett enkelt ”en endpoint till ett ark”-jobb, men de blir klumpiga när du delar upp items och skriver till flera flikar. Om du är osäker, prata med en automationsexpert så gör vi en snabb rimlighetskontroll av din use case.
När detta väl är igång slutar din SEO-research vara en hög med exporter och börjar fungera som ett system. Sätt upp det, behåll historiken och planera innehåll från ett enda ark som du faktiskt litar på.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.