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

Gmail + Google Sheets: hitta dubbletter, larma Slack

Rickard Andersson Partner, Nodenordic.se

Rekrytering blir snabbt rörig när ansökningar hamnar i e-posttrådar. En kandidat svarar två gånger, använder en annan ämnesrad, och plötsligt har du två ”aktiva” konversationer för samma person.

Gmail Sheets dedupe är en räddare i nöden för rekryterare som jobbar i Gmail, men drift/ops och rekryterande chefer känner också av smärtan. Resultatet är enkelt: en felfri kandidatlista, färre dubbla svar och snabbare överlämningar i Slack.

Det här n8n-flödet bevakar en märkt Gmail-inkorg, loggar varje sökande i Google Sheets och pingar Slack när det upptäcker en dubblett. Du får se vad det automatiserar, vad du behöver och var team brukar gå fel.

så här fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutlig output:

n8n Workflow Template: Gmail + Google Sheets: hitta dubbletter, larma Slack

problemet: dubbletter bland sökande skapar tyst kaos

Om ni rekryterar från en delad inkorg är dubbletter oundvikliga. Folk söker från två e-postadresser, skickar sitt cv igen eller dyker upp via en referens efter att de redan sökt på karriärsidan. Nu skummar teamet Gmail-trådar, söker i Sheets och frågar ”har vi redan pratat med den här personen?” Det är inte bara bortkastad tid. Det är tappad kontext, inkonsekvent urval och den där obekväma stunden när två kollegor svarar med olika nästa steg. Ärligt talat får det processen att se slarvig ut.

Det summeras snabbt. Här är var det börjar skapa fel när volymerna ökar.

  • Manuell copy-paste från Gmail till Sheets tar cirka 5 minuter per sökande, och tiden sticker iväg när cv:n är konstigt formaterade.
  • Dubbletter ser inte ut som dubbletter i e-post, så du upptäcker dem sent, ofta efter att någon redan skickat en uppföljning.
  • Er ”källa till sanning” blir opålitlig, vilket gör att rapportering och pipeline-genomgångar blir diskussioner i stället för beslut.
  • Slack-uppdateringar sker oregelbundet eftersom folk glömmer att notifiera kanalen, särskilt under intensiva veckor.

lösningen: auto-logga sökande och flagga dubbletter i Slack

Det här flödet kör i en enkel loop. Varje par minuter kollar n8n Gmail efter nya mejl med den etikett du valt (de flesta team använder ”applicant”). När det hittar ett, tolkar det mejlets innehåll för att plocka ut kandidatens uppgifter som namn, e-post, telefon, roll de söker och annat ni konsekvent inkluderar. Sedan läser det er befintliga Google Sheet med kandidater och jämför den inkommande e-postadressen med det som redan finns. Om adressen redan finns postar flödet en varning i Slack så någon kan slå ihop trådar eller stänga loopen. Om det är nytt lägger det till (eller upsertar) kandidaten i Google Sheets så att listan förblir felfri och uppdaterad.

Flödet startar med en schemalagd kontroll av märkta Gmail-meddelanden. Därefter extraherar det kandidatdata, kontrollerar dubbletter i Google Sheets och skickar resultatet via en If-gren. Till sist får du antingen ett Slack-meddelande om ”dubblett hittad” eller en ny rad i arket.

vad du får: automatisering vs. resultat

exempel: så här ser det ut

Säg att teamet får cirka 10 märkta ”applicant”-mejl per dag. Manuellt kanske du lägger 5 minuter på att logga varje mejl i Google Sheets, plus ytterligare 2 minuter på att söka i arket för att säkerställa att de inte redan finns där, vilket är ungefär en timme per dag. Med det här flödet lägger du kanske 5 minuter i början på att sätta Gmail-etiketten och kolumnerna i arket, och sedan blir det dagliga arbetet nära noll. Dubbletter händer fortfarande, men de dyker upp som en Slack-ping i stället för en överraskning.

det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Gmail för att läsa märkta ansökningsmejl
  • Google Sheets för att lagra kandidatlistan
  • Slack för att varna teamet vid dubbletter

