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 + OpenRouter: berika kontakter snabbt

Rickard Andersson Partner, Nodenordic.se

Ditt outreach-ark börjar felfritt. Sedan börjar det riktiga jobbet: leta upp LinkedIn-URL:er, bekräfta att det är rätt person, kopiera profiler till rätt kolumner och försöka att inte blanda ihop två personer med samma namn.

Det är här kontaktberikning i Sheets svider som mest för kampanjteam och growth-team. Men även researchers som bygger listor och byråoperatörer som förbereder prospekteringslistor känner av det. Det går långsamt, är felkänsligt och ärligt talat lite själsdödande.

Det här n8n-workflowet hämtar en obearbetad rad från Google Sheets, skickar den till en AI-researchagent via OpenRouter och skriver tillbaka en prydlig uppsättning publika profillänkar. Du får se hur det fungerar, vad du behöver och vad du kan justera för din egen outreach-process.

Så fungerar den här automatiseringen

Hela n8n-workflowet, från trigger till slutligt resultat:

n8n Workflow Template: Google Sheets + OpenRouter: berika kontakter snabbt

Problemet: kontaktberikning blir ett oändligt tab-hoppande

Kontaktlistor fallerar sällan för att du inte kan samla in namn. De fallerar för att du inte kan berika dem snabbt nog för att använda dem. En person i teamet öppnar en rad, googlar, klickar LinkedIn, kollar Twitter/X, kanske skummar en personlig sajt och klistrar sedan in länkar tillbaka i arket. Upprepa det några hundra gånger och du har bränt dagar på “research” som egentligen bara är kopiering och verifiering. Missar du en länk eller klistrar in på fel rad skickas din outreach till fel person, vilket är värre än att inte skicka något alls.

Friktionen byggs på. Här är det som brukar fallera.

  • Varje kontakt tar cirka 5–10 minuter att researcha om du är noggrann.
  • Två personer med samma namn kan lätt slås ihop till ett stökigt set med profiler.
  • Manuell berikning blir inte konsekvent, så en rad har fem länkar medan nästa inte har någon.
  • När arket växer vill ingen “äga” backloggen med oanalyserade rader.

Lösningen: Google Sheets + OpenRouter-berikning som fyller dina profilkolumner

Det här workflowet behandlar ditt Google Sheet som en kö. Enligt schema letar det efter rader där kolumnen Analysed? är satt till false, och väljer sedan en enda kontakt att bearbeta (en per körning, med flit). Kontakten skickas till en dedikerad AI-driven researchagent via OpenRouter, som letar efter publikt tillgängliga profiler på de största plattformarna. När agenten returnerar resultat extraherar n8n de strukturerade fälten (LinkedIn, Twitter/X, Facebook, Instagram, GitHub, YouTube, Reddit och många fler) och skriver tillbaka länkarna till originalraden. Slutresultatet är ett ark du faktiskt kan använda för outreach, segmentering eller överlämning till ett annat system.

Workflowet startar med en schemalagd trigger, hämtar kandidatrader från Google Sheets och filtrerar bort allt som redan är hanterat. Därefter berikar det en rad med researchagenten via OpenRouter. Till sist uppdaterar det samma rad så att datan hålls strukturerad och teamet slutar göra dubbelarbete.

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

Exempel: så här ser det ut i praktiken

Säg att du ska berika 150 kontakter inför en kampanjpush och du vill ha bara LinkedIn, Twitter/X och en “annan” länk. Manuellt blir även 6 minuter per kontakt cirka 15 timmar av sökande och klistrande. Med det här workflowet schemalägger du det att köra var 15:e minut och det bearbetar en rad varje gång, vilket betyder cirka 4 kontakter i timmen utan att någon rör arket. Du behöver fortfarande granska enstaka konstiga matchningar, men grovjobbet försvinner till största delen.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra kontakter och berikningskolumner.
  • OpenRouter för att köra AI-researchfrågorna.
  • OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard).

Kunskapsnivå: Medel. Du kopplar konton, anger ett sheet-ID/namn och säkerställer att referensen till sub-workflowet är korrekt.

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

Så fungerar det

