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

Zyte till Google Sheets – rensad webbdata direkt

Rickard Andersson Partner, Nodenordic.se

Att skrapa en sajt “snabbt” brukar sluta i kaos. En trasig layout, en saknad sida, och plötsligt är ditt kalkylark fullt av luckor du inte litar på.

Oavsett om du är en marknadschef som vill följa konkurrentpriser, en grundare som validerar en marknad, eller en ops-person som bygger interna rapporter, tar den här Zyte Sheets-automationen dig till användbar data utan att du behöver sitta barnvakt åt skrapor.

Du får en felfri CSV exporterad till Google Sheets, med ett arbetsflöde som hanterar paginering, omförsök och aggregering så att du kan fatta beslut snabbare.

Så fungerar den här automatiseringen

Här är hela arbetsflödet som du kommer att sätta upp:

n8n Workflow Template: Zyte till Google Sheets – rensad webbdata direkt

Varför det här spelar roll: göra webbsidor till pålitliga rader

Webbplatsdata ser enkelt ut tills du ska göra det operativt. En kategorisida har paginering. Produktsidor saknar fält. Jobbportaler byter layout. SERP:ar laddar olika varje gång. När du skrapar manuellt (eller med ett skört selector-baserat verktyg) lägger du mer tid på att laga exporten än på att använda den. Och det värsta är osäkerheten: du vet inte vad du missade, så du tvekar att agera. Den tvekan kostar dig lanseringar, prisuppdateringar, outreach-listor och innehållsbeslut.

Friktionen byggs på. Här är var det brukar fallera i riktiga team.

  • Du får “vissa” resultat, men pagineringsluckor gör att ditt ark är ofullständigt och du märker det inte förrän det verkligen gäller.
  • En layoutändring flyttar fält i tysthet, vilket gör att kolumner slutar linjera och du slösar tid på omformatering.
  • Omförsök hanteras dåligt, så några tillfälliga fel blir till saknade datasegment.
  • Även när data exporteras är den inte redo att använda, så du måste fortfarande rensa innan någon kan agera.

Vad du bygger: Zyte-extraktion till en felfri CSV för Sheets

Det här arbetsflödet gör en enkel input (en URL plus ditt mål) till strukturerad data som du faktiskt kan arbeta med i Google Sheets. Du börjar i ett användarvänligt formulär, väljer vad du vill extrahera (enskild sida, listsidor, “skrapa alla sidor”, SERP-resultat eller ett manuellt/råläge), och automatiseringen skickar din begäran till rätt Zyte-extraktionsmetod. För “skrapa alla sidor” kör den en tvåfasprocess: först crawl:ar den för att hitta alla relevanta URL:er, sedan skrapar den detaljer för varje sida samtidigt som den filtrerar fel och gör omförsök vid behov. Till sist aggregerar den allt och exporterar en felfri CSV som är redo att lägga in i ett ark och dela med teamet.

Arbetsflödet startar med en formulärinsändning och vid behov ett AI-assisterat målval. Sedan hämtar det sidor via Zyte, loopar igenom paginering eller item-länkar och slår ihop resultaten till en konsekvent datamängd. I slutet får du en CSV-fil som är tillräckligt korrekt formaterad för att använda direkt i Google Sheets (och enkel att granska om du behöver).

Det du bygger

Förväntade resultat

Säg att du behöver veckovis konkurrentprissättning från en kategori med cirka 200 produkter över 10 paginerade listsidor. Manuellt kanske du lägger 10 minuter på att samla URL:er, ytterligare en timme på att hämta produktdetaljer och ungefär 30 minuter på att rensa arket. Med det här arbetsflödet skickar du in URL:en på en minut, låter crawl:ern hitta alla produktsidor och väntar medan skrapningen körs i batchar. Du granskar fortfarande resultatet, men det brukar ligga närmare 10 minuters stickprovskontroll än en hel rensningssession.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Zyte API för strukturerad webbextraktion.
  • Google Sheets för att lagra och arbeta vidare med resultatet.
  • Zyte API-nyckel (hämta den i din Zyte-dashboard).

Kunskapsnivå: Medel. Du kopplar konton, klistrar in en API-nyckel och gör lätt mapping så att output matchar det du förväntar dig i ditt ark.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Skicka in din mål-URL och avsikt. Arbetsflödet börjar i ett formulär där du anger sajten (eller sidan) och väljer ett mål som “enskild detalj”, “skrapa lista”, “skrapa alla sidor” eller en rå/manuell insamling.

