Sökordsanalys låter enkelt tills du har 40 flikar öppna, kopierar utdrag till ett kalkylark och ändå inte är säker på vilken ”intent” Google belönar i dag. Sedan frågar kunden efter ”luckorna” och plötsligt skriver du om samma rapport som du skrev förra veckan.
Den här SerpAPI Sheets-automationen träffar SEO-strateger först, men byråägare och interna content leads känner av det också. Du vill mata in ett sökord, få ut en tydlig brief med möjligheter och ha en strukturerad logg du kan återanvända senare.
Det här arbetsflödet hämtar live-data från Google SERP (Indien-marknaden), låter AI sammanfatta konkurrensläget, mejlar en kundredo rapport via Gmail och lägger till de strukturerade resultaten i Google Sheets för uppföljning och revisioner.
Så fungerar den här automationslösningen
Se hur detta löser problemet:
n8n Workflow Template: SerpAPI till Google Sheets: SEO-gap loggas strukturerat
flowchart LR
subgraph sg0["Parse Market Analysi Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "LLM Engine for Market Intell..", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Parse Market Analysis Output..", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Keyword from Request..", pos: "b", h: 48 }
n5@{ icon: "mdi:web", form: "rounded", label: "Run Google SERP Search for K..", 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/code.svg' width='40' height='40' /></div><br/>Normalize SERP Results into .."]
n7@{ icon: "mdi:robot", form: "rounded", label: "Analyze Keyword SEO Opportun..", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Receive SEO Keyword Analysis.."]
n9["<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/>Flatten AI Output for Downst.."]
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/code.svg' width='40' height='40' /></div><br/>Map SEO Fields for UI & Repo.."]
n11@{ icon: "mdi:robot", form: "rounded", label: "Generate Client-Ready SEO In..", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "LLM Engine for Insight Forma..", pos: "b", h: 48 }
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Send SEO Opportunity Report ..", pos: "b", h: 48 }
n14@{ icon: "mdi:database", form: "rounded", label: "Log SEO Analysis Result to G..", pos: "b", h: 48 }
n12 -.-> n11
n10 --> n11
n10 --> n14
n1 -.-> n7
n4 --> n5
n9 --> n10
n8 --> n4
n7 --> n9
n6 --> n7
n5 --> n6
n0 -.-> n7
n11 --> n13
end
subgraph sg1["Error Handler Flow"]
direction LR
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Error Handler Trigger", pos: "b", h: 48 }
n3["<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/>Slack: Send Error Alert"]
n2 --> 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 n2 trigger
class n1,n7,n11 ai
class n0,n12 aiModel
class n14 database
class n5,n8 api
class n6,n9,n10 code
classDef customIcon fill:none,stroke:none
class n6,n8,n9,n10,n3 customIcon
Utmaningen: att förvandla SERP:ar till kundklara SEO-insikter
Live-SERP:ar är sanningen, men de är stökiga. Ett enda sökord kan trigga organiska listningar, videor, ”relaterade sökningar” och mönster som bara syns när du zoomar ut. Manuellt fastnar du i tre jobb samtidigt: samla in data, tolka den och paketera den till något som en kund (eller din chef) faktiskt litar på. Och om du inte loggar det du hittar kommer du att göra samma research igen om en månad och låtsas att du inte är irriterad över det. Ärligt talat är det den värsta biten.
Det skalar snabbt. Här är var det faller isär i verkligheten.
- Du lägger cirka en timme per sökord bara på att samla titlar, snippets och konkurrentvinklar från topprankade resultat.
- Search intent gissas i stället för att bevisas, vilket gör att content-briefar glider och antalet revideringar ökar.
- Rapportering blir en copy-paste-rutin, vilket gör att formateringsfel och saknad kontext är vanligt.
- Ingen historisk logg finns, så din ”strategi” är svår att granska när prioriteringar ändras.
Lösningen: live SERP-hämtning + AI-baserad gapanalys + loggning i Sheets
Det här arbetsflödet ger dig en repeterbar pipeline för SEO-research på sökordsnivå. Det startar när ett sökord skickas in via en webhook (en enkel POST-request från ett formulär, verktyg eller internt system). Arbetsflödet strukturerar payloaden, skickar sökordet till SerpAPI för att hämta live Google-resultat för Indien och normaliserar sedan svaret till ett strukturerat dataset du faktiskt kan analysera. Därefter granskar GPT-4o SERP-mönstren och returnerar strikt JSON: intent, konkurrensnivå, innehållsluckor och möjligheter med hög påverkan. Till sist skriver det ett polerat HTML-mejl för en kundredo rapport, skickar via Gmail och lägger till samma strukturerade fält i Google Sheets för uppföljning och revisioner. Om något misslyckas får Slack ett felmeddelande med nod och meddelande.
Arbetsflödet börjar med ”sökord in”. I mitten ger SerpAPI verkligt sökbeteende medan AI gör om det till beslut du kan agera på. I slutet får du två leveranser: ett mejl du kan vidarebefordra i dag och en rad i Sheets som du kan referera till senare.
Vad som förändras: före vs. efter
| Det här eliminerar | Effekten du märker |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du researchar 10 sökord för ett nytt content cluster. Manuellt: räkna med cirka en timme per sökord mellan SERP-scan, organisera anteckningar och skriva en presentabel sammanfattning, alltså i princip en hel arbetsdag. Med det här arbetsflödet skickar du 10 webhook-requests (säg 2 minuter styck), och väntar sedan på att bearbetningen körs klart och att mejlen landar medan du gör annat. Du granskar fortfarande innan du skickar till kund, men du granskar en strukturerad rapport i stället för att bygga en från noll, vilket brukar ge dig cirka 6 timmar tillbaka.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- SerpAPI för att hämta live Google SERP-resultat.
- Google Sheets för att lagra sökordsinsikter historiskt.
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
Kunskapsnivå: Medel. Du kopplar konton, sätter credentials och klistrar in en webhook-URL i systemet som skickar in sökord.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
En sökordsförfrågan når din webhook. Du POST:ar en payload som innehåller målsökordet. Det kan komma från ett formulär, ett internt verktyg, ett kundintag eller en snabb manuell request när du utforskar idéer.
Sökordet struktureras och används för att hämta live SERP:ar. Arbetsflödet plockar ut sökordsfältet, och sedan kör SerpAPI en Google-sökning för den indiska marknaden och returnerar organiska resultat, relaterade sökningar, videofunktioner och metadata som antal resultat.
AI gör SERP-brus till en strukturerad möjlighetsbrief. Rå SERP-output normaliseras till ett konsekvent dataset, och sedan analyserar GPT-4o intent, konkurrens, luckor och rekommenderade format. Arbetsflödet tvingar fram ett strikt JSON-schema och plattar ut det så att nedströmssteg inte blir sköra.
Du får leveranser på två ställen. Gmail skickar en HTML-rapport du kan vidarebefordra (eller kopiera in i din egen mall), och Google Sheets får en ny rad med nyckelfälten för uppföljning, revisioner och framtida planering.
Du kan enkelt ändra målland, rapportformat eller var förfrågan kommer ifrån utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggaren
Sätt upp den inkommande förfrågan som startar arbetsflödet och extraherar keyword-payloaden.
- Lägg till noden Incoming SEO Keyword Webhook och ställ in HTTP Method på
POST. - Ställ in Path till
c8996569-9459-4976-bbdd-b800179b3dc7. - Koppla Incoming SEO Keyword Webhook till Isolate Keyword From Payload.
- I Isolate Keyword From Payload, ställ in tilldelningen body.keyword till
={{ $json.body.keyword }}.
Steg 2: anslut SERP-datakälla
Hämta live-SERP-data för det angivna nyckelordet och normalisera den för analys.
- Lägg till Execute SERP Search India och ställ in q till
={{ $json.body.keyword }}. - Ställ in Additional Fields → num till
10och Additional Fields → uule tillIndia. - Referens krävs: anslut era serpApi-uppgifter i Execute SERP Search India.
- Koppla Execute SERP Search India → Standardize SERP Data Set och behåll angiven jsCode som den är för att normalisera svaret.
Steg 3: sätt upp AI-analysen för SEO-insikter
Analysera normaliserad SERP-data med AI och säkerställ ett strukturerat JSON-svar.
- Lägg till Assess SEO Opportunity AI och behåll Prompt Type som
define. - Ställ in fältet Text i Assess SEO Opportunity AI till hela mallen, inklusive uttryck som
{{ JSON.stringify($json.organic_results, null, 2) }}och JSON-utdataformatet. - Koppla Market Insight LLM Core som språkmodell för Assess SEO Opportunity AI.
- Referens krävs: anslut era openAiApi-uppgifter i Market Insight LLM Core.
- Koppla Structure Market JSON Output som output parser för Assess SEO Opportunity AI och behåll den angivna jsonSchemaExample.
- Observera att Structure Market JSON Output är en AI-subnod; lägg till referenser i den överordnade Market Insight LLM Core, inte i parsern.
Steg 4: transformera och routa AI-utdata
Platta ut AI-resultatet och linjera fält för efterföljande e-post och loggning.
- Koppla Assess SEO Opportunity AI → Flatten AI Result Payload och behåll jsCode enligt angivet.
- Koppla Flatten AI Result Payload → Align SEO Fields for UI och behåll mappningslogiken som matar ut keyword, country, search_intent, competition, content_gaps, content_opportunities, recommended_content_types och confidence.
- Align SEO Fields for UI skickar utdata till både Draft Client SEO Email AI och Append SEO Log to Sheets parallellt.
Steg 5: konfigurera utdataåtgärder (e-post + Sheets)
Skapa ett kundfärdigt mejl och logga analysen till Google Sheets.
- I Draft Client SEO Email AI, behåll promptmallen för HTML-mejl och säkerställ att den tar emot den strukturerade datan.
- Koppla Insight Formatting LLM som språkmodell för Draft Client SEO Email AI.
- Referens krävs: anslut era openAiApi-uppgifter i Insight Formatting LLM.
- Konfigurera Dispatch SEO Report Email med Message och Subject satta till
=SEO Content Opportunity Analyzer, och ställ in HTML Message till={{ $json.output }}. - Referens krävs: anslut era gmailOAuth2-uppgifter i Dispatch SEO Report Email.
- Konfigurera Append SEO Log to Sheets med Operation satt till
appendoch mappa kolumner som Keyword till={{ $json.keyword }}, Timestamp till={{$now}}och Confidence till={{ $json.confidence }}. - Referens krävs: anslut era googleSheetsOAuth2Api-uppgifter i Append SEO Log to Sheets.
Steg 6: lägg till felhantering
Säkerställ att fel fångas upp och skickas till Slack för insyn.
- Aktivera Failure Catch Trigger för att fånga arbetsflödesfel.
- Koppla Failure Catch Trigger → Post Slack Error Notice.
- Ställ in fältet Text i Post Slack Error Notice till
=❌ *Error in API Error Catalog Workflow* *Node:* {{ $json.node.name }} *Message:* {{ $json.error.message }} *Time:* {{ $json.timestamp }}. - Referens krävs: anslut era slackApi-uppgifter i Post Slack Error Notice.
⚠️ Vanlig fallgrop: om Slack-aviseringar inte skickas, verifiera att channelId i Post Slack Error Notice är en giltig kanal som er bot kan komma åt.
Steg 7: testa och aktivera ert arbetsflöde
Validera varje gren och bekräfta att e-post och loggning körs parallellt.
- Klicka på Execute Workflow och skicka en POST-förfrågan till Incoming SEO Keyword Webhook med en JSON-body som
{"keyword":"ai automation for ecommerce"}. - Bekräfta att Execute SERP Search India returnerar resultat och att Assess SEO Opportunity AI producerar strukturerad JSON-utdata.
- Verifiera att Align SEO Fields for UI triggar både Draft Client SEO Email AI och Append SEO Log to Sheets parallellt.
- Kontrollera att Dispatch SEO Report Email skickar ett formaterat HTML-mejl och att Append SEO Log to Sheets lägger till en ny rad.
- När allt är verifierat, växla arbetsflödet till Active för användning i produktion.
Se upp med
- SerpAPI-credentials kan löpa ut eller nå planens gränser. Om resultaten plötsligt kommer tillbaka tomma, kontrollera först din användning i SerpAPI-dashboarden och API-nyckeln som är sparad i n8n.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Oftast inom en timme när dina konton är redo.
Ja, men du vill ha någon som är bekväm med att koppla OAuth-konton i n8n. Ingen kodning krävs för daglig användning när det väl är uppsatt.
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 OpenAI API-användning och din SerpAPI-plan.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger obegränsade exekveringar men kräver grundläggande serveradministration.
Du kan byta inställningarna i ”Execute SERP Search India” för att rikta mot ett annat land eller språk och sedan justera AI-prompterna som genererar den strukturerade JSON:en och HTML-mejlet. Vanliga justeringar är att ändra konkurrensskalan, lägga till fält som ”primär innehållstyp” och skriva slutresultatet till en annan flik i Google Sheets per kund.
Oftast beror det på en ogiltig API-nyckel eller att du har nått SerpAPI:s användningsgränser. Kontrollera SerpAPI-dashboarden och spara sedan om credentialn i n8n. Om sökordet innehåller ovanliga tecken, titta också på steget ”Isolate Keyword From Payload” för att bekräfta att det strukturerade sökordet är det du förväntar dig.
I n8n Cloud beror kapaciteten på din plans månatliga exekveringar; vid egen hosting försvinner exekveringstaket och begränsningen flyttas till din server. I praktiken kör de flesta team detta utan problem för tiotals sökord per dag, eftersom varje körning är ett sökord in och några API-anrop ut.
Ofta, ja. n8n är bättre när du behöver strukturerad parsning, felhantering och flersteglogik utan att betala extra för förgreningar. Det är också enklare att hålla ett revisionsspår eftersom du kontrollerar hela flödet, inklusive Slack-fellarm och hur fält normaliseras innan de hamnar i Sheets. Zapier och Make kan fungera, men komplex JSON-formning och schema-tvingande för AI tenderar att bli klumpigt. Den verkliga avgörande faktorn är volym och komplexitet. Prata med en automationsexpert om du vill ha en snabb rekommendation baserad på ditt exakta arbetsflöde.
Du får samma resultat varje gång: live SERP-bevis, tydliga luckor och en rapport du inte bävar inför att skicka. Sätt upp det en gång och låt sedan arbetsflödet göra repetitivt arbete medan du fokuserar på besluten.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.