Din lead-tracker är bara ”pålitlig” tills någon glömmer att kopiera en rad, klistrar in fel e-postadress eller exporterar databasen med ett filter som i tysthet tappar halva veckan. Sedan frågar sälj varför siffrorna inte stämmer, marknad frågar vad som räknas som ”kvalificerad”, och du hamnar med att granska kalkylblad i stället för att driva pipeline.
Den här Postgres Sheets sync träffar marketing ops först, men säljchefer och grundare känner av den också. Du får ett Google Sheet som teamet faktiskt kan lita på, med interna domäner blockerade och kvalificerade leads levererade automatiskt.
Nedan ser du hur flödet flyttar ett nytt lead från Postgres till Google Sheets, var filtret ligger och vad du ska justera för att det ska matcha er process.
Så här fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Postgres till Google Sheets, leverera rensade leads
flowchart LR
subgraph sg0["Postgres 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/postgres.svg' width='40' height='40' /></div><br/>Postgres Trigger"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "On clicking 'Execute Node'", pos: "b", h: 48 }
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/>Code"]
n4@{ icon: "mdi:database", form: "rounded", label: "Google Sheets", pos: "b", h: 48 }
n3 --> n1
n1 --> n4
n0 --> n1
n2 --> 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,n2 trigger
class n1 decision
class n4 database
class n3 code
class n0 disabled
classDef customIcon fill:none,stroke:none
class n0,n3 customIcon
Utmaningen: att hålla lead-trackers korrekta (utan att behöva passa dem)
Lead-data tenderar att ligga där den skapas (i din appdatabas), men teamet jobbar i Google Sheets. Så du exporterar CSV:er, klistrar in rader, tar ”snabbt” bort interna och test-e-postadresser och hoppas att ingen sorterar arket på ett sätt som skapar fel i nästa import. Det handlar inte bara om tid. Det är den ständiga lågintensiva stressen av att inte veta om arket är aktuellt, eller om någon plockade förra tisdagens export och kallade det en rapport. En missad uppdatering kan ge ringar på vattnet: felaktiga uppföljningar, obekväma interna möten och kampanjer som optimeras mot fel lista.
Det eskalerar snabbt. Här är var det brukar fallera.
- Manuella exporter hoppas över när veckan blir stressig, så din ”live”-tracker är alltid lite inaktuell.
- Interna domäner och testleads smyger sig in, vilket gör att sälj slösar tid och att mätetal blåses upp.
- Kopiera/klistra skapar dubbletter och formateringsdrift, och då kan du inte deduplicera eller segmentera pålitligt.
- När siffrorna inte matchar Postgres tappar du förtroendet för arket och slutar använda det.
Lösningen: lead-leverans från Postgres till Sheets med domänfiltrering
Det här flödet bevakar din Postgres-databas efter nya kvalificerade leads och pushar dem automatiskt till ett Google Sheet. När en ny rad (eller en ändringshändelse) kommer in från Postgres kör flödet ett litet anpassat skript för att forma datan så som arket förväntar sig, och applicerar sedan ett filter för e-postdomäner så att interna adresser aldrig hamnar i din rapporterings-tracker. Om leadet går igenom filtret skrivs det till Google Sheets, vilket ger teamet en gemensam vy som hålls uppdaterad utan att någon exporterar, klistrar in eller rensar. Och om du vill testa innan du slår på det finns även en manuell startväg så att du kan köra ett exempel-lead och bekräfta att allt hamnar rätt.
Flödet startar antingen via en Postgres change listener (för synk i realtid) eller via en manuell trigger (för test). Ett anpassat skript formaterar och normaliserar lead-fälten, därefter avgör ett domänfilter vad som är tillåtet. Till sist läggs det godkända leadet till i ditt Google Sheet så att resten av teamet ser det direkt.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du ser |
|---|---|
|
|
Effekt i verkligheten
Säg att teamet går igenom nya leads två gånger per dag, och att du vanligtvis exporterar från Postgres, filtrerar domäner och sedan klistrar in i Sheets. Det är kanske 15 minuter per uppdatering (export, filtrering, klistra in, deduplicera), alltså runt 30 minuter per dag, eller ungefär 2–3 timmar i veckan. Med det här flödet blir ”arbetet” en snabb engångssetup, och sedan landar leads i Sheets automatiskt när de skapas. Ni granskar fortfarande listan, men ni slutar göra grovjobbet som skapade den.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Postgres som källdatabas för leads.
- Google Sheets för att lagra och dela de godkända leadsen.
- Google-inloggning/credentials (skapa i Google Cloud Console och anslut i n8n).
Kunskapsnivå: Nybörjare. Du kopplar konton, väljer ett kalkylark och justerar ett enkelt filter/skript.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
Ett nytt lead hamnar i Postgres (eller så kör du ett test). Postgres change listener väntar på en ny kvalificerad lead-post, medan manuell start finns där när du vill validera mappningen utan att röra produktion.
Leadet struktureras och korrektformateras. Ett anpassat skript standardiserar fälten du bryr dig om (som e-post, namn, företag och tidsstämplar) så att Google Sheet alltid får konsekventa kolumner.
Filtrering av e-postdomän avgör vad som räknas. Filtret blockerar interna domäner och andra adresser du inte vill ha i din tracker. Här sätter du reglerna för ”riktiga leads” så att rapporteringen inte blir rörig senare.
Godkända leads hamnar i Google Sheets. Flödet skriver den strukturerade lead-raden till ditt målark, så att sälj och marknad ser samma uppdaterade lista utan att någon exporterar data.
Du kan enkelt ändra domänreglerna så att de matchar teamets definitioner. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Postgres-triggern
Konfigurera databaslyssnaren så att arbetsflödet reagerar på användaruppdateringar och skickar data vidare till filtreringslogiken.
- Lägg till och öppna Postgres Change Listener.
- Ställ in Fires On på
UPDATE. - Välj Schema som
computedoch Table Name somusers. - Credential Required: Anslut era postgres-inloggningsuppgifter.
- Koppla Postgres Change Listener till Email Domain Filter.
Steg 2: Anslut Google Sheets
Auktorisera åtkomst till Google Sheets så att arbetsflödet kan lägga till eller uppdatera lead-poster.
- Öppna Update Google Spreadsheet.
- Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
- Ställ in Document ID till
[YOUR_ID]och Sheet Name till[YOUR_ID].
[YOUR_ID] med era faktiska dokument- och blad-ID:n för Google Sheet, annars kommer noden inte att kunna hitta kalkylarket.Steg 3: Ställ in bearbetningslogiken
Konfigurera logiken för datagenerering och filtrering som används för manuella tester och liveuppdateringar från databasen.
- Öppna Manual Execution Start och använd den för manuella tester.
- I Custom Script, behåll JavaScript Code som den är, och ersätt platshållarmailen i
"email": "[YOUR_EMAIL]"med en riktig adress för testning. - Koppla Manual Execution Start → Custom Script → Email Domain Filter.
- I Email Domain Filter ställer ni in strängvillkoret till Value 1
={{ $json.email }}, OperationnotContainsoch Value 2n8n.io.
n8n.io kommer den att filtreras bort och når inte kalkylarket.Steg 4: Konfigurera utdata till Google Sheets
Mappa fält från inkommande data till ert kalkylark och definiera hur uppdateringar matchas.
- I Update Google Spreadsheet ställer ni in Operation till
appendOrUpdate. - Under Columns mappar ni id till
={{ $json.id }}, email till={{ $json.email }}och username till={{ $json.username }}. - Ställ in Matching Columns till
idså att uppdateringar tillämpas på rätt rad. - Ställ in Cell Format till
USER_ENTERED.
Steg 5: Testa och aktivera ert arbetsflöde
Validera arbetsflödet med manuell data och aktivera sedan databastriggern för liveuppdateringar.
- Klicka på Execute Workflow och använd Manual Execution Start för att generera en testpost via Custom Script.
- Bekräfta att posten passerar Email Domain Filter (det bör den göra om mejladressen inte innehåller
n8n.io). - Kontrollera ert Google Sheet för att verifiera att Update Google Spreadsheet lade till eller uppdaterade raden med de mappade fälten.
- Aktivera Postgres Change Listener och växla arbetsflödet till Active för produktionsanvändning.
Se upp med
- Google Sheets-credentials kan löpa ut eller sakna åtkomst till målfilen. Om uppdateringar slutar, kontrollera n8n-anslutningen för credentials och bekräfta att Google-kontot kan redigera just det arket.
- Om du förlitar dig på en Postgres change listener spelar databasrättigheter roll. När inget triggas, verifiera att Postgres-användaren kan läsa ändringar (och att nätverk/brandvägg tillåter anslutningen).
- ”Custom Script” är kraftfullt, men små fältändringar kan slå sönder din mappning. Om appen lägger till eller byter namn på en kolumn, gå tillbaka till skriptet och rubrikerna i arket så att du inte skriver tomma celler.
Vanliga frågor
Oftast på cirka 30 minuter om din Postgres- och Google-åtkomst redan är på plats.
Ja, men du vill ha en person som är bekväm med att redigera ett kort skript och testa det. Det mesta av uppsättningen är att koppla konton och välja rätt kalkylark.
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å ta hänsyn till Google API-användning, som normalt är försumbar för enkla skrivningar till Sheets.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan anpassa ”Custom Script” så att det matchar dina exakta kolumner i arket, till exempel genom att slå ihop för-/efternamn eller normalisera UTM-fält. ”Email Domain Filter” är den andra stora spaken; lägg till era interna domäner, blockera domäner för engångsmejl eller tillåt bara specifika företagsdomäner om ni kör ABM. Om du senare bestämmer att Sheets bara ska vara en staging-yta behåller du samma filter och byter ut steget ”Update Google Spreadsheet” mot en annan destination.
Oftast handlar det om behörigheter. Bekräfta att det anslutna Google-kontot kan redigera exakt det kalkylarket och att du inte flyttade filen till en begränsad Drive. Om det fungerade en gång och sedan slutade, återanslut Google Sheets-credential i n8n för att uppdatera åtkomsten.
För de flesta små team hanterar den utan problem hundratals leads per dag.
Ofta, ja – särskilt om du vill ha Postgres-triggern och lite anpassad logik utan att betala extra för varje förgreningsregel. n8n ger också en self-hosting-väg, vilket är bra när volymen växer och du vill slippa överraskningar med prissättning per task. Zapier eller Make kan fortfarande passa om flödet är väldigt enkelt och du föredrar ett helt guidat gränssnitt. Den större frågan är var du vill att ”sanningen” ska ligga: om det är i din databas passar n8n naturligt. Prata med en automationsexpert om du vill ha en snabb rekommendation baserad på din stack.
När det här väl rullar slutar arket att vara en skör artefakt och blir en livevy som teamet kan lita på. Sätt upp det, gör en rimlighetskontroll och gå vidare till arbete som faktiskt ökar intäkterna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.