Din prenumerantlista ska inte ligga i fem olika CSV-filer, med lite olika kolumner, dubbletter och mystiska rader som aldrig borde ha följt med. Men det är verkligheten för många team, och det gör varje ”snabb uppdatering” till en felkänslig städinsats.
Marknadschefer märker det när kampanjsiffror inte stämmer. Nyhetsbrevsansvariga ser det när avprenumerationer smyger sig tillbaka. Och byråer? De bränner debiterbar tid på att fixa kalkylark. Den här CSV Sheets-automationen tar bort det stökiga från din att-göra-lista och håller en strukturerad Google Sheets-lista du kan lita på.
Du får se hur workflowet hämtar in flera CSV:er, tar bort dubbletter, behåller endast prenumererande kontakter, sorterar efter registreringsdatum och sedan uppdaterar ditt Google Sheet så att rapporteringen förblir konsekvent.
Så fungerar den här automationslösningen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: CSV till Google Sheets, rensade prenumerantlistor snabbt
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: "Read Binary Files", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split In Batches", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Read CSV", pos: "b", h: 48 }
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/itemLists.svg' width='40' height='40' /></div><br/>Remove duplicates"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Keep only subscribers", pos: "b", h: 48 }
n6["<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/itemLists.svg' width='40' height='40' /></div><br/>Sort by date"]
n7@{ icon: "mdi:database", form: "rounded", label: "Upload to spreadsheet", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign source file name", pos: "b", h: 48 }
n3 --> n8
n6 --> n7
n2 --> n3
n2 --> n4
n1 --> n2
n4 --> n5
n5 --> n6
n8 --> n2
n0 --> n1
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 n5 decision
class n7 database
classDef customIcon fill:none,stroke:none
class n4,n6 customIcon
Problemet: prenumerantlistor blir röriga snabbt
CSV-baserade listor ser enkla ut tills du faktiskt jobbar med dem. Någon exporterar en fil med ”senaste prenumeranter” från en plattform, någon annan exporterar ”alla kontakter”, och nu har du överlappande rader och motstridiga värden. Du klistrar ihop dem, sorterar, försöker ta bort dubbletter och inser sedan att fältet ”subscribed” inte är konsekvent mellan exporterna. Plötsligt börjar du ifrågasätta kampanjtotalerna eftersom arket i praktiken bygger på bästa gissning. Det är inte svårt jobb. Det är bara ständigt jobb.
Friktionen byggs på. Små misstag förblir inte små när du använder arket för segmentering, rapportering och kunduppdateringar.
- Du lägger ofta cirka 1–2 timmar i veckan på att slå ihop och rensa exporter, särskilt när det är flera filer.
- Dubbletter smyger sig in eftersom ”ta bort dubbletter” körs på fel kolumn eller fel filversion.
- Avprenumererade kontakter kan råka dyka upp igen, vilket skapar compliance-problem och arga svar.
- Sortering efter registreringsdatum blir opålitlig när varje CSV använder lite olika formatering eller ordning.
Lösningen: rensa och uppdatera Google Sheets automatiskt från CSV:er
Det här workflowet tar en mapp med CSV-filer och gör om dem till en konsekvent rensad prenumerantlista i Google Sheets. Du triggar det manuellt i n8n, och det läser varje CSV i en angiven katalog, bearbetar dem en fil i taget så att inget missas eller blandas ihop. Varje CSV parsas till rader, märks med ursprungligt källfilnamn (praktiskt senare när du vill spåra en konstig post), och rensas med enkla regler som matchar hur marknadsteam faktiskt tänker kring listhygien. Dubbletter tas bort med fältet user_name, endast rader markerade som prenumererande behålls, och allt sorteras på date_subscribed så att de senaste registreringarna hamnar överst.
På slutet skriver n8n tillbaka den rensade datamängden till Google Sheets på ett smart sätt. Om en användare redan finns (baserat på user_name) uppdateras raden. Om inte, läggs den till. Det betyder att ditt ark blir en levande lista, inte en engångsimport.
Det du får: automation vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du får 6 CSV-exporter per vecka från olika källor (formulär, webbinarieverktyg och en nyhetsbrevsplattform). Manuellt kanske du lägger cirka 10 minuter per fil på att importera, ta bort dubbletter, filtrera och sortera, och sedan ytterligare 20 minuter på att fixa ”nästan-dubbletter”, alltså ungefär 1–2 timmar per vecka. Med det här workflowet lägger du filerna i samma mapp och kör det i n8n. Triggern tar någon minut, bearbetningen kör i bakgrunden och Google Sheets blir uppdaterat och sorterat utan fram och tillbaka.
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 din rensade masterlista
- Åtkomst till Google-konto så att n8n kan uppdatera arket
- En mapp med CSV-exporter som är åtkomlig för din n8n-instans
Kunskapsnivå: nybörjare. Du kopplar Google Sheets, väljer en mappsökväg och bekräftar rätt ”match”-fält (user_name).
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du kör det vid begäran. Workflowet startar med en manuell trigger i n8n, vilket är smidigt när du vill ha kontroll (till exempel direkt efter att nya exporter har landat).
CSV-filer samlas in och parsas. n8n läser alla CSV:er från en katalog och bearbetar dem sedan en i taget. Varje fil konverteras från råtext till rader och kolumner som du kan rensa på ett tillförlitligt sätt.
Regler för listhygien tillämpas. Rader märks med källfilnamnet, dubbletter tas bort med user_name, och endast rader där subscribed = TRUE får fortsätta. Därefter sorteras posterna efter date_subscribed så att listan förblir lättläst.
Google Sheets uppdateras intelligent. I stället för att dumpa ett nytt ark vid varje körning uppdaterar workflowet befintliga användare och lägger till nya. Det gör att länkar, diagram och rapporter förblir intakta.
Du kan enkelt justera regeln för ”subscribed” så att den matchar ditt exportformat, eller byta dubblettnyckel från user_name till email utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startas vid behov och laddar sedan CSV-filer från disk för bearbetning.
- Lägg till och behåll Manual Launch Trigger som startnod.
- Anslut Manual Launch Trigger till Load Binary CSV Files för att starta filinläsningen.
Steg 2: anslut Google Sheets
Konfigurera mål-kalkylarket där posterna ska läggas till eller uppdateras.
- Öppna Update Spreadsheet Records och ställ in Operation på
appendOrUpdate. - Ställ in Document på er Google Sheets-URL (ersätt
https://docs.google.com/spreadsheets/d/[YOUR_ID]med er faktiska fil). - Ställ in Sheet Name på er målflik (ersätt
[YOUR_ID]och använd fliken som hetern8n-sheeteller er egen). - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Update Spreadsheet Records.
Steg 3: konfigurera CSV-inläsning och parsning
Den här delen laddar CSV-filer, bearbetar dem i batchar och tolkar innehållet för vidare logik.
- I Load Binary CSV Files ställer ni in File Selector på
=./.n8n/*.csvför att läsa alla CSV-filer från mappen. - I Batch Items Splitter ställer ni in Batch Size på
1. - I Parse CSV Content ställer ni in File Format på
csvoch behåller Options som:rawData: true,headerRow: true,readAsString: true. - Konfigurera Tag Source Filename för att lägga till ett fält med namnet Source med värdet
{{ $('Batch Items Splitter').item.binary.data.fileName }}.
Batch Items Splitter skickar utdata till både Parse CSV Content och Deduplicate Records parallellt.
./.n8n och att n8n-instansen har åtkomst till den sökvägen.Steg 4: konfigurera filtrering, sortering och uppdateringslogik
Rensa och ordna er data innan den når kalkylarket.
- I Deduplicate Records ställer ni in Operation på
removeDuplicates, Compare påselectedFieldsoch Fields to Compare påuser_name. - I Filter Subscriber Rows lägger ni till ett villkor där Value 1 är
{{ $json.subscribed }}och Value 2 ärTRUE. - I Order by Subscription Date ställer ni in Operation på
sortoch lägger till Sort Field meddate_subscribed. - Verifiera den sista kopplingen från Order by Subscription Date till Update Spreadsheet Records.
date_subscribed inte är standardiserade kan sorteringsordningen bli oväntad. Säkerställ konsekventa datumformat i CSV-filen.Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera filinläsning, parsning, filtrering och uppdateringar i Google Sheets.
- Klicka på Execute Workflow och bekräfta att Manual Launch Trigger startar körningen.
- Kontrollera att Load Binary CSV Files hittar CSV-filer och att Parse CSV Content outputar rader med fältet Source tillagt av Tag Source Filename.
- Verifiera att Filter Subscriber Rows bara behåller rader där
subscribedär lika medTRUE, och att Order by Subscription Date sorterar som förväntat. - Bekräfta att nya eller uppdaterade rader visas i Google Sheet efter att Update Spreadsheet Records har körts.
- När allt är validerat växlar ni arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Sheets-inloggning kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera Google-kopplingen i n8n:s Credentials-panel först.
- Om dina CSV-exporter inte använder exakt värdena TRUE/FALSE för fältet subscribed kan filtret kasta bort giltiga rader. Kontrollera en råfil och justera filtervillkoret så att det matchar det du faktiskt får.
- Uppdateringar bygger på att user_name matchar konsekvent. Om vissa källor använder olika användarnamn (eller tomma värden) ser du oväntade dubbletter, så överväg att byta matchfält till email om det är mer stabilt.
Vanliga frågor
Cirka 20–40 minuter om din Google Sheets-åtkomst är klar.
Nej. Du mappar främst fält och bekräftar filterreglerna. Den enda ”tekniska” delen är att välja rätt mappsökväg för dina CSV-filer.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis testperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volymer. Du behöver också räkna in Google Workspace-kostnader om du använder ett betalkonto hos Google.
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 klarar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är ärligt talat en vanlig uppgradering. Du kan byta nyckel för dubblettborttagning från user_name till email i steget Deduplicate Records och sedan uppdatera Google Sheets ”lookup”-beteendet i steget Update Spreadsheet Records så att det matchar. Många team justerar också filtret för ”subscribed” så att det accepterar värden som ”Yes” eller ”1”, beroende på exporten. Om du vill ha tydligare spårbarhet kan du behålla taggen med källfilnamn och lägga till en extra kolumn för importdatum.
Oftast handlar det om att OAuth-åtkomst har löpt ut eller att Google-kontot saknar redigeringsbehörighet i målarket. Återanslut Google Sheets-credential i n8n och bekräfta sedan att arket är delat med samma konto. Om det fortfarande misslyckas, kontrollera att spreadsheet-ID och ark-/fliknamn matchar det som noden är konfigurerad att uppdatera.
Tusentals per körning är normalt.
För hantering av CSV:er i flera filer är n8n oftast ett bättre val eftersom du kan batcha filer, ta bort dubbletter med mer kontroll och uppdatera befintliga rader utan krångliga workarounds. Zapier och Make kan göra det, men du kan behöva bygga ihop extra steg eller betala mer när volymen växer. n8n ger dig också möjlighet till egen hosting, vilket spelar roll om du kör importer ofta. Om du bara hanterar en enstaka fil ibland kan enklare verktyg räcka. Prata med en automationsexpert om du vill ha en snabb rekommendation för din setup.
När det här väl rullar slutar ditt prenumerantark att vara ett veckoprojekt. Det förblir bara korrekt formaterat, vilket betyder att du kan lita på din rapportering och gå vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.