Dina leadlistor ser bra ut tills du faktiskt ska använda dem. Dubbletter smyger sig in, fält matchar inte, och någon klistrar oundvikligen in en kolumn som flyttar allt ett steg åt sidan. Den röran blir snabbt till dålig outreach, trasiga rapporter och timmar av städning.
Marketing Ops stöter på det här när källor synkas in i Sheets. En säljchef märker det när säljarna klagar på ”fel mejladresser”. Och en konsult som bygger listor åt kunder har inte råd att leverera ostrukturerad data. Den här automatiseringen för Sheets Excel cleanup ger dig återanvändbara JavaScript-mönster för avduplicering och validering som du kan använda om och om igen.
Det här n8n-flödet är en praktisk handledning förklädd till ett spel. Du kör det en gång och öppnar sedan noderna för att sno koden och tillämpa den i dina egna leadflöden.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: Google Sheets + Excel: bättre leaddata med JavaScript
flowchart LR
subgraph sg0["🎯 Start Game Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "🎯 Start Game", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>🎲 Level 1: Data Warrior"]
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/>⚔️ Level 2: API Ninja"]
n3["<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/>🏆 Final Boss: Automation Mas.."]
n4["<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/>🎊 Game Over Screen"]
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/code.svg' width='40' height='40' /></div><br/>Initialize Game"]
n5 --> n1
n0 --> n5
n2 --> n3
n1 --> n2
n3 --> n4
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 n1,n2,n3,n4,n5 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n5 customIcon
Problemet: leaddata blir rörig snabbt
Leaddata kommer sällan från en enda korrekt formaterad källa. Du exporterar en CSV från ett formulärverktyg, kopierar en lista från LinkedIn, lägger till eventanmälningar från ett kalkylark och importerar sedan ”en fil till” från en partner. Resultatet är förutsägbart: dubbletter med små skillnader i namn, mejladresser med avslutande blanksteg, telefonnummer i fem olika format och rader som misslyckas i valideringen först efter att du redan har tryckt in dem i ett CRM. Det handlar inte bara om tid. Det handlar om förtroende. När folk väl tycker att listan är opålitlig blir varje kampanj och rapport en diskussion.
Friktionen växer. Här är var det brukar fallera.
- Du får städa samma lista igen varje vecka eftersom det saknas en återanvändbar process.
- Dubbletter slinker igenom när du förlitar dig på kalkylarkens ”Ta bort dubbletter” utan en konsekvent matchningsregel.
- Valideringen görs för sent, så team skickar mejl som studsar eller routar leads till fel ägare.
- Manuella korrigeringar skapar nya fel, särskilt när flera personer rör samma fil.
Lösningen: ett gamifierat JavaScript-städflöde i n8n
Det här flödet är byggt som en självgående ”JavaScript master class” som du kör inuti n8n. Det startar med en manuell trigger (så att du kan testa på beställning), initierar ett enkelt ”game state” och går sedan vidare genom tre kodutmaningar med ökande svårighetsgrad. I steg 1 lär du dig praktiska mönster för avduplicering med riktiga JavaScript-metoder för arrayer. Steg 2 simulerar rörig API-indata och visar hur du rensar, normaliserar och validerar fält innan de når ditt kalkylark eller din databas. Steg 3 knyter ihop det med orkestreringslogik, så att du kan hantera flera städuppgifter på ett robust sätt i stället för att skriva engångsskript som du glömmer bort.
Flödet drar i gång när du klickar på ”Execute”. Därifrån transformerar varje Code-nod exempeldata för leads, kontrollerar den och skickar en renare version vidare. Sista noden ger en sammanfattning så att du kan se vad som ändrades, och sedan går du nod för nod för att studera koden och återanvända delarna du behöver.
Det du får: automatisering vs. resultat
| Det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du städar en leadlista två gånger i veckan innan du laddar in den i ett CRM. Manuellt blir det oftast fyra varv: avduplicera, normalisera mejladresser, validera obligatoriska fält och sedan fixa rader som är ”nästan giltiga” – ungefär 30 minuter per varv (alltså cirka 2 timmar per vecka). Med det här flödet triggar du körningen på en minut, granskar sammanfattningen och kopierar sedan JavaScript-snuttarna in i ditt riktiga n8n-flöde, vilket brukar kapa den veckovisa städningen till cirka 20 minuter. Det är inte magi. Det är konsekvens.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra och granska städade leads.
- Microsoft Excel för att använda samma städlogik offline.
- Airtable om du vill ha en strukturerad leaddatabas.
Kunskapsnivå: Nybörjare. Du kör flödet, öppnar noder och kopierar kodsnuttar till dina egna versioner.
Vill du inte sätta upp detta själv? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Så fungerar det
Manuell körning för att börja lära. Du klickar på ”Execute workflow”, vilket triggar questen och kör hela handledningen från start till mål så att du ser resultatet direkt.
Game state initieras. Första Code-noden sätter upp en struktur för progression (XP, nivåer, achievements), men poängen är egentligen att visa hur du strukturerar data på ett förutsägbart sätt innan du börjar transformera.
Städning, sedan validering, sedan orkestrering. Steg 1 fokuserar på mönster för avduplicering (tänk filter och findIndex). Steg 2 går vidare till ”API-stilens röra” och visar praktisk valideringslogik och felhantering. Steg 3 är där det börjar kännas som en riktig automation, eftersom det visar hur du koordinerar flera bearbetningsregler utan att allt blir spaghetti.
En resultatsammanfattning knyter ihop det. Sista Code-noden tar fram en sammanfattning så att du kan rimlighetskontrollera transformeringen. Sedan öppnar du varje nod och återanvänder det du behöver i dina riktiga leadflöden kopplade till Google Sheets, Excel eller Airtable.
Du kan enkelt ändra valideringsreglerna så att de matchar dina obligatoriska leadfält utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startar manuellt så att ni kan köra kodutmaningen vid behov.
- Lägg till noden 🎯 Begin Quest som er trigger.
- Behåll standardinställningarna i 🎯 Begin Quest eftersom inga parametrar krävs.
- Anslut 🎯 Begin Quest till Set Up Game State för att starta spelsekvensen.
Steg 2: konfigurera spelinitiering
Speltillståndet och spelarprofilen skapas i det första kodsteget.
- Lägg till noden Set Up Game State och klistra in den angivna JavaScript-koden i Code.
- Bekräfta att koden definierar objekten
player,gameStateochgameIntro. - Säkerställ att Set Up Game State outputar ett enda item med det sammanslagna JSON-svaret.
- Anslut Set Up Game State till 🎲 Stage 1 Data Cleanup.
Steg 3: konfigurera kodutmaningens nivåer
Arbetsflödet går igenom tre sekventiella kodnivåer som simulerar datarensning, API-validering och arbetsflödesmästerskap.
- Lägg till noden 🎲 Stage 1 Data Cleanup och klistra in JavaScript-koden som avduplicerar arrayen
corruptedUsersoch delar ut XP. - Anslut 🎲 Stage 1 Data Cleanup till ⚔️ Stage 2 API Validation för att fortsätta utmaningsflödet.
- Lägg till noden ⚔️ Stage 2 API Validation med den angivna transformations- och valideringslogiken för
apiResponse.users. - Anslut ⚔️ Stage 2 API Validation till 🏆 Stage 3 Workflow Master.
- Lägg till noden 🏆 Stage 3 Workflow Master och klistra in den sista bosslogiken som bearbetar uppgifter och bygger en sammanfattning.
⚠️ Vanlig fallgrop: Behåll platshållarsträngarna [YOUR_EMAIL] i koden om ni inte tänker personanpassa mockdatan.
Steg 4: konfigurera resultatutmatningen
Den sista noden sammanställer spelsammanfattningen och returnerar resultaten.
- Lägg till noden 🎊 Results Summary och klistra in JavaScript-koden som bygger
achievementShowcase,performanceReportochgameSummary. - Anslut 🏆 Stage 3 Workflow Master till 🎊 Results Summary för att färdigställa sekvensen.
- Verifiera att den slutliga returnen outputar
json: gameSummaryför enkel granskning i körningsresultaten.
Steg 5: testa och aktivera ert arbetsflöde
Kör arbetsflödet manuellt för att bekräfta att varje nivå slutförs och att sammanfattningen genereras.
- Klicka på Execute Workflow och trigga 🎯 Begin Quest för att starta körningen.
- Bekräfta att varje kodnod slutförs i ordning: Set Up Game State → 🎲 Stage 1 Data Cleanup → ⚔️ Stage 2 API Validation → 🏆 Stage 3 Workflow Master → 🎊 Results Summary.
- Kontrollera outputen från 🎊 Results Summary för fälten
title,subtitleochachievementShowcaseför att bekräfta att allt lyckades. - Ställ arbetsflödet till Active endast om ni vill ha det redo för upprepade manuella körningar.
Vanliga fallgropar
- Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något skapar fel, börja med att kontrollera n8n-skärmen Credentials och åtkomst för det anslutna Google-kontot.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkesröst tidigt, annars kommer du redigera outputs för alltid.
Vanliga frågor
Cirka 20 minuter för att importera, köra och börja utforska noderna.
Nej. Du kan köra den som den är och sedan kopiera och justera koden när du är redo. Om du kan ändra några variabler och testa igen klarar du dig fint.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna in eventuella licenser för Google Workspace eller Microsoft som du redan betalar för.
Två alternativ: n8n Cloud (hanterat, enklast att komma i gång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Det enklaste är att duplicera Code-noderna för steg 1 och steg 2 och justera matchningsnycklarna (för avduplicering) samt de obligatoriska fälten (för validering). Vanliga anpassningar är att avduplicera bara på mejl, normalisera företagsnamn och avvisa rader som saknar domän eller land.
Oftast beror det på utgångna OAuth-behörigheter eller att fel Google-konto är anslutet. Anslut Google Sheets-credential igen i n8n och bekräfta sedan att målarket är delat med samma konto. Om det fortfarande misslyckas, kontrollera om er workspace-admin blockerar tredjepartsåtkomst eller om du har slagit i API-kvoter vid bulk-körningar.
Några tusen rader per körning är realistiskt för de flesta upplägg.
Ofta ja, eftersom JavaScript-kontrollen är hela poängen här. I Zapier eller Make kan du städa data, men avancerad avdupliceringslogik och valideringsregler blir snabbt otympliga, och du märker begränsningarna när du behöver förgreningar eller återanvändbara funktioner. n8n ger dig dessutom alternativet att köra självhostat, vilket är praktiskt om du vill köra städjobb ofta utan att behöva bevaka task-count. Samtidigt: om du bara vill göra något enkelt som ”när en ny rad dyker upp, trimma blanksteg”, är Zapier ärligt talat snabbare. Prata med en automationsspecialist om du vill ha hjälp att välja.
Felfri leaddata är inte glamoröst, men det förändrar allt nedströms. Sätt upp mönstren en gång och återanvänd dem varje gång en rörig lista landar i din inkorg.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.