Avbrutna registreringar är lömska. Du ser en topp i ”påbörjad onboarding”, och sedan … ingenting. Nu sitter du fast med att dra listor, gissa vem som behöver en puff och hoppas att du inte mejlar någon två gånger.
Den här Postgres Gmail-automationen träffar growth marketers först, men produktledda grundare och sales ops känner av den också. Målet är enkelt: återvinna användare som fastnat, utan att göra din dag till ett uppföljningsjobb.
Nedan ser du hur workflowet hittar avbrutna registreringar i Postgres, skickar en anpassad Gmail-uppföljning, lägger in användaren i en sekvens och sedan larmar teamet i Slack så att inget faller mellan stolarna.
Så fungerar den här automationen
Se hur det här löser problemet:
n8n Workflow Template: Postgres + Gmail: återvinn övergivna registreringar
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", 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/postgres.svg' width='40' height='40' /></div><br/>Find Abandoned Users"]
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/slack.svg' width='40' height='40' /></div><br/>Alert Sales Team"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "PrepareEmail email", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message", pos: "b", h: 48 }
n7@{ icon: "mdi:message-outline", form: "rounded", label: "Get a message", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "StartSequence email", pos: "b", h: 48 }
n9["<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/>Update rows in a table"]
n3 --> n4
n7 --> n8
n6 --> n7
n4 --> n5
n2 --> n4
n0 --> n1
n5 --> n6
n8 --> n9
n1 --> n3
n9 --> n2
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 n3 decision
class n1,n5,n8,n9 database
classDef customIcon fill:none,stroke:none
class n1,n2,n9 customIcon
Utmaningen: avbrutna registreringar som aldrig får en uppföljning i tid
Någon startar registreringen, stöter på friktion och försvinner. Om du inte når dem snabbt glömmer de varför de brydde sig från början, och du tappar en användare som du redan betalat för att skaffa. Den manuella vägen är stökig: exportera en CSV, filtrera på ”created_at”, dubbelkolla ”contacted”-flaggor och skriva ett ”snabbt mejl” som på något sätt blir fem utkast. Och om teamet jonglerar flera inkorgar eller sekvenser händer dubbel kontakt oftare än någon vill erkänna.
Det eskalerar snabbt. Här är var det vanligtvis fallerar i riktiga team.
- Du slutar med att kontrollera Postgres för hand (eller inte alls) eftersom det är ännu en ”daglig uppgift”.
- Första uppföljningen går ut för sent, så användarens intent har svalnat.
- Två personer kontaktar samma lead eftersom det saknas en pålitlig signal för ”redan kontaktad”.
- Sälj och marknad delar aldrig samma bild, vilket gör att Slack-uppdateringar blir reaktiva, inte proaktiva.
Lösningen: daglig Postgres-kontroll, personliga Gmail-uppföljningar och Slack-larm
Det här workflowet kör på ett schema och agerar som en tyst, pålitlig teammedlem. Var 24:e timme frågar det Postgres efter användare som startat registreringen men varit inaktiva i över ett dygn. Om inga giltiga poster finns stannar det där (så du inte bränner körningar eller skickar tomma notiser). När det hittar användare bearbetar det dem en i taget för att hålla leveransen jämn och slippa krångel med rate limits. För varje person skapar det ett personligt återhämtningsmejl från en fördefinierad mall, skickar det via Gmail och hämtar sedan detaljer om det skickade meddelandet så att framtida uppföljningar hamnar i samma tråd och går att följa upp. Till sist markerar det användaren som kontaktad i Postgres och pingar säljteamet i Slack med det sammanhang de faktiskt behöver.
Workflowet startar med en tidsstyrd körning och en Postgres-fråga. Därifrån loopar det igenom varje avbruten registrering, skapar ett anpassat meddelande och skickar det i Gmail. Efter att mejlet skickats lägger det in användaren i en uppföljningssekvens och uppdaterar databasen så att samma person inte får en puff två gånger.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du ser |
|---|---|
|
|
Effekt i verkligheten
Säg att du får 30 avbrutna registreringar per dag. Manuellt innebär även en ”snabb” uppföljning oftast cirka 5 minuter för att hitta och verifiera rätt användare, plus kanske 3 minuter per mejl för att personifiera och skicka, vilket är ungefär 1,5 till 2 timmar dagligen. Med den här automationen tar den schemalagda körningen en minut att dra igång, sedan bearbetar n8n användare i bakgrunden medan du gör riktigt jobb. Du får Slack-notiser och korrekta databasuppdateringar, inte en daglig mejlrusch.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Postgres för att lagra registreringsstatus och kontaktflaggor.
- Gmail för att skicka återhämtningsmejlet från din inkorg.
- Slack för att notifiera sälj eller customer success i realtid.
- InboxPlus (n8n community node) för att skriva och sekvensera uppföljningar.
Kunskapsnivå: Medel. Du kopplar konton, bekräftar fälten i din Postgres-fråga och justerar en mall så att den matchar din produkt.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Workflow-flödet
Ett dagligt schema startar körningen. n8n triggar automatiskt var 24:e timme, så du är inte beroende av att någon kommer ihåg att ”kolla tratten”.
Postgres frågas efter inaktiva, ofullständiga användare. Workflowet hämtar poster som matchar din definition av avbruten registrering (i det här fallet ofullständig och inaktiv i mer än 24 timmar), och använder sedan en enkel villkorskontroll för att stoppa om inget hittas.
Varje användare behandlas en i taget. Med en batch-loop förbereder workflowet ett personligt meddelande, skickar det via Gmail och hämtar sedan detaljer om det skickade mejlet så att uppföljningen kan ligga kvar i samma tråd och spåras pålitligt.
Uppföljningar sekvenseras, poster uppdateras och Slack notifieras. Workflowet lägger in användaren i en uppföljningssekvens, markerar dem som kontaktade i Postgres och postar sedan ett Slack-larm med återvinningsstatus så att sälj vet vad som händer.
Du kan enkelt ändra definitionen av ”avbruten” (24 timmar, inaktivitetsregler, användarsegment) så att den matchar din tratt och din produkt. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera schematriggern
Det här arbetsflödet körs enligt ett dagligt schema för att identifiera inaktiva registreringar.
- Lägg till noden Timed Run Trigger som din trigger.
- Ställ in Rule på ett intervallschema med
hours: 24för att köra en gång per dag. - Behåll Flowpast Branding som en valfri sticky note för dokumentation (ingen konfiguration krävs).
Steg 2: Anslut Postgres och hämta inaktiva användare
Hämta inaktiva användare från er databas som inte har slutfört registreringen och som inte har fått ett återställningsmejl.
- Öppna Retrieve Inactive Users.
- Referens krävs: Anslut era postgres-uppgifter.
- Ställ in Operation på
executeQuery. - Ställ in Query till
SELECT * FROM public."Users" WHERE "Status" = 'Incomplete' AND last_activity < NOW() - INTERVAL '24 hours' AND recovery_email_sent = FALSE;. - Koppla Timed Run Trigger → Retrieve Inactive Users.
INTERVAL '24 hours' i frågan.Steg 3: Konfigurera validering av poster och batchning
Säkerställ att poster finns och bearbeta dem i batchar för kontrollerad körning.
- Öppna Conditional Presence Check och ställ in villkoret så att det kontrollerar ID exists med Left Value
{{ $json.ID }}. - Koppla Retrieve Inactive Users → Conditional Presence Check.
- Koppla Conditional Presence Check → Iterate Records Batch.
- I Iterate Records Batch behåller ni standardinställningarna om ni inte behöver anpassade batchstorlekar.
- Notera loopen: Notify Sales Channel matar tillbaka till Iterate Records Batch för att fortsätta bearbeta återstående användare.
{{ $json.ID }} returnerar ett värde.Steg 4: Konfigurera mejlskapande, utskick och uppföljning
Skapa ett återställningsmejl, skicka det via Gmail, hämta det skickade mejlet och initiera en uppföljningssekvens.
- Öppna Compose Recovery Email och ställ in Template ID till
[YOUR_ID]. - Ställ in Recipient Email till
{{ $json.Email }}. - Referens krävs: Anslut era inboxPlusApi-uppgifter.
- Öppna Dispatch Gmail Message och ställ in Send To till
{{ $json.recipientEmail }}, Subject till{{ $json.subject }}och Message till{{ $json.body }}. - Referens krävs: Anslut era gmailOAuth2-uppgifter.
- Öppna Retrieve Sent Email och ställ in Operation till
getmed Message ID inställt på{{ $json.id }}. - Referens krävs: Anslut era gmailOAuth2-uppgifter.
- Öppna Initiate Followup Sequence och ställ in Operation till
startSequencemed Sequence ID inställt på[YOUR_ID]. - Mappa uppföljningsfält: Subject
{{ $json.Subject }}, Thread ID{{ $json.threadId }}, Message ID{{ $json.id }}, Tracking ID{{ $('Compose Recovery Email').item.json.trackingId }}, Sender Email{{ $json.From }}, Recipient Email{{ $json.To }}. - Referens krävs: Anslut era inboxPlusApi-uppgifter.
- Koppla Iterate Records Batch → Compose Recovery Email → Dispatch Gmail Message → Retrieve Sent Email → Initiate Followup Sequence.
[YOUR_ID]-värdena i Compose Recovery Email och Initiate Followup Sequence, annars misslyckas sekvensen med att starta.Steg 5: Konfigurera databasuppdateringar och Slack-notiser
Efter att ha skickat återställningsmejlet och initierat uppföljningar uppdaterar ni användarposten och notifierar säljteamet.
- Öppna Modify User Records och ställ in Operation till
update. - Referens krävs: Anslut era postgres-uppgifter.
- Ställ in Table till
Usersi schemapublic. - Mappa ID till
{{ $('Iterate Records Batch').item.json.ID }}och ställ in recovery_email_sent tilltrue. - Öppna Notify Sales Channel och ställ in Text till
Recovery Email Sent to: ID: {{ $json.ID }} Name: {{ $json.Name }} Email: {{ $json.Email }} --. - Ställ in Select till
channeloch välj Channel ID[YOUR_ID]. - Referens krävs: Anslut era slackOAuth2Api-uppgifter.
- Koppla Initiate Followup Sequence → Modify User Records → Notify Sales Channel → Iterate Records Batch för att fortsätta bearbeta återstående användare.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att mejl skickas, poster uppdateras och att Slack-notiser triggas.
- Klicka på Execute Workflow och bekräfta att Retrieve Inactive Users returnerar förväntade rader.
- Verifiera att Dispatch Gmail Message skickar ett mejl och att Retrieve Sent Email returnerar en meddelandepost.
- Bekräfta att Modify User Records sätter recovery_email_sent till
trueför varje bearbetad användare. - Kontrollera Slack efter notisen som postats av Notify Sales Channel.
- När allt fungerar växlar ni arbetsflödet till Active för att köra enligt schema.
Se upp med
- Gmail-inloggningar kan gå ut eller kräva rätt Google-behörigheter. Om utskick misslyckas, kontrollera först status på Gmail-nodens credentials i n8n och bekräfta sedan att det kopplade Google-kontot fortfarande har åtkomst.
- 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 tonalitet tidigt, annars kommer du att redigera output i all evighet.
Vanliga frågor
Cirka en timme om din Postgres-fråga och ditt Gmail-konto är redo.
Ja, men någon behöver vara bekväm med att verifiera databasfält och testa med några exempelanvändare. Ingen kodning, bara noggrann konfigurering.
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 eventuella begränsningar i e-post-/CRM-verktyg (Gmails sändningskvoter och din sekvenstjänsts plan).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Börja med att ändra Postgres-frågan ”Retrieve Inactive Users” så att den matchar din definition av avbruten registrering (tidsfönster, plantyp, onboardingsteg eller event-flaggor). Du kan också byta mallen ”Compose Recovery Email” så att den speglar din produkts friktionspunkter, som ”e-postverifiering” kontra ”betalningssetup”. Många team lägger till segmentering så att enterprise-leads routas till Slack med ett meddelande med högre prioritet, medan self-serve-användare ligger kvar i den automatiserade sekvensen.
Oftast är det en utgången eller återkallad Google OAuth-anslutning i n8n, särskilt om kontolösenordet ändrats eller adminpolicys uppdaterats. Koppla om Gmail-credential, och skicka sedan ett testmejl till dig själv. Om det fortfarande misslyckas, kontrollera Gmails sändningsgränser för kontot och bekräfta att workflowet inte försöker skicka för många meddelanden i en kort burst.
För de flesta små team hanterar den dagliga avbrutna registreringar utan problem.
Ofta, ja, om du bryr dig om kontroll och databasförst-logik. Det här workflowet bygger på Postgres-frågor, batchning per användare och pålitliga uppdateringar av ”markera som kontaktad”, vilket går att göra i Zapier/Make men kan bli krångligt (och dyrt) när du lägger till förgrening och loopar. n8n ger dig också möjligheten att self-hosta, så hög körvolym inte blir en skatt. Å andra sidan kan Zapier gå snabbare för en väldigt enkel tvåstegs-setup: ”ny rad, skicka mejl”. Om du är osäker, prata med en automationsexpert så mappar vi den enklaste vägen för din exakta stack.
När detta väl rullar slutar återhämtning av avbrutna registreringar att vara en ”när vi hinner”-uppgift. Workflowet tar hand om den repetitiva uppföljningen, och teamet kan fokusera på att åtgärda onboarding-friktionen som orsakade tappet från början.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.