Ett schema kontrollerar ditt ark. Workflowet körs på timer (till exempel var 15:e minut) och hämtar rader från Google Sheets.

Bara oanalyserade kontakter går vidare. Det filtrerar på rader där flaggan “Analysed?” är false och begränsar sedan bearbetningen till en enda kontakt så att körningen blir stabil och enkel att felsöka.

En AI-researchagent hittar publika profiler. n8n anropar ett dedikerat sub-workflow som använder OpenRouter för att researcha personen och returnera strukturerade profillänkar från sociala plattformar och publiceringsplattformar.

Ditt Google Sheet uppdateras direkt i samma rad. Workflowet extraherar rätt fält och skriver tillbaka dem till originalraden, så att din lista blir redo för berikad outreach och segmentering.

Du kan enkelt ändra listan över plattformar för att prioritera endast LinkedIn (eller lägga till nya kolumner) utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera den schemalagda triggern

Det här arbetsflödet startar med ett schemalagt intervall med Scheduled Automation Start.

  1. Lägg till noden Scheduled Automation Start som trigger.
  2. Ställ in schema-regeln så att den körs varje minut genom att konfigurera Rule med interval → field: minutes.
  3. Koppla Scheduled Automation Start till Retrieve Contact Rows för att matcha exekveringsflödet.

Steg 2: Anslut Google Sheets

Dessa noder läser och uppdaterar er kontaktlista i Google Sheets.

  1. Öppna Retrieve Contact Rows och välj Google Sheet: ställ in Document till [YOUR_ID] och Sheet Name till gid=0 (Sheet1).
  2. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-uppgifter till Retrieve Contact Rows.
  3. Öppna Modify Contact Row och ställ in Operation till update.
  4. Ställ in Document till [YOUR_ID] och Sheet Name till gid=0 (Sheet1).
  5. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-uppgifter till Modify Contact Row.

Om ert ark använder en annan flik, uppdatera värdet för Sheet Name så att det matchar rätt gid.

Steg 3: Ställ in filtrering och bearbetning

Det här steget säkerställer att endast obearbetade rader skickas för enrichment och begränsar sedan bearbetningen till en enda rad per körning.

  1. I Exclude Processed Records ställer ni in villkoret Left Value till {{ $json['Analysed?'] }} och operatorn till false så att endast oanalyserade rader släpps igenom.
  2. Låt looseTypeValidation vara aktiverat för att undvika typkonflikter.
  3. Koppla Exclude Processed Records till Restrict to Single Item.
  4. I Restrict to Single Item lämnar ni standardinställningarna för att bearbeta endast en kontakt per körning.

⚠️ Vanlig fallgrop: Om kolumnen Analysed? har värden som TRUE/FALSE eller textvärden, justera filterlogiken så att den matchar er arkdata.

Steg 4: Konfigurera AI-enrichment och tolkning av utdata

Arbetsflödet använder ett underarbetsflöde för att hämta sociala länkar och tolkar sedan JSON-utdata till strukturerade fält.

  1. Öppna Run Sub-Workflow (Configure Required) och ställ in Workflow ID till det underarbetsflöde som utför enrichment.
  2. Säkerställ att Workflow Inputs inkluderar chatInput med hela prompten och att sessionId är satt till {{ (Math.random().toString(36).substring(2) + Date.now().toString(36)) }}.
  3. I Parse Profile Output ställer ni in Text till {{ $json.output }} och behåller det angivna JSON-schemat för att tvinga fram strukturerad utdata.
  4. OpenRouter Chat Engine är ansluten som språkmodell för Parse Profile OutputAutentiseringsuppgifter krävs: Anslut era openRouterApi-uppgifter till OpenRouter Chat Engine.

⚠️ Vanlig fallgrop: Run Sub-Workflow (Configure Required) har ett tomt Workflow ID som standard. Arbetsflödet kommer att misslyckas tills ni väljer ett giltigt underarbetsflöde.

Steg 5: Konfigurera uppdateringar av utdata

