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
flowchart LR
subgraph sg0["Form Submit Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>Form Submit Trigger"]
n1["<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/form.svg' width='40' height='40' /></div><br/>Email Capture Form"]
n2["<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/code.svg' width='40' height='40' /></div><br/>Create Verification Token"]
n3@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Verification Email", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Log Entry to Sheet", pos: "b", h: 48 }
n5["<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/form.svg' width='40' height='40' /></div><br/>Code Entry Form"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Token", 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/form.svg' width='40' height='40' /></div><br/>Primary Signup Form"]
n8["<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/form.svg' width='40' height='40' /></div><br/>Invalid Code Form"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Secondary Validation", pos: "b", h: 48 }
n10["<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/form.svg' width='40' height='40' /></div><br/>Reset Request Form"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Continue Workflow Step", pos: "b", h: 48 }
n7 --> n11
n6 --> n7
n6 --> n8
n1 --> n2
n10 --> n1
n3 --> n5
n4 --> n3
n9 --> n7
n9 --> n10
n2 --> n4
n5 --> n6
n0 --> n1
n8 --> n9
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 n6,n9 decision
class n4 database
class n2 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n5,n7,n8,n10 customIcon
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
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till och öppna Form Submit Trigger.
- 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.
- Koppla Form Submit Trigger till Email Capture Form för att matcha exekveringsflödet.
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.
- Öppna Email Capture Form och konfigurera fälten som krävs för att samla in användarens e-postadress.
- Öppna Code Entry Form och lägg till ett fält för verifieringskoden.
- Öppna Primary Signup Form och konfigurera de sista registreringsfälten för bekräftade användare.
- Ö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.
- Öppna Reset Request Form så att användare kan begära en ny verifieringstoken.
- Bekräfta flödet: Form Submit Trigger → Email Capture Form → Create Verification Token.
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.
- Öppna Create Verification Token och implementera token-genereringslogik i kodeditorn.
- Säkerställ att Create Verification Token returnerar token och e-post till efterföljande noder.
- Öppna Validate Token och konfigurera IF-villkoren för att jämföra den inskickade koden mot den sparade token.
- Bekräfta vägvalen: Code Entry Form → Validate Token → Primary Signup Form (true) och Invalid Code Form (false).
- Ö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.
- Öppna Log Entry to Sheet och välj mål-kalkylarket och fliken.
- Mappa inkommande värden för e-post och token från Create Verification Token till rätt kolumner.
- Behåll flödet: Create Verification Token → Log Entry to Sheet → Dispatch Verification Email.
- Inloggningsuppgifter krävs: koppla era Google Sheets-inloggningsuppgifter.
Steg 5: konfigurera utskick av verifieringsmejl
Skicka verifieringsmejlet till användaren med den genererade token.
- Öppna Dispatch Verification Email och sätt fältet To till den insamlade e-posten från Email Capture Form.
- Skriv ämne och brödtext så att de inkluderar verifieringstoken som returneras från Create Verification Token.
- Bekräfta routingen till Code Entry Form efter att mejlet skickats.
- Inloggningsuppgifter krävs: koppla era e-postuppgifter (SMTP).
Steg 6: slutlig routing och avslutningssteg
Efter lyckad verifiering går arbetsflödet vidare till avslutningssteget.
- Bekräfta att Primary Signup Form routar direkt till Continue Workflow Step.
- 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.
- Använd Execute Workflow från Form Submit Trigger och skicka in en test-e-post i Email Capture Form.
- Verifiera att en ny rad dyker upp i Log Entry to Sheet och att mejlet skickas från Dispatch Verification Email.
- Skicka in token i Code Entry Form och bekräfta att Validate Token routar till Primary Signup Form.
- Testa en ogiltig token för att bekräfta att Invalid Code Form → Secondary Validation routar till Reset Request Form vid behov.
- När allt fungerar, växla arbetsflödet till Active för användning i produktion.
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
Cirka 30 minuter om dina Google Sheets- och SMTP-uppgifter är klara.
Nej. Du kopplar främst ihop konton och redigerar några formulär- och e-posttexter.
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).
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.
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.
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”.
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.
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.