Du har äntligen en leadlista som är värd att importera. Sedan börjar det stökiga: dubbla företag, halvt uppdaterade poster och inget strukturerat sätt att förklara vad som ändrades (eller vad som skapade fel) efter körningen.
Den här lead import automation träffar marketing ops-team först, men även grundare och kundansvariga på byråer märker av den. Du får verifierade rader från Google Sheets in i Airtable, dubbletter flaggas i stället för att tyst korrupta din CRM, plus en enkel e-postrapport som du kan vidarebefordra till vem som helst.
Nedan ser du hur workflowet fungerar, vad det eliminerar och vad du ska se upp med när du anpassar det för dina egna leadkällor och fält.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Google Sheets till Airtable, rensad leadimport
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Update row(s)", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Get row(s)", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Insert row", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Get row(s)1", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
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/airtable.svg' width='40' height='40' /></div><br/>Create Company"]
n9@{ icon: "mdi:cog", form: "rounded", label: "Update row(s) - Creation", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Update row(s) - Update", pos: "b", h: 48 }
n11["<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/>Code"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Get row(s) Leads", pos: "b", h: 48 }
n14["<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/airtable.svg' width='40' height='40' /></div><br/>Search Company"]
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n16["<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/airtable.svg' width='40' height='40' /></div><br/>Update Company"]
n17@{ icon: "mdi:database", form: "rounded", label: "Create row(s) Logs", pos: "b", h: 48 }
n11 --> n12
n4 --> n5
n7 --> n15
n12 --> n8
n12 --> n16
n12 --> n17
n2 --> n1
n3 --> n13
n5 --> n6
n1 --> n14
n8 --> n9
n14 --> n11
n16 --> n10
n15 --> n4
n15 --> n2
n13 --> n15
n17 --> n7
n10 --> n7
n9 --> n7
n0 --> n3
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 n12 decision
class n8,n13,n14,n16,n17 database
class n11 code
classDef customIcon fill:none,stroke:none
class n8,n11,n14,n16 customIcon
Utmaningen: felfria lead-importer utan dubbletter
Att importera leads låter enkelt tills du gör det mer än en gång. Det är vid den andra importen det blir rörigt: samma företag dyker upp med lite olika stavning, ett nytt telefonnummer skriver över ett bra, eller så slutar det med tre poster för “Acme Ltd” i CRM:en som sälj nu måste reda ut. Och när någon frågar “Hur många skapades jämfört med uppdaterades?” sitter du fast och gissar eller gör en manuell granskning. Det är tid du borde lägga på att förbättra targeting och uppföljningar, inte på att agera databasstädare.
Det eskalerar snabbt. Här är var det fallerar i riktiga team.
- Manuella importer visar inte tillförlitligt i efterhand vad som skapades, uppdaterades eller hoppades över.
- Dubbletter smyger sig in eftersom matchning på “företagsnamn” aldrig är så konsekvent som du vill att den ska vara.
- När ett företag matchar flera poster skriver du antingen över fel post eller så låser du dig och gör ingenting.
- Att rätta problem i efterhand innebär att leta i gamla kalkylark, Slack-trådar och delvis Airtable-historik.
Lösningen: verifierade Google Sheets-leads till Airtable, med rapport
Det här workflowet kör en kontrollerad import till din Airtable-CRM, men gör det som en noggrann operatör, inte som ett vårdslöst “dumpa och hoppas”-script. Du börjar med ett Google Sheet med leads där e-postens giltighet redan har kontrollerats, och bara rader markerade som giltiga (“Valid Email” är lika med OK) släpps igenom. För varje lead slår workflowet upp företaget i Airtable och avgör nästa steg: skapa en ny företagspost, uppdatera den befintliga eller flagga ett datakvalitetsproblem om flera träffar dyker upp. Under bearbetningen håller det en intern körningslogg i n8n (med en Data Table) så att du inte behöver extra läs/skriv-stök i Google Sheets bara för att förstå vad som hände.
Workflowet startar med en manuell körning, hämtar kvalificerade rader från Google Sheets och bearbetar dem sedan i batchar för att hålla sig stabilt vid större importer. I slutet skickar Gmail en importrapport (poster lästa, skapade, uppdaterade) och eventuella problem med “flera matchningar” skrivs till en Logs-flik i arket för rensning.
Vad som förändras: före vs efter
| Vad detta eliminerar | Effekten du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att du importerar cirka 2 000 verifierade leads från ett Sheet till Airtable varje vecka. Manuellt kan du lägga runt 1 minut per rad på att söka företaget, avgöra “skapa eller uppdatera” och notera problem, vilket är ungefär 30+ timmar monotont arbete (och det är innan fixar). Med det här workflowet är starten i princip tiden det tar att trycka på kör, och sedan vänta på batchbearbetningen och Gmail-rapporten. De flesta team får tillbaka sin vecka och behöver bara röra den lilla handfull rader som hamnar i Logs-fliken.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din leadkälla och loggning av problem
- Airtable för att lagra och hantera företagsposter
- Gmail för att skicka importrapporten automatiskt
Kunskapsnivå: Medel. Du kopplar konton, bekräftar fältmappning och justerar ett eller två villkor som “Valid Email = OK”.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Workflowflödet
Manuell körning startar allt. Du startar workflowet när du är redo att importera, vilket är användbart för kampanjbaserade listor eller veckovisa uppdateringar.
Endast verifierade leads väljs. n8n läser Google Sheets (Sheet1) och filtrerar till leads där fältet “Valid Email” är lika med OK, så att du inte smutsar ner Airtable med skräpkontakter.
Varje lead kontrolleras mot Airtable. Workflowet söker i din Airtable-tabell Company och ett litet utvärderingssteg avgör utfallet: skapa en post, uppdatera den enda träffen eller hantera “flera matchningar” som ett datakvalitetsproblem.
Spårning och rapportering sker automatiskt. n8n:s interna Data Table uppdaterar räknare för poster lästa, skapade och uppdaterade. Om det finns ett dubblettproblem lägger den till en notering i en Logs-flik i Google Sheets. Till sist mejlar Gmail rapporten så att du kan lita på körningen utan att ens öppna Airtable.
Du kan enkelt ändra fältmappning och matchningsregler så att de passar din egen definition av “dubblett”. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startar manuellt och skapar därefter en spårningspost för körningen.
- Lägg till och öppna Manual Launch Start för att bekräfta att den är triggern för arbetsflödet.
- Koppla Manual Launch Start till Create Tracker Row för att initiera spårningsraden innan ni bearbetar leads.
- I Create Tracker Row ställer ni in executionId till
{{ $execution.id }}och sätter recordsRead, recorsCreated och recordsUpdated till0. - Ställ in dataTableId i Create Tracker Row till
[YOUR_ID](EML_Import).
Tips: Spårningstabellen används av flera Data Table-noder; se till att ni återanvänder samma [YOUR_ID] överallt.
Steg 2: Anslut Google Sheets
Leadposter läses in från ett Google Sheet och dubbletter loggas till ett separat loggark.
- Öppna Retrieve Lead Rows och välj Google Sheets-dokument-ID
[YOUR_ID]samt arknamnSheet1. - Konfigurera filtret så att Valid Email är lika med
OK. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve Lead Rows.
- Öppna Append Quality Log och ställ in destinationsdokument-ID till
[YOUR_ID]och arknamn tillLogs. - Mappa Email till
{{ $json.records[0].Email }}, Company till{{ $json.records[0].Company }}och sätt Remark tillData quality Issue : Presence of duplicate(s) => to be investigated. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Append Quality Log.
⚠️ Vanlig fallgrop: Om arknamnen eller dokument-ID:n inte matchar ert Google Sheet kommer Retrieve Lead Rows och Append Quality Log att returnera tomma resultat.
Steg 3: Sätt upp batchning av leads och uppdateringar av spårning
Det här arbetsflödet batchar leads, begränsar antal objekt för summering och uppdaterar spårningstabellen via flera Data Table-noder.
- I Iterate Lead Batches behåller ni standardinställningarna för batch för att bearbeta leads sekventiellt.
- Iterate Lead Batches skickar utdata parallellt till både Limit Items och Fetch Tracker Row för att samtidigt bearbeta batchdata och hämta spårningsraden.
- I Limit Items ställer ni in Keep till
lastItemsför att endast behålla det senaste objektet för summering. - Konfigurera Fetch Tracker Row och Fetch Tracker Summary med operation satt till
getoch filtrera med{{ $('Create Tracker Row').item.json.id }}. - I Modify Tracker Row ställer ni in recordsRead till
{{ $json.recordsRead + 1 }}och filtrerar på{{ $('Create Tracker Row').item.json.id }}. - I Increment Created Count ställer ni in recorsCreated till
{{ $('Fetch Tracker Row').item.json.recorsCreated + 1 }}. - I Increment Updated Count ställer ni in recordsUpdated till
{{ $('Fetch Tracker Row').item.json.recordsUpdated + 1 }}.
Tips: Alla sex Data Table-noder återanvänder samma EML_Import-tabell. Dubbelkolla att [YOUR_ID]-värdena matchar mellan spårningsnoderna.
Steg 4: Sätt upp företagsuppslagning och routningslogik
Leads kontrolleras mot Airtable och routas baserat på om en företagspost finns.
- Öppna Lookup Company och ställ in operation till
search. - Konfigurera filterByFormula till
=AND({Company} = "{{ $('Iterate Lead Batches').item.json.Company }}", {Email} = "{{ $('Iterate Lead Batches').item.json.Email }}"). - Autentisering krävs: Anslut era airtableTokenApi-inloggningsuppgifter i Lookup Company.
- I Evaluate Results behåller ni JavaScript-logiken som den är för att returnera
resultType-värdenanone,oneellermultiple. - I Route by Outcome verifierar ni att de tre reglerna routar på
{{ $json.resultType }}med rätt värdennone,oneochmultiple. - Route by Outcome skickar utdata parallellt till Generate Company Record, Revise Company Record och Append Quality Log baserat på villkoret för grenen.
⚠️ Vanlig fallgrop: Om Lookup Company inte returnerar en giltig Airtable-post kommer Evaluate Results att klassificera den som none och skapa en ny företagspost.
Steg 5: Konfigurera CRM-uppdateringar och rapportering
Nya företag skapas, befintliga uppdateras och en rapport mejlas efter bearbetningen.
- I Generate Company Record mappar ni Airtable-fält till
{{ $('Iterate Lead Batches').item.json.FieldName }}-värden (t.ex. Company, Email, City, ZIP Code, URL Site). - Autentisering krävs: Anslut era airtableTokenApi-inloggningsuppgifter i Generate Company Record.
- I Revise Company Record behåller ni operation som
updateoch matchingColumns satt tillCompanyochEmail. - Autentisering krävs: Anslut era airtableTokenApi-inloggningsuppgifter i Revise Company Record.
- I Dispatch Email Report ställer ni in sendTo till
[YOUR_EMAIL]och behåller subject somREPORT EML IMPORT DE LEADS. - Behåll message-mallen som
=Leads Import Report Number of records read: {{ $json.recordsRead }} Number of records created : {{ $json.recorsCreated }} Number of records updated : {{ $json.recordsUpdated }}. - Autentisering krävs: Anslut era gmailOAuth2-inloggningsuppgifter i Dispatch Email Report.
- I Delay Cycle ställer ni in amount till
1för att pausa innan nästa batch loopar.
Tips: Eftersom Dispatch Email Report använder spårningsräknare, säkerställ att Fetch Tracker Summary är kopplad från Limit Items för att fånga de senaste totalerna.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera att poster synkas och att rapporter skickas korrekt.
- Klicka på Execute Workflow på Manual Launch Start för att köra ett test med exempeldata för leads.
- Bekräfta att Create Tracker Row skriver en ny spårningspost och att Modify Tracker Row ökar recordsRead.
- Verifiera Airtable-uppdateringar: Generate Company Record ska skapa nya poster och Revise Company Record ska uppdatera matchningar.
- Kontrollera att Append Quality Log skriver dubbletter till Logs-arket och att Dispatch Email Report skickar sammanfattningsmejlet.
- När allt ser korrekt ut växlar ni arbetsflödet till Active för att använda det i produktion.
Se upp för
- Airtable-inloggningsuppgifter kan löpa ut eller sakna åtkomsträttigheter till basen. Om något skapar fel, kontrollera först Airtable-anslutningen i n8n under fliken Credentials och bekräfta sedan att bas och tabell fortfarande finns.
- Om du använder Wait-noder eller extern bearbetning kan tajming drifta. Det här workflowet loopar i batchar och använder en fördröjning mellan cykler, så öka väntetiden om senare noder ibland kör innan Airtable-ändringar syns.
- Loggning i Google Sheets är bara hjälpsam om strukturen i fliken “Logs” förblir konsekvent. Om du byter namn på flikar eller kolumner, uppdatera mappningen för Append Quality Log, annars kan workflowet “lyckas” utan att skriva detaljerna du behöver.
Vanliga frågor
Cirka 30 minuter om din Airtable-bas och dina kolumner i Sheet är klara.
Ja. Ingen kodning krävs, men du behöver matcha Google Sheets-kolumner mot Airtable-fält noggrant en gång.
Ja. n8n har ett gratis alternativ 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å ta hänsyn till begränsningar i dina planer för Airtable och Google Workspace.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Du justerar främst filtret i Google Sheets och logiken för “företagsmatchning”. Du kan till exempel ändra villkoret “Valid Email = OK” i steget som hämtar leads och sedan justera Airtable-sökningen så att den matchar på URL Site eller Email i stället för företagsnamn. Vanliga anpassningar är att skriva dubbletter till Airtable i stället för Sheets, lägga till ett fält för “Import Batch ID” och ändra vad som räknas som “flera matchningar” i utvärderingslogiken.
Oftast handlar det om rättigheter eller att bas/tabell har ändrats. Återanslut Airtable i n8n, bekräfta att token fortfarande har åtkomst till rätt workspace och dubbelkolla att tabellnamnet Company och fältnamnen matchar vad workflowet förväntar sig. Om det bara fallerar vid större körningar kan du slå i Airtables rate limits, så minska batchstorleken eller lägg in en lite längre väntetid mellan cykler.
I praktiken kan den hantera tusentals rader per körning; den verkliga begränsningen är dina kvoter i Airtable och Google Sheets, plus hur snabbt du vill att batcharna ska bearbetas.
Ofta ja, eftersom workflowet behöver förgreningar (skapa vs uppdatera vs logga dubbletter) och en tillförlitlig körningsrapport, inte bara en rak “rad in, post ut”-synk. n8n ger dig också ett alternativ för egen hosting, vilket är viktigt när du kör importer ofta eller i högre volym. En annan stor skillnad är den interna Data Table som används för rapportering, så du tvingas inte skriva räknare tillbaka till externa verktyg bara för att förstå resultatet. Zapier eller Make kan fortfarande vara helt okej om din process är enkel och du inte bryr dig om detaljerad spårning. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl är på plats slutar importer vara en riskfylld händelse och blir en rutin. Workflowet håller Airtable felfritt, lyfter fram dubbletter och ger dig en rapport 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.