Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google Sheets + Claude AI: seo-briefar att redigera

Rickard Andersson Partner, Nodenordic.se

Din process för SEO-briefar är förmodligen inte ”svår”. Den tar bara aldrig slut. Kopiera ett sökord, googla det, öppna tio flikar, skumma rubriker, klistra in anteckningar i ett dokument och försök sedan göra om allt till en metatitel, metabeskrivning, H1 och en användbar disposition utan att missa något uppenbart.

Den här automatiseringen av SEO-briefar träffar content strategists och SEO-ansvariga först. Men byråägare som jonglerar flera kunder och marknadschefer som levererar sidor varje vecka känner också av tröskan. Resultatet är enkelt: briefarna hamnar i ditt Google Sheet, redo för en skribent att ta vid och köra.

Nedan ser du hur arbetsflödet hämtar konkurrenternas struktur, blandar den med din kundkontext och genererar konsekventa meta + H1 + dispositionsutkast i skala.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: Google Sheets + Claude AI: seo-briefar att redigera

Problemet: SEO-briefar är långsamma, inkonsekventa och svåra att skala

Att skriva en bra brief kräver research. Och research tar tid på det mest irriterande sättet: många små steg, mycket kontextväxling och många ”vänta, var klistrade jag in det där?”-ögonblick. Du börjar med en sökordslista i Google Sheets, men det riktiga jobbet sker i sökresultat, på konkurrenters sidor och i de interna anteckningar du kan hitta. Sedan måste någon översätta den röran till metataggar, en H1, intent-guidning och en strukturerad disposition som en skribent kan följa. Gör du det en gång är det okej. Gör du det för 50 sökord blir det hela din vecka.

Det summeras snabbt. Här är var det faller isär.

  • Konkurrentanalysen stressas igenom, så briefarna blir generiska och du publicerar sidor som inte matchar det som redan rankar.
  • Metatitlar, metabeskrivningar och H1:or varierar kraftigt beroende på vem som skriver dem, vilket betyder fler omskrivningar och fler godkännanden.
  • Att lämna över jobb till frilansare blir smärtsamt eftersom ”varför” bakom dispositionen sällan hamnar i dokumentet.
  • Att skala till flera kunder blir en copy-paste-övning, och misstag smyger sig in när du jobbar snabbt.

Lösningen: Förvandla sökordsrader till redigeringsklara briefar i Google Sheets

Det här n8n-arbetsflödet startar med en enkel input: URL:en till ditt Google Sheet-mallark, som redan innehåller din kundkontext och din sökordslista. Därifrån läser det fliken ”Client Information” (företagsbeskrivning, tonalitet och begränsningar) och fliken ”SEO” (sidtyp, sökord, medvetandenivå och mer). Det filtrerar fram rader som faktiskt behöver arbete och bearbetar sedan sökord i batchar så att flödet håller sig stabilt och inte överbelastar dina API:er. För varje sökord hämtar det riktiga sökresultat, crawlar konkurrenters sidor, extraherar deras rubrikstruktur och matar in den konkurrenskontexten i Claude för att generera metataggar, en H1 och en detaljerad content brief. Till sist skriver det tillbaka allt till samma Google Sheet, så överlämningen blir omedelbar.

Arbetsflödet startar när du skickar din Sheet-URL till en n8n-chatwebhook. Sedan kör det SERP-research (via ett API), skrapar upp till fem konkurrent­sidor och använder AI-agenter för att skriva meta-element och en disposition som matchar intent. När det är klart uppdaterar flödet varje rad i Google Sheets och går vidare till nästa sökord.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du har 30 sökord att briefa för en ny tjänstekategori. Manuellt kanske du lägger cirka 10 minuter på att samla SERP-anteckningar och rubriker per konkurrent, och du brukar kolla fem konkurrenter, så det är ungefär 50 minuter innan du ens skriver metatitel, beskrivning, H1 och disposition (säg ytterligare 10 minuter). Det blir runt en timme per sökord, eller 30 timmar totalt. Med det här arbetsflödet klistrar du in Sheet-URL:en en gång och låter det gå i batchar; många team ser att varje rad fylls i efter ungefär 10–20 minuters bearbetningstid, så din insats blir att granska och finjustera i stället för att bygga från noll.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger funkar bra)
  • Google Sheets för din sökordslista och output
  • Anthropic (Claude) för att generera metataggar och briefar
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden)
  • Apify API-nyckel (hämta den i Apify-konsolen för SERP:ar)
  • Firecrawl API-nyckel (hämta den i Firecrawl för skrapning)
  • Supabase-uppgifter (valfritt) (hämta dem i Supabase projektinställningar)