svårighetsgrad: nybörjare. Du kopplar konton, klistrar in ID:n (etikett, ark) och justerar vid behov en regex om dina mejl är inkonsekventa.

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

så fungerar det

Schemalagd inkorgskontroll. En schematrigger kör varannan minut (eller enligt ditt intervall) och letar efter Gmail-meddelanden med din ansökningsetikett. Ingen etikett, ingen bearbetning.

Kandidatdetaljer hämtas från mejlet. Ett tolkningssteg läser mejlets innehåll och extraherar fält som kandidatnamn, e-post, telefon, sökt roll, rekryterare och källmejl. Om inkommande format varierar mycket är det här den enda delen du kan behöva finjustera.

Dubblettlogik körs mot Google Sheets. Flödet läser befintliga rader från ditt kandidatark, jämför inkommande e-post med det som redan lagrats och skickar sedan resultatet genom en If-kontroll.

Slack-varning eller upsert i arket. Dubbletter triggar ett Slack-meddelande så att du kan slå ihop trådar eller stoppa outreach. Nya kandidater skrivs till Google Sheets så att listan hålls uppdaterad utan att någon behöver röra den.

Du kan enkelt ändra dubblettkontrollen från bara e-post till e-post + telefon utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-implementeringsguide

Steg 1: konfigurera Schedule Trigger

Det här arbetsflödet körs enligt ett återkommande schema för att skanna nya kandidatmejl.

  1. Lägg till noden Scheduled Cycle Trigger som arbetsflödets trigger.
  2. Ställ in Interval på minuter och behåll standardfrekvensen för att köra kontinuerligt.
  3. Bekräfta att Scheduled Cycle Trigger kopplas till Retrieve Gmail Messages som visas i körflödet.

Steg 2: anslut Gmail och Google Sheets

Dessa noder hämtar kandidatmejl och läser/skriv till ert uppföljningskalkylark.

  1. Öppna Retrieve Gmail Messages och ställ in Operation till getAll.
  2. Ställ in Label IDs till [YOUR_ID] och Received After till {{ $json.timestamp.toDateTime().minus(10,'min') }}.
  3. Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter i Retrieve Gmail Messages.
  4. Öppna Read Sheet Records och välj Document ID [YOUR_ID] samt Sheet Name Sheet1.
  5. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Read Sheet Records och Upsert Sheet Entry.

⚠️ Vanlig fallgrop: Arbetsflödet kommer att misslyckas om Gmail-etikett-ID och Google Sheet-dokument-ID lämnas som [YOUR_ID]. Ersätt dem med era riktiga ID:n.

Steg 3: konfigurera kandidatparsing och duplikatlogik

Dessa kodnoder extraherar kandidatdetaljer och kontrollerar duplikat mot arket.

  1. Öppna Parse Candidate Email och behåll den angivna JavaScript Code för att tolka fält som candidate_name, candidate_email och role_applied.
  2. Öppna Flag Duplicate Check och verifiera att den refererar till Parse Candidate Email och Read Sheet Records med $( "Parse Candidate Email" ).all()[0].json och $('Read Sheet Records').all().
  3. Säkerställ att Flag Duplicate Check skickar ut booleanen isDuplicate som används av Duplicate Branch Logic.

Tips: Om formatet på er e-postsnutt förändras, uppdatera regex-mönstren i Parse Candidate Email för att undvika tomma fält.

Steg 4: konfigurera utdata och förgreningsåtgärder

Arbetsflödet skickar aviseringar för duplikat och upsert:ar nya kandidater i arket.

  1. Öppna Duplicate Branch Logic och behåll villkoret som använder {{ $json.isDuplicate }} med operatorn för boolean true.
  2. Öppna Send Slack Alert och ställ in Text till User {{ $json.candidate_name }} has already applied for {{ $json.role_applied }}.
  3. Inloggningsuppgifter krävs: Anslut era Slack-inloggningsuppgifter i Send Slack Alert (noden har för närvarande inga inloggningsuppgifter konfigurerade).
  4. Öppna Upsert Sheet Entry och bekräfta att Operation är inställd på appendOrUpdate med Matching Columns inställd på candidate_email.
  5. Verifiera att kolumnmappningarna i Upsert Sheet Entry använder uttryck som {{ $json.candidate_email }}, {{ $json.role_applied }} och {{ $json.resume_url }}.

⚠️ Vanlig fallgrop: Om Slack-inloggningsuppgifter saknas kommer vägen för duplikatvarningar att misslyckas utan tydlig felindikering. Se till att Send Slack Alert är autentiserad.

Steg 5: testa och aktivera ert arbetsflöde

Validera varje väg innan ni slår på den schemalagda automatiseringen.

  1. Klicka på Execute Workflow och bekräfta att Retrieve Gmail Messages hämtar senaste mejlen baserat på filtret receivedAfter.
  2. Kontrollera utdata från Parse Candidate Email för att säkerställa att fält som candidate_email och role_applied är ifyllda.
  3. Verifiera att Duplicate Branch Logic routar duplikat till Send Slack Alert och icke-duplikat till Upsert Sheet Entry.
  4. Bekräfta att nya kandidater läggs till eller uppdateras i ert Google Sheet och att dubbletter triggar en Slack-avisering.
  5. Växla arbetsflödet till Active för att aktivera kontinuerlig schemalagd bearbetning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

vanliga fallgropar

  • Slack-autentisering kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först Slack-appens scopes (särskilt chat:write) och att rätt kanal/användare är vald i n8n.
  • Om du använder Wait-noder eller extern rendering varierar processtider. Ö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 redigera output för alltid.

vanliga frågor

Hur lång tid tar det att sätta upp den här Gmail Sheets dedupe-automatiseringen?

Cirka 30 minuter om din Gmail-etikett och ditt Google Sheet är redo.

Behöver jag kunna koda för att automatisera dubblettdetektering i Gmail?

Nej. Du kopplar främst konton och klistrar in etikett- och ark-ID:n. Du kan behöva justera ett regex-mönster om era ansökningsmejl har ett ovanligt format.

Är n8n gratis att använda för det här Gmail Sheets dedupe-flödet?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna in kostnader för Slack och Google Workspace (oftast redan täckta för de flesta team).

Var kan jag hosta n8n för att köra den här Gmail Sheets dedupe-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änsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Gmail Sheets dedupe-flödet för matchning på telefonnummer också?

Ja, och det är en smart uppgradering om kandidater ofta söker från olika e-postadresser. Du utökar dubblettlogiken så att den jämför både candidate_email och candidate_phone innan den avgör vilken gren som ska tas. De flesta team lägger också in ett litet normaliseringssteg (ta bort mellanslag, bindestreck, landskoder) så att ”(555) 123-4567” matchar ”5551234567”. Om du vill kan du även lägga till ett Slack-meddelande för ”möjlig dubblett” när namnet är likt men e-posten är annorlunda.

Varför misslyckas min Slack-anslutning i det här Gmail Sheets dedupe-flödet?

Oftast beror det på utgångna autentiseringsuppgifter eller att Slack-appen saknar behörigheten chat:write. Återanslut Slack i n8n och dubbelkolla sedan att flödet postar till rätt kanal (privata kanaler behöver ofta extra åtkomst). Om det fortfarande fallerar kan Slacks rate limiting dyka upp när du behandlar en stor backlogg på en gång, så minska batchstorleken eller dra ned schemat temporärt.

Hur många sökande kan den här Gmail Sheets dedupe-automatiseringen hantera?

För de flesta små team fungerar hundratals per vecka bra, men väldigt stora ark kan bli långsamma eftersom flödet läser alla rader för att jämföra dubbletter.

Är den här Gmail Sheets dedupe-automatiseringen bättre än att använda Zapier eller Make?

Det beror på hur strikt du vill att dedupliceringen ska vara. Zapier och Make kan absolut logga mejl i Sheets, men dubblettkontroll blir snabbt klumpigt när du behöver flexibel matchning, förgrening och undantag. n8n är bättre när du vill ha kontroll över logiken, och med self-hosting betalar du inte mer bara för att volymen sticker iväg under en rekryteringspush. Nackdelen är lite mer ansvar för uppsättningen. Om du vill ha hjälp att välja, prata med en automationsexpert.

Felfri data gör rekrytering lugnare. Sätt upp detta en gång, så slutar inkorgen vara databasen.

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