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 + SMTP: rensad double opt-in-leads

Rickard Andersson Partner, Nodenordic.se

Din leadlista ser ”bra” ut tills du skickar en kampanj och blir nedslagen av studs, spamfällor och mejl med stavfel som aldrig borde ha slunkit igenom.

double opt-in automation löser det vid källan. En marknadschef som vill skydda leveransbarheten märker det först. En småföretagare som ser annonsbudget rinna iväg på fejkade registreringar märker det också. Och om du driver kundtrattar vet du redan hur obekvämt samtalet ”det är listkvaliteten som är problemet” kan bli.

Det här flödet använder n8n + Google Sheets + SMTP för att verifiera varje ny e-postadress med en 6-siffrig kod innan personen når ditt riktiga registreringsformulär. Du får se hur det fungerar, vad du behöver och vad du ska justera för ditt varumärke.

Så fungerar den här automationen

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

n8n Workflow Template: Google Sheets + SMTP: rensad double opt-in-leads

Problemet: overifierade leads förstör listkvaliteten

De flesta leadformulär är byggda för snabbhet, inte noggrannhet. Någon skriver ”gmial.com”, trycker skicka, och dina verktyg behandlar det som en riktig kontakt. Bottar slinker igenom när du kör annonser. Riktiga personer skriver fel adress på mobilen och undrar sedan varför de aldrig får din uppföljning. Efter det sprider sig skadan: högre studsfrekvens, fler supportärenden av typen ”varför fick jag inget mejl?”, och kampanjer som presterar sämre eftersom en del av listan aldrig gick att nå från början. Det är utmattande att felsöka, eftersom problemet startade i formuläret för flera dagar sedan.

Det summeras snabbt. Här är var det vanligtvis brister i den dagliga marknadsdriften.

  • Du slutar betala för leads som aldrig kan konvertera eftersom mejladressen var fel eller fejk.
  • Team rensar listor manuellt i Google Sheets, vilket betyder att rensningen sker efter att skadan redan är skedd.
  • Kampanjrapportering blir brusig eftersom ”nya leads” inkluderar personer som aldrig bekräftade att de finns.
  • Leveransbarheten försämras över tid, och åtgärden tar längre tid än själva fallet.

Lösningen: verifierade registreringar lagras i Google Sheets

Det här n8n-flödet lägger till ett tydligt verifieringslager innan ditt huvudsakliga registreringsformulär ens visas. En besökare skickar först in sin mejladress i ett lättviktigt startformulär. n8n genererar en unik 6-siffrig kod, lagrar den i Google Sheets tillsammans med inskickningsdetaljer (tidsstämpel, exekverings-ID, samtyckesflagga och e-post), och skickar sedan koden via SMTP för att bevisa att personen har kontroll över inkorgen. Besökaren skriver in koden i ett andra formulär, och flödet validerar den mot rätt rad i Sheets. Om koden matchar släpps personen vidare till ditt riktiga primära formulär. Om inte får de en tydlig väg med ”ogiltig kod” med ett nytt försök och ett återställningsalternativ om de fastnar.

Flödet startar med en n8n Form Trigger och ett formulär för insamling av e-post. Därifrån skapar n8n verifieringstoken, loggar den i Google Sheets och skickar ett verifieringsmejl via din SMTP-server. Till sist validerar det den inskrivna koden och skickar användaren till det primära registreringsformuläret, eller till ett försök igen-/återställningsflöde om valideringen misslyckas.

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

Exempel: så här ser det ut

Säg att du samlar in cirka 50 leads i veckan från annonser och partnerskap. Om ens 10 av dem är stavfel eller skräp lägger du oftast runt 5 minuter per ”dåligt lead” på att upptäcka det, rätta det eller mejla support, vilket är ungefär en timmes rensning per vecka. Med det här flödet är den enda manuella stunden att besökaren skriver in en kod (cirka 1 minut för dem). Du granskar bara ett strukturerat Google Sheet och går vidare.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra koder och inskick
  • SMTP-e-posttjänst för att skicka verifieringskoder pålitligt
  • Google Sheets OAuth2-inloggningsuppgift (skapa den i n8n Credentials)

Kunskapsnivå: Nybörjare. Du kopplar in inloggningsuppgifter, klistrar in ett Sheet ID och redigerar ett par e-post- och formulärtexter.

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

Så fungerar det

Formulärinskick startar flödet. En besökare går till ditt startformulär (flödets Form Submit Trigger) och anger sin mejladress, plus en valfri samtyckesruta du vill ha med.

En verifieringskod skapas och sparas. n8n skapar en unik 6-siffrig token och loggar den i Google Sheets med nyttig kontext som tidsstämpel och exekverings-ID. Det här är din enkla ”databas” för uppslag och felsökning.

Verifieringsmejlet skickas via SMTP. Flödet skickar koden till adressen personen just angav, med dina SMTP-uppgifter och din valda avsändaridentitet. Den ”Från”-raden spelar större roll än många tror, ärligt talat.

Kodinmatningen avgör vad som händer härnäst. Besökaren skriver in koden i ett uppföljningsformulär. Om koden matchar det som finns lagrat i Sheets skickas de vidare till ditt primära registreringsformulär. Om den inte gör det hamnar de i en väg för ogiltig kod, får ett nytt valideringsförsök och ett alternativ att begära återställning vid behov.

Du kan enkelt ändra fälten i det primära formuläret så att de matchar din lead magnet, demobokning eller registreringsprocess, utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera formulärtriggern

Starta arbetsflödet när en besökare skickar in det första formuläret.

  1. Lägg till och öppna Form Submit Trigger.
  2. Kopiera den genererade webhook-URL:en från Form Submit Trigger och bädda in den i ert front-end-flöde för formulärinlämning.
  3. Koppla Form Submit Trigger till Email Capture Form för att matcha exekveringsflödet.
Om ert front-end-formulär är externt, testa webhook-URL:en med en exempelinsändning innan ni går vidare till nästa steg.

Steg 2: konfigurera e-postinsamling och formulärrouting

Det här arbetsflödet använder flera formulärnoder; konfigurera dem som en grupp samtidigt som ni behåller den definierade routingen.

  1. Öppna Email Capture Form och konfigurera fälten som krävs för att samla in användarens e-postadress.
  2. Öppna Code Entry Form och lägg till ett fält för verifieringskoden.
  3. Öppna Primary Signup Form och konfigurera de sista registreringsfälten för bekräftade användare.
  4. Öppna Invalid Code Form för att förklara läget med ogiltig kod och ge en väg för att försöka igen.
  5. Öppna Reset Request Form så att användare kan begära en ny verifieringstoken.
  6. Bekräfta flödet: Form Submit TriggerEmail Capture FormCreate Verification Token.
⚠️ Vanlig fallgrop: Om ni ändrar namn på formulärfält, säkerställ att er token-skapandelogik och era e-postmallar refererar till de uppdaterade fältnamnen.

Steg 3: sätt upp logik för att skapa och validera token

Skapa en verifieringstoken och validera den innan ni låter användare fortsätta.

  1. Öppna Create Verification Token och implementera token-genereringslogik i kodeditorn.
  2. Säkerställ att Create Verification Token returnerar token och e-post till efterföljande noder.
  3. Öppna Validate Token och konfigurera IF-villkoren för att jämföra den inskickade koden mot den sparade token.
  4. Bekräfta vägvalen: Code Entry FormValidate TokenPrimary Signup Form (true) och Invalid Code Form (false).
  5. Öppna Secondary Validation och ställ in villkor för att routa omförsök antingen tillbaka till Primary Signup Form eller till Reset Request Form.

Steg 4: koppla Google Sheets-loggning

Logga verifieringsförfrågningar till ett kalkylark innan e-postmeddelandet skickas.

  1. Öppna Log Entry to Sheet och välj mål-kalkylarket och fliken.
  2. Mappa inkommande värden för e-post och token från Create Verification Token till rätt kolumner.
  3. Behåll flödet: Create Verification TokenLog Entry to SheetDispatch Verification Email.
  4. Inloggningsuppgifter krävs: koppla era Google Sheets-inloggningsuppgifter.

Steg 5: konfigurera utskick av verifieringsmejl

Skicka verifieringsmejlet till användaren med den genererade token.

  1. Öppna Dispatch Verification Email och sätt fältet To till den insamlade e-posten från Email Capture Form.
  2. Skriv ämne och brödtext så att de inkluderar verifieringstoken som returneras från Create Verification Token.
  3. Bekräfta routingen till Code Entry Form efter att mejlet skickats.
  4. Inloggningsuppgifter krävs: koppla era e-postuppgifter (SMTP).
⚠️ Vanlig fallgrop: Om ni använder en delad inkorg för SMTP, säkerställ att er avsändaradress är verifierad för att undvika leveransproblem.

Steg 6: slutlig routing och avslutningssteg

Efter lyckad verifiering går arbetsflödet vidare till avslutningssteget.

  1. Bekräfta att Primary Signup Form routar direkt till Continue Workflow Step.
  2. Använd Continue Workflow Step som en överlämningspunkt för efterföljande automatiseringar (t.ex. CRM-synk eller onboarding).

Steg 7: testa och aktivera ert arbetsflöde

Kör end-to-end-tester för att säkerställa att double opt-in-loopen fungerar korrekt.

  1. Använd Execute Workflow från Form Submit Trigger och skicka in en test-e-post i Email Capture Form.
  2. Verifiera att en ny rad dyker upp i Log Entry to Sheet och att mejlet skickas från Dispatch Verification Email.
  3. Skicka in token i Code Entry Form och bekräfta att Validate Token routar till Primary Signup Form.
  4. Testa en ogiltig token för att bekräfta att Invalid Code FormSecondary Validation routar till Reset Request Form vid behov.
  5. När allt fungerar, växla 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

Vanliga fallgropar

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera n8n-sidan Credentials och bekräfta att det anslutna Google-kontot kan redigera målarket.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder misslyckas på grund av tomma svar.
  • SMTP-leverantörer kan tyst blockera eller strypa meddelanden som ser ”malliga” ut. Om koderna inte kommer fram, kontrollera SMTP-loggarna/skräpposten och anpassa ämnesraden och första raden så att det inte ser ut som massutskick.

Vanliga frågor

Hur lång tid tar det att sätta upp den här double opt-in-automationen?

Cirka 30 minuter om dina Google Sheets- och SMTP-uppgifter är klara.

Behöver jag kunna koda för att automatisera double opt-in-verifiering?

Nej. Du kopplar främst ihop konton och redigerar några formulär- och e-posttexter.

Är n8n gratis att använda för det här double opt-in-automationsflödet?

Ja. n8n har ett gratisalternativ 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 kostnader för SMTP-leverantör (ofta gratis till låg kostnad, beroende på volym).

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

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

Kan jag anpassa det här double opt-in-automationsflödet för en nyhetsbrevsregistrering?

Ja, och det är enkelt. Behåll Email Capture Form och Code Entry Form som de är, och anpassa sedan fälten i Primary Signup Form för ditt nyhetsbrev (förnamn, intressen, GDPR-samtycke). Du kan också ändra e-posttexten i noden Dispatch Verification Email så att den matchar din tonalitet och lägga till en supportadress som reply-to. Vanliga justeringar är att ändra formuleringen i kodmeddelandet, lägga till logik för kodens utgångstid och tagga verifierade rader i Google Sheets.

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

Oftast handlar det om OAuth-uppgiften eller behörigheter i arket. Återanslut Google Sheets OAuth2-uppgiften i n8n och bekräfta att samma Google-konto kan redigera kalkylarket och den specifika flik du valde i steget ”Store Data”. Om Sheet ID klistrades in fel får du också fel av typen ”not found”.

Hur många registreringar kan den här double opt-in-automationen hantera?

Betydligt fler än vad de flesta små listor behöver. På n8n Cloud Starter begränsas du av exekveringar per månad, och varje verifieringsflöde kan ta flera exekveringar eftersom det innehåller flera formulär och kontroller. Om du kör egen hosting finns ingen exekveringsgräns, så den praktiska begränsningen är din server och hur snabbt din SMTP-leverantör skickar mejl.

Är den här double opt-in-automationen bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet har flera användarinteraktioner (insamlingsformulär, kodinmatningsformulär, väg för försök igen, väg för återställning), plus villkorsstyrd förgrening, och n8n hanterar den typen av logik snyggt utan att bli en härva av separata Zaps eller scenarion. Du får också möjligheten att köra egen hosting, vilket spelar roll när volymen växer och exekveringsprissättning börjar bli viktigt. Zapier eller Make kan fortfarande vara bra för väldigt enkla automationer som ”skicka in formulär → skicka mejl”, men double opt-in är oftast mer än så. Om du vill ha en second opinion om vad som är enklast för din stack, prata med en automationsexpert.

Strukturerade listor är inte glamorösa, men de får allt annat att fungera bättre. Sätt upp det här en gång, så slipper dina framtida kampanjer betala priset för dagens slarviga registreringar.

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