Det här steget skriver tillbaka de tolkade URL:erna för sociala profiler till arket.

  1. I Modify Contact Row mappar ni varje kolumn till de extraherade utdatasvärdena, till exempel {{ $json.output.github }}, {{ $json.output.linkedin }} och {{ $json.output.twitter }}.
  2. Ställ in radmatchningen genom att mappa row_number till {{ $('Restrict to Single Item').item.json.row_number }}.
  3. Bekräfta att kolumnerna för instagram, youtube, tiktok, reddit, mastodon, truth_social, threads, bluesky, pinterest, snapchat, telegram, whatsapp_business, medium, github och twitch alla är mappade.

Steg 6: Testa och aktivera ert arbetsflöde

Validera hela kedjan från indata i arket via AI-enrichment till uppdatering av arket.

  1. Klicka på Execute Workflow och verifiera att Retrieve Contact Rows hämtar rader och att Exclude Processed Records släpper igenom endast oanalyserade kontakter.
  2. Bekräfta att Run Sub-Workflow (Configure Required) returnerar en JSON-payload och att Parse Profile Output skapar strukturerade fält.
  3. Kontrollera att Modify Contact Row uppdaterar rätt rad med URL:er för sociala profiler.
  4. När allt fungerar växlar ni arbetsflödet till Active för att köra enligt schema.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera n8n:s credential-inställningar och att det kopplade Google-kontot kan redigera arket.
  • Om du använder Wait-noder eller extern rendering varierar processingtider. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att sitta och redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för kontaktberikning i Sheets?

Cirka 30 minuter om ditt ark och din OpenRouter-nyckel är redo.

Behöver jag kunna koda för att automatisera kontaktberikning i Google Sheets?

Nej. Du kopplar Google Sheets, lägger till en API-nyckel och klistrar in ditt sheet-ID och namn.

Är n8n gratis att använda för det här workflowet för kontaktberikning i Sheets?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna in OpenRouter-kostnader, som beror på vilken modell du väljer och hur många kontakter du berikar.

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 self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här workflowet för kontaktberikning i Sheets till endast LinkedIn-resultat?

Ja, men du vill göra det på två ställen. Justera först instruktionerna till researchagenten i sub-workflowet så att den prioriterar LinkedIn och returnerar färre plattformar. Uppdatera sedan extraktionsschemat i “Parse Profile Output” och dina kolumner i Google Sheet så att du bara skriver tillbaka fälten du faktiskt bryr dig om. Det gör output mer strukturerad och minskar granskningstiden.

Varför misslyckas min OpenRouter-anslutning i det här workflowet?

Oftast beror det på en ogiltig eller utgången API-nyckel, eller att nyckeln inte är sparad i rätt n8n-credential. Det kan också vara ett problem med modellval i OpenRouter-chatnoden, särskilt om modellen är otillgänglig eller om ditt konto saknar åtkomst. Om du berikar många rader snabbt kan även rate limits dyka upp som intermittent fel.

Hur många kontakter klarar den här automatiseringen för kontaktberikning i Sheets?

Många, eftersom den bearbetar en rad per körning. I n8n Cloud beror hur många du kan göra per månad på din plans exekveringsgränser; i self-hosted n8n finns ingen fast exekveringsgräns, men din server och API-användning blir den praktiska begränsningen. Om du kör den var 15:e minut berikar du cirka 4 kontakter i timmen, hela dagen, utan att någon behöver sitta och passa den.

Är den här automatiseringen för kontaktberikning i Sheets bättre än att använda Zapier eller Make?

Ofta, ja, eftersom den här typen av berikning kräver filtrering, kontroll per enskilt objekt och strukturerad extraktion som kan bli krånglig (och dyr) i enklare verktyg. n8n ger dig också self-hosting om du vill ha obegränsade körningar och mer kontroll över datahantering. Zapier eller Make kan fortfarande fungera bra om du bara behöver ett grundläggande “sök och skriv tillbaka”-flöde och inte bryr dig om sub-workflow-mönstret. Valet handlar främst om komplexitet och skala, inte varumärke. Prata med en automationsexpert om du vill ha en snabb rekommendation utifrån din exakta volym.

När det här väl är igång slutar ditt ark vara ett researchprojekt och blir en outreach-tillgång. Sätt upp det, låt det beta av backloggen och få tillbaka din tid.

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