Smart routning väljer rätt extraktionsspår. Baserat på sajtkategori (e-handel, artiklar, jobbannonser, SERP) skapar arbetsflödet en lämplig Zyte-konfiguration och skickar anrop via HTTP.

Tvåfas-crawling kickar in vid behov. För helsajt- eller “skrapa alla sidor”-jobb crawl:ar fas 1 och hittar URL:er via pagineringsloopar, och fas 2 skrapar detaljerad data i batchar och samlar poster samtidigt som den filtrerar fel.

En felfri fil skapas för enkel användning. Resultaten aggregeras och konverteras till en nedladdningsbar CSV så att du kan öppna den i Google Sheets och börja arbeta direkt.

Du kan enkelt ändra extraktionsmålet för att växla från “alla sidor” till “enskild sida” beroende på behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera webhook-triggern

Konfigurera intagsformuläret som startar arbetsflödet och samlar in URL, webbplatskategori och Zyte API-nyckel.

  1. Lägg till och öppna Primary Intake Form.
  2. Ställ in Form TitleAI Web Scraper.
  3. Bekräfta att Form Fields inkluderar Target URL, Select Site Category och Zyte API Key med obligatoriska fält aktiverade.
  4. Behåll beskrivningstexten som den är för att förklara routningslogiken.
  5. Spara noden för att generera dess webhook-URL.

Zyte API Key skickas in i flera HTTP-anrop och base64-kodas i auktoriseringsheaders. Säkerställ att formulärfältets namn är exakt Zyte API Key.

Steg 2: konfigurera routningsformulär och kategorilogik

Det här steget routar användare till rätt målvalsformulär baserat på webbplatskategori.

  1. Öppna Route by Site Category och verifiera att reglerna jämför {{$json["Select Site Category"]}} mot de fem kategorialternativen.
  2. Säkerställ att utgångarna routar till AI Goal Selection Form för produkt-/artikel-/jobb-kategorier, till API Fetch SERP Data för SERP och till Manual Goal Form för generella webbplatser.
  3. Öppna AI Goal Selection Form och bekräfta att de dolda fälten mappar URL till {{$json["Target URL"]}} och Site Type till {{$json["Select Site Category"]}}.
  4. Öppna Manual Goal Form och bekräfta samma dolda fält samt rullgardinsalternativen (BrowserHtml, httpResponseBody, Capture Network API, Infinite Scroll, Screenshot).
  5. Bekräfta att AI Goal Selection Form kopplar till Generate Zyte Config och att Manual Goal Form kopplar till Select Manual Extraction.

Steg 3: konfigurera AI-målmappning och routning för extrahering

Konfigurera hur extraheringsmål översätts till Zyte-scheman och vilken gren som körs härnäst.

  1. Öppna Generate Zyte Config och behåll koden som mappar Site Type och What is your extraction goal? till target_schema och navigation_schema.
  2. Verifiera att Generate Zyte Config skickar ut extraction_goal, target_schema och navigation_schema.
  3. Öppna Select Extraction Goal och bekräfta att alla regler kontrollerar {{$json.extraction_goal}} för single, list, details_current, crawl_list och crawl_all.
  4. Bekräfta att grenarna från Select Extraction Goal går till API Fetch Single Detail, API Fetch List Page, API Fetch Page Item Links, Init List Crawl State och Init Full Details State.

⚠️ Vanlig fallgrop: Om formulärfälts-etiketterna i AI Goal Selection Form ändras kommer mappningen i Generate Zyte Config (t.ex. $input.first().json["What is your extraction goal?"]) att sluta fungera.

Steg 4: konfigurera extrahering för enstaka sida och aktuell sida

Dessa noder hanterar engångsextraheringar och extrahering av objektdetaljer på sidnivå.

  1. Öppna API Fetch Single Detail och bekräfta att URL är https://api.zyte.com/v1/extract och att Method är POST.
  2. Säkerställ att body innehåller url satt till {{$json.url}} och att schema-fältet är satt till {{$json.target_schema}}.
  3. Verifiera att headern authorization använder Basic {{ ($('Primary Intake Form').item.json["Zyte API Key"] + ":").base64Encode() }}.
  4. Öppna API Fetch List Page och behåll samma Zyte-upplägg med {{$json.url}} och {{$json.target_schema}}.
  5. Öppna Format Single/List Output och bekräfta att fältet data använder {{$json.productNavigation || $json.product || $json.productList || $json.browserHtml || $json.articleList?.articles || $json.jobPosting || $json.jobPostingNavigation}}.

Steg 5: konfigurera crawl-loop för listor (alla sidor)

Den här loopen samlar in listobjekt över paginerade sidor och returnerar ett sammanställt dataset.

  1. Öppna Init List Crawl State och bekräfta att den sätter url till {{$json.url}}, target_schema till {{$json.target_schema}} och navigation_schema till {{$json.navigation_schema}}.
  2. Verifiera att Merge List Pages är kopplad till API Fetch List Page URLs och att Assign Next List URL loopar tillbaka in i merge-noden.
  3. Öppna API Fetch List Page URLs och bekräfta att schema-fältet är {{$('Generate Zyte Config').item.json.navigation_schema}}.
  4. Öppna List Crawl Controller och behåll koden som skickar ut currentScrapeUrl, nextLoopUrl och stopLoop.
  5. Öppna API Fetch Full Item List och bekräfta att url är {{$json.currentScrapeUrl}} och att schemat använder {{$('Init List Crawl State').item.json.target_schema}}.
  6. Öppna Accumulate List Items och behåll ackumulatorlogiken som sparar listobjekt i static data-backpack.
  7. Säkerställ att Check Next List Page routar till Finalize List Output när {{$json.stopLoop}} är true, annars till API Fetch Full Item List.

Om ni ser upprepade sidor, bekräfta att List Crawl Controller spårar visited-sidor för att undvika oändliga loopar.

Steg 6: konfigurera fullständig detalj-crawl (alla sidor)

Den här vägen crawlar flera sidor, samlar in objekt-URL:er och hämtar sedan fullständiga detaljer i batchar.

  1. Öppna Init Full Details State och verifiera att target_url är {{$json.url}} och att schema-fälten refererar till {{$json.target_schema}} och {{$json.navigation_schema}}.
  2. Säkerställ att Merge Full Detail Pages kopplar till API Crawl Pages Phase1 och loopar tillbaka från Assign Next Page URL.
  3. Öppna API Crawl Pages Phase1 och bekräfta att schemat använder {{$('Generate Zyte Config').item.json.navigation_schema}}.
  4. Öppna Collect Detail URLs och behåll koden som sparar allItemUrls och skickar ut nextPageUrl samt stop.
  5. Kontrollera att Check More Pages skickar true till Unpack URL List Phase2 och false till Assign Next Page URL.
  6. Öppna Batch Detail Processor och bekräfta att Batch Size är 100.
  7. Öppna API Fetch Full Details och bekräfta att url är {{$json.url}} och att schemat är {{$('Init Full Details State').item.json.target_schema}}.
  8. Öppna Accumulate Detail Records och behåll ackumulatorlogiken som sparar finalResults till static data.
  9. Öppna Finalize Detail Output för att säkerställa att den återställer minne och skickar ut giltiga objekt.

Steg 7: konfigurera manuella extraheringsalternativ

Dessa noder hanterar val för rådataextrahering såsom HTML, response body, nätverksfångst, infinite scroll och skärmdump.

  1. Öppna Select Manual Extraction och bekräfta att reglerna jämför {{$json["What is your extraction goal?"]}} med varje manuellt alternativ.
  2. Verifiera att varje gren routar till rätt API-nod: API Fetch Browser HTML, API Fetch Response Body, API Capture Network Calls, API Capture Infinite Scroll eller API Capture Screenshot.
  3. Öppna API Capture Network Calls och bekräfta att JSON Body är den angivna payloaden med networkCapture-filtrering på /api/.
  4. Öppna API Capture Infinite Scroll och behåll åtgärden scrollBottom i JSON body.
  5. Öppna Assemble Raw Output och behåll data satt till {{$json.browserHtml || $json.httpResponseBody || $json.networkCapture}}.
  6. Öppna Convert Screenshot File och säkerställ att Operation är toBinary med Source Property satt till screenshot.

Steg 8: konfigurera utdatafiler

Alla lyckade datavägar konvergerar till filkonvertering för hantering av utdata.

  1. Öppna Convert AI Output File och behåll standardinställningarna för filkonvertering.
  2. Bekräfta att Format Single/List Output, Finalize List Output, Finalize Detail Output och Iterate Page Items alla kopplar till Convert AI Output File.
  3. Bekräfta att API Fetch SERP Data routar till Format SERP Response med data satt till {{$json.serp}}.

⚠️ Vanlig fallgrop: Om utdata verkar tomma, verifiera att schemat som returneras av Zyte matchar objekt-sökvägen som används i Format Single/List Output.

Steg 9: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta att varje väg fungerar innan ni aktiverar arbetsflödet.

  1. Klicka på Execute Workflow och skicka in Primary Intake Form med en exempel-URL och Zyte API-nyckel.
  2. Välj ett mål i AI Goal Selection Form eller Manual Goal Form för att trigga motsvarande extraheringsväg.
  3. Följ exekveringsflödet för att bekräfta att utdata når Convert AI Output File eller Convert Screenshot File.
  4. Verifiera att en lyckad exekvering visar data i Format Single/List Output, Finalize List Output, Finalize Detail Output eller Assemble Raw Output beroende på vald väg.
  5. När allt är validerat, ställ om arbetsflödet till Active för användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Zyte-inloggning kan gå ut eller klistras in fel. Om anropen börjar fallera, kontrollera API-nyckeln som är sparad i n8n-autentiseringsuppgifterna och bekräfta att den är aktiv i din Zyte-dashboard.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output i all evighet.

Snabba svar

Hur lång är uppsättningstiden för den här Zyte Sheets-automationen?

Cirka 30 minuter om din Zyte-nyckel och Google-åtkomst är redo.

Krävs kodning för den här Zyte Sheets-automationen?

Nej. Du kopplar mest konton och väljer extraktionsmål i formulären. Det finns valfri finjustering, men det krävs inte för att få en felfri CSV.

Är n8n gratis att använda för det här Zyte Sheets-automationsflödet?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Molnplaner startar på 20 USD/månad för högre volym. Du behöver också räkna in Zyte API-användning, som beror på hur många sidor du crawl:ar och skrapar.

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

Två alternativ: n8n Cloud (managed, 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.

Kan jag modifiera det här Zyte Sheets-automationsflödet för olika användningsfall?

Ja, men håll avsikten tydlig. Du kan växla mellan “enskild detalj”, listextraktion och “skrapa alla sidor” via logiken Select Extraction Goal, och du kan välja rå/manuell insamling via Manual Goal Form när du vill ha HTML, svarskroppar, nätverksanrop eller skärmdumpar. Vanliga anpassningar är att justera vilka fält du behåller i den slutliga CSV:n, ändra batchstorlekar för stora sajter och att fokusera crawl:ern på specifika sektioner så att du inte hämtar irrelevanta sidor.

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

Oftast är det en ogiltig eller utgången API-nyckel. Skapa en ny Zyte-nyckel, uppdatera den i n8n och kör sedan om ett test för en enskild sida för att bekräfta att anropet lyckas. Om det fungerar för en sida men fallerar vid stora crawl:ar kan du slå i rate limits eller stöta på blockerade sidor som kräver ett annat extraktionsläge.

Vilken volym kan det här Zyte Sheets-automationsflödet hantera?

Hundratals till tusentals sidor per körning är typiskt, så länge din Zyte-plan och n8n-resurser klarar det.

Är den här Zyte Sheets-automationen bättre än att använda Zapier eller Make?

Ofta, ja. Det här arbetsflödet använder flerstegslogik (routning efter sajttyp, loopar för paginering, batchning, sammanslagning och villkorskontroller), och den typen av förgrening blir dyr eller klumpig i många no-code-verktyg. n8n ger dig också ett self-hosting-alternativ, vilket spelar roll när du kör många exekveringar. Zapier eller Make kan fortfarande fungera bra för en enkel “hämta en URL, skriv en rad”-uppgift, men det här är mer av en datapipeline än en enskild zap. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.

När det här väl rullar slutar ditt kalkylark vara ett rensningsprojekt och blir något du kan lita på. Arbetsflödet sköter den repetitiva hämtningen och formateringen, så att du kan fokusera 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.

×

Använd mall

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

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal