En ny lead kommer in. Du svarar snabbt. Sedan dyker den “enkla” delen upp: att hitta avsändaren igen senare, logga dem någonstans och inse att din lista har tre versioner av samma person.
Den här Gmail-MySQL-automationen slår hårt mot marketing ops-team, men även byråägare som spårar inkommande förfrågningar och säljare som lever i inkorgen märker av den. Du får en korrekt formaterad kontakt-databas som uppdaterar sig själv, även när namn saknas eller är röriga.
Det här flödet lyssnar efter nya Gmail-mejl, extraherar avsändardetaljer och upsertar dem i MySQL så att du bygger en användbar leadlista medan du jobbar. Du får se hur det körs, vad du behöver och var team oftast snubblar.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutlig output:
n8n Workflow Template: Gmail till MySQL, leads sparas och avdupliceras
flowchart LR
subgraph sg0["Receive Email 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/mysql.dark.svg' width='40' height='40' /></div><br/>Insert New Client in MySQL"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Receive Email", pos: "b", h: 48 }
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/>Extract Client Name and Email"]
n1 --> n2
n2 --> n0
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 n1 trigger
class n0 database
class n2 code
classDef customIcon fill:none,stroke:none
class n0,n2 customIcon
Problemet: din “leadlista” bor i en inkorg
Om inkommande leads kommer via Gmail är din databas förmodligen en slump. Någon kopierar namn till ett kalkylark. Någon annan exporterar kontakter “senare”. Under tiden mejlar samma person två gånger med olika visningsnamn, eller så får du ett svar från ett delat domänalias, och din lista blir som en skräplåda. Det handlar inte bara om tid. Det är det ständiga tvivlet: “Har vi redan den här kontakten?” och “Vem äger den här leaden?” Den osäkerheten bromsar uppföljningar och gör rapportering nästan omöjlig.
Friktionen byggs på. Här är var det fallerar i verkligheten.
- Du slösar runt 10 minuter per lead på att hoppa mellan Gmail, ett ark och ett CRM bara för att fånga grunderna.
- Dubblettkontakter smyger sig in, så segment och outreach-listor blir snabbt opålitliga.
- Namn är inkonsekventa (“John S.” vs “John Smith”), vilket leder till pinsamma personaliseringsmissar.
- När någon tappar åtkomst till en inkorg tappar du historiken och listan över “vem som kontaktade oss” samtidigt.
Lösningen: fånga nya Gmail-avsändare och deduplicera i MySQL
Det här flödet gör din Gmail-inkorg till en leadkanal som alltid är uppdaterad. Varje gång ett nytt mejl landar i inkorgen hämtar n8n automatiskt avsändarens uppgifter och strukturerar dem i ett förutsägbart format. Den extraherar avsändarens e-postadress och försöker få fram ett användbart namn (och om namnet inte finns hittar den inte på ett). Sedan sparar den kontakten i din MySQL-databas med ett upsert-upplägg: om e-postadressen redan finns uppdateras posten i stället för att dupliceras. Du får en rad per unik e-postadress, vilket är vad de flesta rapport- och outreach-system faktiskt behöver.
Flödet startar med en Gmail-trigger som kontrollerar ny post varje minut. Därefter tar ett litet processsteg fram avsändarnamn och e-post på ett strukturerat sätt. Till sist lägger MySQL in kontakten eller uppdaterar befintlig post, och håller e-postkolumnen unik så att dubbletter inte kan byggas på i det tysta.
Det du får: automation vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att din byrå får 15 nya inkommande mejl per dag från webbformulär, rekommendationer och partnerintroduktioner. Att spara varje avsändare manuellt i ett ark eller CRM tar cirka 10 minuter styck, vilket blir ungefär 2,5 timmar per dag, och då är deduplicering inte ens inräknad. Med det här flödet är “fångsttiden” i princip noll: Gmail triggar körningen, n8n extraherar avsändaren och MySQL lagrar eller uppdaterar posten i bakgrunden. Du kollar databasen när du faktiskt behöver den, och då är den redan korrekt formaterad.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger funkar bra)
- Gmail för att trigga på nya inkommande mejl.
- MySQL för att lagra och deduplicera kontakter centralt.
- MySQL-tabell (skapa kolumner: name (kan vara null), email (unik))
Svårighetsgrad: Nybörjare. Du kopplar Gmail- och MySQL-inloggning, väljer sedan rätt tabell och kolumner.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett nytt mejl kommer in i Gmail. Flödet bevakar din inkorg och kontrollerar nya meddelanden ungefär varje minut, så leads behöver inte vänta på att någon kommer ihåg att “uppdatera listan”.
Avsändaruppgifter normaliseras. n8n hämtar avsändarens e-post och försöker härleda ett namn från det Gmail skickar med. Om inget namn finns sparar den ett null-värde i stället för smutsiga platshållare.
MySQL upsertar kontakten. Skrivningen till databasen använder e-postkolumnen som unik identifierare. Om e-postadressen är ny skapar den en rad. Om den redan finns uppdaterar den namnet så att posten blir bättre över tid.
Din databas blir “source of truth”. Nu kan du skapa outreach-listor, göra domänanalys eller tidsbaserad rapportering från MySQL i stället för att skrapa inkorgshistorik.
Du kan enkelt ändra vad du sparar (t.ex. ämnesrad, tråd-ID eller snippet) för att stödja attribution och uppföljningsflöden. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Gmail-triggern
Ställ in arbetsflödet så att det lyssnar efter nya Gmail-meddelanden och startar bearbetningen så snart e-post kommer in.
- Lägg till och öppna Gmail Intake Trigger.
- I Poll Times, bekräfta att schemat inkluderar
everyMinute. - Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
- Lämna Filters tomt om ni vill fånga all inkommande e-post.
Steg 2: Anslut MySQL för kontaktlagring
Förbered databasanslutningen så att arbetsflödet kan upserta kontakter i er MySQL-tabell.
- Öppna Upsert Contact in MySQL och välj er mål-databas.
- Inloggningsuppgifter krävs: Anslut era mySql-inloggningsuppgifter.
- Ställ in Table till
contacts.
Steg 3: Konfigurera logik för tolkning av avsändare
Extrahera avsändarens namn och e-postadress från Gmail-payloaden så att databasen får rena fält.
- Öppna Derive Sender Details och ställ in Mode till
runOnceForEachItem. - Klistra in den angivna JavaScript-koden i JS Code:
let email = $json.From.trim(); let name = null; if (email.includes('<')) { name = email.split('<')[0].trim(); email = email.split('<')[1].replace('>', '').trim(); } return { "name": name, "email": email }
⚠️ Vanlig fallgrop: Om er Gmail-trigger-data inte innehåller ett From-fält kommer koden att misslyckas – verifiera inkommande payload vid testning.
Steg 4: Konfigurera MySQL-upsert-åtgärden
Mappa den tolkade avsändardatan till er databas och säkerställ att upsert använder e-postadressen som unik nyckel.
- I Upsert Contact in MySQL, ställ in Operation till
upsert. - Under Values to Send, mappa name till
{{ $json.name }}. - Ställ in Column to Match On till
email. - Ställ in Value to Match On till
{{ $json.email }}.
Steg 5: Testa och aktivera ert arbetsflöde
Validera hela flödet från Gmail-inhämtning till databas-upsert och slå sedan på det för kontinuerlig insamling.
- Klicka på Execute Workflow och skicka ett testmejl till det anslutna Gmail-kontot.
- Bekräfta att Derive Sender Details ger ut fälten
nameochemail. - Verifiera att tabellen contacts uppdateras eller att en ny rad skapas av Upsert Contact in MySQL.
- Växla arbetsflödet till Active för att aktivera kontinuerlig bearbetning.
Vanliga fallgropar
- Gmail-inloggningar kan gå ut eller tappa behörigheter efter en Google-säkerhetsändring. Om körningar plötsligt misslyckas, kontrollera först status för Gmail-credentials i n8n och koppla kontot igen.
- Om du hanterar en burst av mejl (t.ex. efter en kampanj) kan exekveringstiderna börja köa. Ge flödet tillräcklig kapacitet (eller justera batching) så att MySQL inte får överlappande skrivningar som ser ut som “slumpmässiga” fel.
- Deduplicering i MySQL fungerar bara om din e-postkolumn verkligen är UNIQUE och är korrekt mappad i nodinställningarna. Om fel kolumn väljs skapar du dubbletter i det tysta och märker det först när outreach-listor börjar bete sig konstigt.
Vanliga frågor
Cirka 30 minuter om din MySQL-tabell är klar.
Nej. Du kopplar Gmail och MySQL, och väljer sedan rätt tabell och kolumner.
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 volym. Du behöver också räkna in kostnader för MySQL-hosting om du inte redan har en databas.
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 serverhantering.
Ja, och det är en praktisk uppgradering. Lägg till kolumner i din MySQL-tabell (t.ex. subject, thread ID, message ID eller snippet), och klicka sedan på “Add Value” i noden “Upsert Contact in MySQL” och mappa de extra Gmail-fälten. Många team sparar också mottagningsdatum och mottagaradress för att kunna göra bättre rapportering senare.
Oftast beror det på att auktoriseringen har gått ut eller att en Google-säkerhetsändring ogiltigförklarat anslutningen. Koppla om Gmail-credentials i n8n och bekräfta sedan att triggern pekar på rätt inkorg och har behörighet att läsa nya meddelanden. Om det fortfarande misslyckas, kontrollera om inkorgen tar emot mejl på ett sätt som triggern kan se (filter och vidarebefordringsregler kan vara luriga). Till sist: granska n8n:s exekveringslogg för det exakta Google-felmeddelandet, eftersom det ofta är specifikt.
På n8n Cloud Starter begränsas du främst av månatliga körningar; self-hosting tar bort exekveringsgränser men beror på din server. För en typisk småföretags-inkorg är flödet lättviktigt eftersom det bara behandlar avsändaruppgifter och skriver en MySQL-rad per mejl. Om du fångar tusentals mejl per dag, se till att din MySQL-indexering är robust och överväg batching eller rate-limiting.
Ofta, ja. n8n gör “upsert med unik e-post”-mönstret rakt på sak, och du kan self-hosta för obegränsade körningar, vilket spelar roll när du kontrollerar nya meddelanden varje minut. Det är också enklare att bygga ut senare (t.ex. lägga till enrichment via HTTP Request eller routa vissa avsändare till olika tabeller) utan att betala per extra steg. Zapier eller Make kan fortfarande funka om du bara behöver ett enkelt tvåstegsflöde “nytt mejl → skapa rad” och du inte bryr dig om deduplicering. Om du är osäker, prata med en automationsexpert och mappa det mot din volym och dina mål.
När detta väl rullar slutar inkorgen vara din databas. Flödet fångar repetitiva moment i bakgrunden, och du får en leadlista du faktiskt kan lita 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.