Research faller isär i samma stund som den ”viktiga” sidan inte vill ladda, blockerar din scraper eller byter layout igen. Då sitter du fast med att kopiera bitar till dokument, försöka sammanfatta rörig text och hoppas att du inte missade det enda citatet du behövde.
Det är här automatisering för Bright Data research ger effekt. Marknadsansvariga som följer konkurrenters rörelser märker det först, men byråstrateger och driftfokuserade grundare dras in i samma manuella slit. Det här flödet gör en enda URL till återanvändbara ämnen, trender och sentiment utan att du behöver sitta och passa processen.
Du får se hur det hämtar innehåll via Bright Datas Web Unlocker, låter Google Gemini strukturera det och sedan skickar resultaten till dina webhook-endpoints samtidigt som det sparar korrekt formaterade JSON-filer för senare.
Så här fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Bright Data + Google Gemini för smartare webbspaning
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Markdown to Textual Data Ext..", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set URL and Bright Data Zone", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Initiate a Webhook Notificat.."]
n4["<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/>Initiate a Webhook Notificat.."]
n5@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n7["<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/>Perform Bright Data Web Requ.."]
n8@{ icon: "mdi:robot", form: "rounded", label: "Topic Extractor with the str..", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "Trends by location and categ..", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n11["<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/>Initiate a Webhook Notificat.."]
n12@{ icon: "mdi:code-braces", form: "rounded", label: "Create a binary file for top..", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Write the topics file to disk", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Write the trends file to disk", pos: "b", h: 48 }
n15@{ icon: "mdi:code-braces", form: "rounded", label: "Create a binary data for tends", pos: "b", h: 48 }
n10 -.-> n9
n2 --> n7
n15 --> n14
n12 --> n13
n7 --> n1
n0 --> n2
n1 --> n8
n1 --> n3
n1 --> n9
n5 -.-> n1
n8 --> n4
n8 --> n12
n6 -.-> n8
n9 --> n11
n9 --> n15
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 n1,n8,n9 ai
class n5,n6,n10 aiModel
class n3,n4,n7,n11 api
class n12,n15 code
classDef customIcon fill:none,stroke:none
class n3,n4,n7,n11 customIcon
Varför det här spelar roll: webbresearch som inte rasar vid första kontakten
De flesta former av ”webbresearch” ser enkla ut tills du gör det i skala. Sidan du behöver är geo-blockerad, hastighetsbegränsad eller skyddad av bot-försvar. Så du försöker igen, byter nätverk, tar skärmdumpar, klistrar in bitar i ett dokument och landar ändå i en ostrukturerad textvägg som ingen vill läsa. Även när du till slut fårnga innehållet blir nästa steg att göra det användbart (ämnen, trendvinklar, sentiment och ett delbart underlag) ytterligare en halv dags merarbete. Ärligt talat är det värsta den mentala belastningen: du gör sköra, repetitiva moment samtidigt som du försöker tänka strategiskt.
Det summerar snabbt. Här är var det oftast fallerar.
- Du slösar ungefär 1–2 timmar per researchrunda bara på att få sidinnehållet i en användbar form.
- När en sida blockerar dig spricker researchplanen, och ”insikten” kommer efter att den slutat vara användbar.
- Manuella sammanfattningar varierar i kvalitet, vilket gör att två personer kan läsa samma sida och rapportera olika ”slutsatser”.
- Att dela resultat blir rörigt eftersom det saknas ett konsekvent format som teamet kan återanvända i rapporter och dashboards.
Vad du bygger: Bright Data-insamling + Gemini-analys-pipeline
Det här flödet startar med en URL du vill analysera och använder sedan Bright Datas Web Unlocker för att hämta sidan pålitligt, även när webbplatsen är ”svår”. När sidan har hämtats konverterar flödet innehållet till markdown och skickar det till Google Gemini i n8n. Därifrån gör Gemini om sidan till ren text som du faktiskt kan arbeta med, och kör sedan strukturerad extraktion för att skapa korrekt formaterade JSON-utdata för ämnen och för trendkluster (per plats och kategori). En sentiment-fokuserad analys triggas också via webhook, så att du kan mata in resultatet i det verktyg du redan använder för rapportering. Slutligen sparar flödet både ämnes- och trendutdata som lokala JSON-filer, så att du har en hållbar artefakt att återanvända senare.
Flödet är enkelt: ange en mål-URL och Bright Data-zon, hämta sidan via Bright Data och låt sedan Gemini extrahera och strukturera det som är viktigt. På slutet får dina webhook-endpoints utdata och din disk får två prydliga JSON-filer för arkivering eller vidare bearbetning.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du gör konkurrentresearch på 10 sidor varje vecka. Manuellt tar det ofta cirka 20 minuter att fånga innehållet (särskilt när sidor bråkar), plus ytterligare 30 minuter att sammanfatta och formatera, så du landar på ungefär 8 timmar i veckan. Med det här flödet lägger du cirka 2 minuter på att ange URL och starta körningen och väntar sedan ungefär 10–20 minuter för insamling och analys per sida. Det blir snarare 2–3 timmar totalt, och utdata är redan strukturerad för återanvändning.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Självhosting om du föredrar det (Hostinger fungerar bra)
- Bright Data för sidinläsning via Web Unlocker
- Google Gemini (PaLM) API för att extrahera ämnen, trender och sentiment
- Bright Data-zon + inloggningsuppgifter (skapa en Web Unlocker-zon i Bright Data)
Svårighetsgrad: Medel. Du kopplar API:er, klistrar in inloggningsuppgifter och justerar några nodinställningar som URL:er, webhooks och filsökvägar.
Vill du att någon bygger detta åt dig? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Steg för steg
Du anger mål-URL och Bright Data-zon. Flödet triggas manuellt och en Set-nod definierar vilken sida som ska hämtas och vilken Bright Data Web Unlocker-zon som ska användas för åtkomst.
Bright Data hämtar sidinnehållet pålitligt. En HTTP Request-nod kör mot Bright Datas API, vilket hjälper dig att hämta innehåll från sidor som normalt blockerar scraping eller kräver mer robust åtkomst.
Google Gemini gör sidan till strukturerade insikter. Markdown-innehållet konverteras till ren text, och därefter genererar två steg för strukturerad extraktion (1) en ämnesutdata och (2) trendkluster per plats och kategori. Ett separat webhook-anrop skickar sentimentrelaterad utdata så att du kan routa den dit du vill.
Resultat levereras och arkiveras. Flödet skickar utdata till dina webhook-endpoints och skriver även två JSON-filer till disk (ämnen och trender) efter att ha konverterat data till en binär payload.
Du kan enkelt ändra mål-URL och AI-promptar för att passa andra researchmål, som analys av produktbudskap eller kategoribevakning. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startar vid behov så att ni kan testa extraktionspipelinen manuellt.
- Lägg till noden Manual Start Trigger som startpunkt.
- Koppla Manual Start Trigger till Define Target URL and Zone.
Steg 2: anslut Bright Data-begäran
Ställ in mål-URL och scraping-zon och skicka sedan begäran till Bright Data.
- I Define Target URL and Zone, sätt url till
https://www.bbc.com/news/world. - I Define Target URL and Zone, sätt zone till
web_unlocker1. - Öppna Execute Bright Data Request och sätt URL till
https://api.brightdata.com/request. - Sätt Method till
POST, aktivera Send Body och Send Headers. - I Body Parameters, sätt zone till
{{ $json.zone }}, url till{{ $json.url }}?product=unlocker&method=api, format tillrawoch data_format tillmarkdown. - Credential Required: Anslut era
httpHeaderAuth-uppgifter i Execute Bright Data Request.
Steg 3: konfigurera markdown-parsning med Gemini
Konvertera den skrapade markdownen till ren text innan vidare analys.
- I Markdown to Plain Text, sätt Text till
=You need to analyze the below markdown and convert to textual data. Please do not output with your own thoughts. Make sure to output with textual data only with no links, scripts, css etc. {{ $json.data }}. - Låt Prompt Type stå kvar på
defineoch säkerställ att meddelandet innehåller “You are a markdown expert”. - Öppna Gemini Chat Model for Parsing och bekräfta att Model Name är
models/gemini-2.0-flash-exp. - Credential Required: Anslut era
googlePalmApi-uppgifter i Gemini Chat Model for Parsing.
Steg 4: konfigurera parallell ämnes- och trendanalys
Efter parsning förgrenas arbetsflödet till parallella analysvägar.
- Bekräfta att Markdown to Plain Text skickar output till både Structured Topic Analyzer och Send Markdown Extraction Webhook och Cluster Trends by Region parallellt.
- I Structured Topic Analyzer, sätt Text till
=Perform the topic analysis on the below content and output with the structured information. Here's the content: {{ $('Execute Bright Data Request').item.json.data }}. - Låt Schema Type stå kvar på
manualoch klistra in det angivna JSON-schemat i Input Schema. - I Cluster Trends by Region, sätt Text till
=Perform the data analysis on the below content and output with the structured information by clustering the emerging trends by location and category Here's the content: {{ $('Execute Bright Data Request').item.json.data }}. - Låt Schema Type stå kvar på
manualoch klistra in det angivna JSON-schemat i Input Schema. - Öppna Gemini Chat Model for Sentiment och Gemini Chat Model for Trends och bekräfta att Model Name är
models/gemini-2.0-flash-exp. - Credential Required: Anslut era
googlePalmApi-uppgifter i Gemini Chat Model for Sentiment. - Credential Required: Anslut era
googlePalmApi-uppgifter i Gemini Chat Model for Trends.
Steg 5: konfigurera webhook-utdata och filskrivningar
Skicka sammanfattningar till webhooks och spara JSON-utdata för ämnen/trender på disk.
- I Send Markdown Extraction Webhook, sätt URL till
https://webhook.site/3c36d7d1-de1b-4171-9fd3-643ea2e4dd76och aktivera Send Body med content satt till{{ $json.text }}. - Verifiera att Structured Topic Analyzer skickar output till både Dispatch Sentiment Webhook och Build Topics Binary Payload parallellt.
- I Dispatch Sentiment Webhook, sätt URL till
https://webhook.site/3c36d7d1-de1b-4171-9fd3-643ea2e4dd76och sätt summary till{{ $json.output }}. - Verifiera att Cluster Trends by Region skickar output till både Send Trends Webhook och Build Trends Binary Payload parallellt.
- I Send Trends Webhook, sätt URL till
https://webhook.site/3c36d7d1-de1b-4171-9fd3-643ea2e4dd76och sätt summary till{{ $json.output }}. - I Build Topics Binary Payload och Build Trends Binary Payload, behåll den angivna Function Code som base64-kodar JSON-utdata.
- Ställ in Save Topics File to Disk att skriva med File Name
d:\topics.jsonoch Operationwrite. - Ställ in Save Trends File to Disk att skriva med File Name
d:\trends.jsonoch Operationwrite.
d:\topics.json och d:\trends.json kräver en Windows-host. Uppdatera sökvägarna om ni kör n8n på Linux eller i Docker.Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta hela extraktions- och analysflödet och aktivera det sedan för produktionsanvändning.
- Klicka på Execute Workflow på Manual Start Trigger för att köra ett test.
- Verifiera att Execute Bright Data Request returnerar markdown i
dataoch att Markdown to Plain Text ger ren text. - Bekräfta att både Structured Topic Analyzer och Cluster Trends by Region körs och att webhook-anropen lyckas.
- Kontrollera att
d:\topics.jsonochd:\trends.jsonskapas med strukturerad JSON. - När ni är nöjda, växla arbetsflödet till Active för att aktivera det för löpande användning.
Felsökningstips
- Bright Data-inloggningsuppgifter kan löpa ut eller kräva rätt zonbehörigheter. Om det slutar fungera, kontrollera först inställningarna för din Bright Data Web Unlocker-zon och Header Auth-uppgifterna i noden ”Execute Bright Data Request”.
- Om du använder wait-liknande beteende i nedströms system (eller om målsidan svarar långsamt) varierar processtiderna. Höj timeouts i HTTP Request-noderna om webhook-anrop misslyckas eller returnerar tomma payloads.
- Standardpromptar i Gemini-noderna är generiska. Lägg in din varumärkeston och strikt utdataformatering i promptarna för strukturerad extraktion tidigt, annars kommer du att sitta och städa JSON för hand senare.
Snabba svar
Cirka 30 minuter om dina uppgifter för Bright Data och Gemini är klara.
Nej. Du kopplar främst konton, klistrar in API-nycklar och ändrar en URL samt några webhook-inställningar.
Ja. n8n har ett gratis alternativ för självhosting 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 Bright Data-användning och kostnader för Google Gemini API, som varierar beroende på hur mycket innehåll du bearbetar.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Byt målsajt genom att ändra URL:en i ”Define Target URL and Zone” och justera sedan promptarna i ”Structured Topic Analyzer” och ”Cluster Trends by Region” så att de matchar vad du vill extrahera (prisomnämnanden, funktionsjämförelser, varumärkespåståenden eller regulatoriskt språk är vanliga val). Om teamet använder ett kalkylark eller en databas i stället för lokala filer, ersätt stegen ”Save Topics File to Disk” och ”Save Trends File to Disk” med Google Sheets eller en databasnod. Du kan också peka webhook-noderna mot Slack, ett rapporteringsverktyg eller ditt interna API.
Oftast är det namnet på Web Unlocker-zonen, saknade behörigheter på Bright Data-kontot eller en auth-header som är inaktuell. Bekräfta att zonen som är konfigurerad i ”Define Target URL and Zone” faktiskt finns och kontrollera sedan igen inloggningsuppgifterna som används i ”Execute Bright Data Request”. Om målsajten är särskilt aggressiv kan du också behöva justera Bright Data-inställningar på deras sida (det är inte ett n8n-problem).
På n8n Cloud Starter kan du räkna med några tusen körningar per månad, och högre nivåer hanterar mer; självhosting har ingen körningsgräns (det beror mest på din server). I praktiken körs det här flödet vanligtvis ”per sida”, och de flesta team batchar 10–50 URL:er åt gången när de väl är trygga med promptar och webhook-hantering.
Ofta, ja. Det här flödet drar nytta av n8n:s förmåga att hantera förgreningar i flera steg (insamling, parsning, extraktion, webhook, filutdata) utan att det blir en skör kedja av separata zaps eller scenarier. n8n gör också självhosting praktiskt, vilket spelar roll när du kör många researchjobb och inte vill betala per litet steg. Zapier eller Make kan fortfarande fungera bra för enkla behov som ”URL in, sammanfattning ut”, men strukturerad extraktion plus filhantering blir snabbt klumpigt. Om du är osäker, prata med en automationsspecialist och beskriv din volym och dina utdata.
När det här väl rullar slutar webbresearch att vara en återkommande brandövning. Du får korrekt formaterade utdata som du kan återanvända, vidarebefordra, lagra och bygga vidare 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.