Kunskapsnivå: Medel. Du behöver inte koda, men du bör vara bekväm med att lägga in API-nycklar, testa en enskild sökordsrad och justera prompts om du vill ha en specifik husstil.

Vill du inte sätta upp det här själv? Prata med en automations­expert (gratis 15-minuters konsultation).

Så fungerar det

Du skickar arbetsflödet en Google Sheet-URL. En chatwebhook-trigger tar emot länken och sedan läser n8n dina mallflikar (kundinfo och SEO-rader) via Google Sheets.

Rader filtreras och köas i batchar. Det hoppar över tomma sökord och undviker att skriva över rader som redan har en H1, och sedan ser ”Split in Batches” till att körningen håller sig stabil när du bearbetar en stor lista.

Konkurrentanalysen körs automatiskt. n8n hämtar SERP-resultat via en HTTP-request, crawlar upp till fem konkurrent-URL:er med Firecrawl och extraherar rubrikstrukturen med små kodsteg så att AI:n får verkliga indata.

Claude genererar meta + H1 + brief utifrån din kontext. En AI Agent tar fram metatitel, metabeskrivning och H1, och sedan skriver en andra agent hela content briefen. Om du kopplar Supabase kan arbetsflödet hämta dina godkända kunddetaljer för att hålla sig förankrat.

Arket uppdaterar sig självt. Ett sista monteringssteg mappar AI-output till rätt kolumner och uppdaterar matchande rad i Google Sheets, och sedan fortsätter batch-loopen.

Du kan enkelt ändra antalet konkurrenter som skrapas för att matcha din nisch. Du kan också ändra hur strikta teckengränserna är om ditt CMS har andra regler. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera webhook-triggern

Starta workflowet när en chatt-webhook tar emot en Google Sheets-URL som ska bearbetas.

  1. Lägg till noden Chat Webhook Trigger och ställ in Modewebhook.
  2. Aktivera Public till true så att webhooken kan ta emot externa förfrågningar.
  3. Bekräfta att inkommande payload innehåller ett chatInput-fält som innehåller Google Sheets-URL:en som används av efterföljande noder.
Tips: workflowet förväntar sig Google Sheets-URL:en i {{$json.chatInput}} — testa med en riktig sheet-URL för att undvika tomma dokumentreferenser.

Steg 2: anslut Google Sheets för kund- och SEO-data

Läs in kunduppgifter och SEO-arket från URL:en som skickas in via webhooken.

  1. I Fetch Client Details, ställ in Sheet NameClient information och Document ID={{ $('Chat Webhook Trigger').item.json.chatInput }}.
  2. Inloggning krävs: anslut era googleSheetsOAuth2Api-credentials i Fetch Client Details.
  3. I Retrieve SEO Sheet, ställ in Sheet NameSEO och Document ID={{ $('Chat Webhook Trigger').item.json.chatInput }}.
  4. Inloggning krävs: anslut era googleSheetsOAuth2Api-credentials i Retrieve SEO Sheet.
  5. Verifiera körflödet: Chat Webhook TriggerFetch Client DetailsRetrieve SEO Sheet.
⚠️ Vanlig fallgrop: om sheet-URL:en inte är delad med det anslutna Google-kontot kommer noderna att returnera tomma resultat.

Steg 3: filtrera och batcha nyckelord för bearbetning

Filtrera kvalificerade nyckelordsrader och iterera igenom dem i batchar för SERP-analys.

  1. I Filter Keyword Rows, behåll villkoren som kontrollerar att ={{ $json['Keyword'] }} inte är tomt och att ={{ $json['

    '] }}

    är tomt.
  2. I Validate Keyword Presence, säkerställ att villkoret kontrollerar att ={{ $json['Keyword'] }} finns innan ni fortsätter.
  3. Använd Batch Through Keywords för att iterera de filtrerade raderna; detta loopar senare tillbaka från Update Spreadsheet Row för att bearbeta nästa nyckelord.
  4. Bekräfta flödet: Retrieve SEO SheetFilter Keyword RowsValidate Keyword PresenceBatch Through Keywords.

Steg 4: konfigurera SERP-sökning och crawlning av konkurrenter

Sök i SERP och crawla konkurrenters sidor, och extrahera sedan rubriker för AI-analys.

  1. I Search SERP via API, ställ in URLhttps://api.apify.com/v2/acts/nFJndFXA5zjCTuudP/run-sync-get-dataset-items och behåll Method som POST.
  2. Ställ in JSON Body till den angivna payloaden och behåll query-raden "queries": "{{ $json['Keyword'] }}" oförändrad.
  3. Inloggning krävs: anslut era httpHeaderAuth-credentials i Search SERP via API.
  4. Anslut Firecrawl-credentials till alla fem crawl-noder: Crawl Result One, Crawl Result Two, Crawl Result Three, Crawl Result Four och Crawl Result Five.
  5. Bekräfta att varje crawl-nod använder rätt URL-uttryck, t.ex. Crawl Result OneURL ={{ $('Search SERP via API').item.json.organicResults[0].url }}.
  6. Behåll den sekventiella extraktionskedjan intakt: Crawl Result OneExtract Headings OneCrawl Result TwoExtract Headings TwoCrawl Result ThreeExtract Headings ThreeCrawl Result FourExtract Headings FourCrawl Result FiveExtract Headings Five.
Tips: detta workflow använder 5 Firecrawl-noder och 5 matchande code-noder för att extrahera rubriker. Om ni grupperar dem i canvasen kan felsökningen bli enklare.

Steg 5: sätt upp AI-generering och parsning

Generera SEO-metadata och content briefs med Anthropic-modeller, Supabase-retrieval och OpenAI-embeddings.

  1. I Generate Meta & H1, behåll hela prompttexten och bekräfta att uttrycken som refererar till nyckelord, kunduppgifter och konkurrentrubriker är intakta.
  2. Koppla Anthropic Model Primary som språkmodell för Generate Meta & H1. Inloggning krävs: anslut era anthropicApi-credentials i Anthropic Model Primary.
  3. Koppla Supabase Retriever Primary som ett verktyg till Generate Meta & H1 och behåll Tool Name som BaseDeDonnees med Table Name ={{ $('Fetch Client Details').item.json['Supabase database'] }}_documents. Inloggning krävs: anslut era supabaseApi-credentials i Supabase Retriever Primary.
  4. OpenAI Embeddings Primary levererar embeddings till Supabase Retriever Primary. Inloggning krävs: anslut era openAiApi-credentials i OpenAI Embeddings Primary. Lägg credentials på huvudnoderna, inte på subnod-anslutningen.
  5. Koppla Structured JSON Parser som output-parser för Generate Meta & H1, och behåll schemaexemplet enligt det som är angivet. Lägg parserinställningar på huvudnoden, inte på parser-subnoden.
  6. I Compose Content Brief, behåll prompttexten som refererar till {{$('Generate Meta & H1').item.json.output.h1}} och konkurrentrubriker från alla extraktionsnoder.
  7. Koppla Anthropic Model Secondary som språkmodell för Compose Content Brief. Inloggning krävs: anslut era anthropicApi-credentials i Anthropic Model Secondary.
  8. Koppla Supabase Retriever Secondary med samma tabelluttryck ={{ $('Fetch Client Details').item.json['Supabase database'] }}_documents och anslut OpenAI Embeddings Secondary för embeddings. Inloggning krävs: anslut era supabaseApi- och openAiApi-credentials i de noderna.
⚠️ Vanlig fallgrop: om ni lägger credentials på Structured JSON Parser eller embeddings-subnoderna kommer de att ignoreras. Credentials måste ligga på Anthropic Model Primary, Anthropic Model Secondary och respektive embeddings-noder.

Steg 6: sammanställ och uppdatera SEO-arket

Slå ihop AI-outputs med originalrader och uppdatera Google Sheet.

  1. I Assemble Sheet Update, behåll koden som mappar AI-outputs till , ,

    och brief.
  2. I Update Spreadsheet Row, ställ in Operationupdate och Sheet NameFR.
  3. Ställ in Document ID={{ $('Chat Webhook Trigger').item.json.chatInput }}.
  4. Säkerställ att Matching Columns inkluderar mots clés för matchningen vid uppdatering.
  5. Inloggning krävs: anslut era googleSheetsOAuth2Api-credentials i Update Spreadsheet Row.
  6. Bekräfta loopen: Assemble Sheet UpdateUpdate Spreadsheet RowBatch Through Keywords för att bearbeta nästa rad.

Steg 7: testa och aktivera ert workflow

Validera end-to-end-körning och aktivera workflowet för produktionsanvändning.

  1. Klicka på Execute Workflow och skicka en testförfrågan till Chat Webhook Trigger med en giltig Google Sheets-URL i chatInput.
  2. Verifiera att Search SERP via API returnerar organicResults och att alla Crawl Result- och Extract Headings-noder producerar rubrik-outputs.
  3. Bekräfta att Generate Meta & H1 outputar strukturerade fält som matchar meta_title, meta_description och h1 från Structured JSON Parser.
  4. Kontrollera Google Sheet för att säkerställa att , ,

    och brief uppdateras i FR-arket.
  5. När allt är verifierat, växla workflowet till Active för att köra i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Behörigheter i Google Sheets är den tysta mördaren här. Om arbetsflödet inte kan läsa eller skriva, kontrollera Google OAuth-anslutningen i n8n och bekräfta att det delade arket är åtkomligt för det Google-kontot.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Firecrawl-skrapning kan misslyckas på aggressiva sajter eller tunga JavaScript-sidor. När en crawl kommer tillbaka tom, kontrollera outputen i Firecrawl-noden och överväg att sänka antalet konkurrent­sidor för det sökordet.
  • Standardprompter i AI-noderna är generiska. Lägg in din varumärkesröst tidigt, annars kommer du redigera output i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av SEO-briefar?

Cirka 45 minuter om du redan har dina API-nycklar och mallarket klart.

Behöver jag kunna koda för att automatisera SEO-briefar?

Nej. Du kopplar konton, klistrar in API-nycklar och testar först en enda sökordsrad.

Är n8n gratis att använda för det här arbetsflödet för automatisering av SEO-briefar?

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 med API-användning för Anthropic (Claude), Firecrawl, Apify och OpenAI-embeddings.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för automatisering av SEO-briefar till ett annat briefformat?

Ja, och det är värt det. Du kan justera prompterna i AI Agent-noderna ”Generate Meta & H1” och ”Compose Content Brief” så att de matchar er husstil, era leverabler och hur strikt ni vill ha det. Om teamet vill ha andra kolumner justerar du mappningen i kodsteget ”Assemble Sheet Update” före ”Update Spreadsheet Row”. Vanliga ändringar är att lägga till FAQ-förslag, tvinga en specifik dispositionsmall och strama åt teckengränser för ert CMS.

Varför misslyckas min Google Sheets-anslutning i det här arbetsflödet?

Oftast är det fel Google-konto eller saknad åtkomst till arket. Återanslut Google Sheets OAuth i n8n, öppna sedan mallen och bekräfta att den är delad med samma konto. Om arbetsflödet kan läsa men inte skriva, kontrollera att kalkylarket inte är skyddat och att fliknamnen matchar det noderna förväntar sig. Håll också koll på ändrade kolumnrubriker, eftersom det sista uppdateringssteget mappar till specifika kolumner.

Hur många sökord klarar den här automatiseringen av SEO-briefar?

Många, men begränsningen är oftast API-kostnad och körningsvolym. På n8n Cloud beror din månatliga körningsgräns på din plan; egen hosting tar bort den gränsen, men du är fortfarande begränsad av serverresurser och tredjeparts rate limits. I praktiken kör team ofta 50–200 sökord i batchar utan att behöva passa processen, och schemalägger resten över natten. Om du ökar antal konkurrenter eller skrapar tunga sidor går det långsammare och kostar mer.

Är den här automatiseringen av SEO-briefar bättre än att använda Zapier eller Make?

För den här typen av arbetsflöde, oftast ja. Du gör loopar, batchning, villkorlig filtrering, skrapning i flera steg och AI-generering med strukturerad parsning, vilket är där no-code-”limverktyg” kan bli dyra eller sköra. n8n ger dig också möjligheten att hosta själv, vilket spelar roll när du genererar briefar i volym. Zapier eller Make kan fortfarande fungera för en lättare version (sökord in, brief ut), men konkurrentcrawlning och rikare logik är ärligt talat enklare att underhålla i n8n. Om du vill ha hjälp att välja, prata med en automations­expert.

När det här väl rullar slutar briefar vara en flaskhals och blir i stället en pipeline. Du granskar, du putsar, du levererar.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal