Din WhatsApp-inkorg blir en produktkatalog så fort du får mycket att göra. Folk frågar “pris?”, “storlekar?”, “vad ingår?”, och du slutar med att skrolla i gamla meddelanden, kopiera länkar och ändå råka skicka fel version.
Den här WhatsApp Postgres-automationen träffar säljare och marknadschefer först, helt ärligt. Men butiksägare känner också av det när priser uppdateras och ingen minns vilken meddelandemall som är den senaste. Resultatet är enkelt: omedelbara, konsekventa produktsvar som inte beror på vem som är online.
Nedan ser du hur det här flödet gör om meddelanden till en självbetjäningsmeny, hur logiken fungerar och vad du behöver för att köra det stabilt i n8n.
Så fungerar den här automationslösningen
Se hur den löser problemet:
n8n Workflow Template: Whatsapp + Postgres: direktsvar med produktmeny
flowchart LR
subgraph sg0["WhatsApp 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/whatsapp.svg' width='40' height='40' /></div><br/>WhatsApp Trigger"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Starts"]
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/postgres.svg' width='40' height='40' /></div><br/>Upsert Bot Status"]
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/postgres.svg' width='40' height='40' /></div><br/>Get Bot Status"]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Start?", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Commands", 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/whatsapp.svg' width='40' height='40' /></div><br/>Main Menu"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Initialization", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Union list ", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Union Number with Question ", pos: "b", h: 48 }
n10["<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/>Get Card products"]
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/whatsapp.svg' width='40' height='40' /></div><br/>List Cards"]
n12["<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/>Get Card product"]
n13["<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/>Get Card products "]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "List?", pos: "b", h: 48 }
n15["<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/whatsapp.svg' width='40' height='40' /></div><br/>Card"]
n14 --> n10
n14 --> n13
n4 --> n1
n4 --> n5
n1 --> n2
n5 --> n6
n5 --> n14
n8 --> n11
n3 --> n4
n7 --> n3
n12 --> n15
n0 --> n7
n10 --> n9
n13 --> n12
n9 --> n8
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 n4,n5,n14 decision
class n2,n3,n10,n12,n13 database
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n6,n10,n11,n12,n13,n15 customIcon
Utmaningen: att svara på produktfrågor manuellt (och inkonsekvent)
När produktfrågor kommer in via WhatsApp känns “snabbsvar”-upplägget okej… tills det inte gör det. En person skickar förra månadens pris. En annan glömmer att ta med vad som ingår i paketet. Någon skickar en lista som saknar två artiklar eftersom katalogen ändrades och ingen uppdaterade anteckningarna. Och den verkliga kostnaden är inte bara tid. Det är momentum. En köpare som ville ha en enkel lista får vänta, frågar igen eller försvinner.
Det blir snabbt mycket. Här är var det fallerar i vardagen.
- Att kopiera produktdetaljer från kalkylblad eller gamla chattar skapar små misstag som ser oprofessionella ut.
- Prisändringar slår inte igenom, så du hamnar i förhandling på fel siffra.
- Dina toppresterare blir mänskliga sökmotorer i stället för att följa upp och stänga affärer.
- Det finns inget strukturerat sätt att guida kunden från “visa mig alternativ” till “jag tar den här”.
Lösningen: en WhatsApp-meny med Postgres som grund
Det här flödet kopplar WhatsApp till en produktdatabas i Postgres så att kunder kan hämta produktinfo utan att vänta på ditt team. Ett WhatsApp-meddelande triggar automationen, n8n läser meddelandets kontext och kontrollerar sedan var användaren befinner sig i dialogen (ny session vs. val från en lista). Om de ber om katalogen hämtar flödet produkter från Postgres, formaterar dem till en strukturerad numrerad meny och svarar i WhatsApp. När de svarar med en siffra validerar flödet valet, hämtar exakt produktpost (och eventuella relaterade “katalogdetalj”-data) och skickar sedan ett enda, konsekvent produktmeddelande. Inget rotande. Inget gissande.
Flödet startar på ett inkommande WhatsApp-meddelande. Därefter används Postgres två gånger: först för att spåra botens “status”, sedan för att hämta rätt katalogdata. Till sist skickar “Respond”-noderna tillbaka antingen huvudmenyn, en produktlista eller de specifika produktdetaljerna till kunden.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att du får 30 produktförfrågningar via WhatsApp per dag. Manuellt tar även ett “snabbt” svar kanske 3 minuter för att hitta rätt info, formatera den och dubbelkolla priset. Det är cirka 90 minuter dagligen, och det är ofta din mest värdefulla person som gör det. Med den här automationslösningen: kunden skriver “meny”, får listan direkt och svarar sedan med en siffra. Du kliver oftast in bara vid specialfall och riktiga invändningar, inte vid grundläggande kataloguttag.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- WhatsApp Business-integration för att ta emot och skicka meddelanden.
- Postgres-databas för att lagra katalogdata och botens tillstånd.
- Postgres-uppgifter (skapa en DB-användare med tabellåtkomst).
Svårighetsnivå: Medel. Du kommer att klistra in SQL för att skapa tabeller, koppla in uppgifter och justera några meddelandefält.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så går flödet till
Ett WhatsApp-meddelande triggar flödet. När någon skriver till ditt nummer fångar automationslösningen texten och grundläggande avsändardetaljer, och sätter sedan några interna variabler så att flödet kan svara konsekvent.
Botten kontrollerar konversationsstatus i Postgres. En enkel databassökning avgör om användaren “startar om” eller redan är i ett valflöde, vilket gör att botten inte upprepar sig eller tappar kontext.
Kommandon styrs till rätt svar. Flödet använder ett beslut plus en switch för att skicka huvudmenyn, hämta en produktlista eller validera ett numeriskt val. Om användaren vill se katalogen returnerar Postgres artiklarna och n8n formaterar dem till en numrerad lista som är enkel att svara på.
Detaljer hämtas och skickas tillbaka till WhatsApp. När kunden väljer en artikel hämtar flödet exakt produktpost (och eventuella katalogdetaljer) och skickar automatiskt ett strukturerat, lättläst produktmeddelande.
Du kan enkelt justera menyalternativen så att de matchar din produktstruktur (till exempel kategorier först, sedan produkter). Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera WhatsApp-triggern
Ställ in startpunkten så att inkommande WhatsApp-meddelanden startar workflowet och skickar data in i bearbetningskedjan.
- Lägg till och öppna WhatsApp Entry Trigger.
- Koppla er WhatsApp-trigger till Setup Variables enligt flödet i workflowet.
- Spara noden för att generera webhook-URL:en om det krävs av er WhatsApp-leverantör.
Inloggningsuppgifter krävs: Anslut era WhatsApp-inloggningsuppgifter i WhatsApp Entry Trigger.
Steg 2: anslut Postgres-datakällor
Konfigurera databasfrågorna som hämtar botstatus och kataloginformation. Detta workflow använder flera Postgres-noder för att hantera tillstånd och kortdata.
- Öppna Fetch Bot Status och konfigurera er fråga för att läsa in användarens aktuella status.
- Öppna Update Bot Status och ställ in uppdateringsfrågan som skriver det nya bot-tillståndet efter onboarding.
- Konfigurera katalogfrågorna i Fetch Card Catalog, Fetch Catalog Detail och Fetch Single Card så att de returnerar listdata och detaljer för ett enskilt kort.
- Låt Fetch Bot Status och Fetch Single Card vara inställda på att köras en gång om ni vill minska upprepade uppslag.
Inloggningsuppgifter krävs: Anslut era Postgres-inloggningsuppgifter till alla Postgres-noder (5 noder hanterar botstatus och katalogdata).
Steg 3: sätt upp bearbetning och routningslogik
Förbered indata-variabler, kontrollera bot-tillstånd och routa användarkommandon till rätt meny- eller katalogflöden.
- I Setup Variables, mappa inkommande WhatsApp-fält till standardiserade variabler som används av efterföljande noder.
- I Start Decision, definiera villkoret som avgör om onboarding-meddelandet ska skickas eller om det ska routas till kommandon.
- I Route Commands, konfigurera switch-fall för menyförfrågningar kontra meddelanden för listval.
- I List Choice Check, definiera villkoret som avgör om listan ska hämtas eller om en specifik katalogdetalj ska hämtas.
⚠️ Vanlig fallgrop: Om fallen i Route Commands inte matchar exakt formatet på inkommande meddelanden kommer användarna aldrig att nå Send Main Menu eller katalogflödet.
Steg 4: konfigurera katalogsammanställning och utdata
Sammanställ kortlistan och leverera WhatsApp-svar för menyn, kataloglistan och kortdetaljer.
- I Merge Number Prompt, lägg till texten som ber användarna att välja ett nummer från listan.
- I Combine Listing, formatera listan som returneras av Fetch Card Catalog till ett enda meddelande.
- I Send Start Reply, utforma onboarding-svaret för nya användare.
- I Send Main Menu, konfigurera menysvaret för återkommande användare.
- I Deliver Card List, skicka den kombinerade kataloglistan till användaren.
- I Send Card Details, bygg meddelandet med hjälp av utdata från Fetch Single Card.
Inloggningsuppgifter krävs: Anslut era WhatsApp-inloggningsuppgifter till Send Start Reply, Send Main Menu, Deliver Card List och Send Card Details.
Steg 5: testa och aktivera ert workflow
Verifiera hela WhatsApp-konversationsflödet och slå på automatiseringen.
- Klicka på Execute Workflow och skicka ett testmeddelande till WhatsApp-numret som är kopplat till WhatsApp Entry Trigger.
- Bekräfta att nya användare får Send Start Reply och att Update Bot Status uppdaterar databasen.
- Skicka ett menykommando och verifiera att Send Main Menu triggas via Route Commands.
- Begär kataloglistan och bekräfta att Deliver Card List skickar en formaterad lista, svara sedan med ett nummer och säkerställ att Send Card Details returnerar detaljer för ett enskilt kort.
- När allt fungerar, växla workflowet till Active för användning i produktion.
Se upp med
- WhatsApp-uppgifter kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din WhatsApp-leverantörs dashboard (anslutna appar, tokens, webhooks).
- Om du förlitar dig på databasens “status” för att hantera konversationen kan gamla rader i Postgres förvirra flödet. Att rensa testanvändare eller lägga till en enkel timeout-regel gör att menyn inte loopar.
- Numrerade val misslyckas när listutdata ändras men valideringen inte gör det. Om du lägger till eller tar bort produkter, säkerställ att “valkontrollen” fortfarande matchar den returnerade katalogens längd.
Vanliga frågor
Cirka 60–90 minuter om dina WhatsApp- och Postgres-konton är redo.
Ja, men någon behöver ändå köra SQL:en en gång och koppla in uppgifter. Efter det handlar produktuppdateringar bara om att uppdatera databasrader.
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 med avgifter från din WhatsApp-leverantör och kostnader för databas-hosting.
Två alternativ: n8n Cloud (hanterat, enklaste setup) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.
Du kan byta ut meddelandena “Send Main Menu” och “Deliver Card List” så att de matchar ditt språk och din produktstruktur, och sedan justera Postgres-frågorna i “Fetch Card Catalog” och “Fetch Catalog Detail” för att hämta de fält du bryr dig om. Vanliga anpassningar är att lägga till kategorier, visa lagerstatus och inkludera en kort “passar bäst för”-rad i varje produktbeskrivning. Om du redan spårar produkter i Google Sheets kan du också lägga till ett synksteg så att uppdateringar i Sheets automatiskt trycks in i Postgres.
Oftast beror det på utgångna eller felmatchade uppgifter i din WhatsApp-nod. Återanslut WhatsApp-kontot i n8n och bekräfta sedan att din WhatsApp-leverantör fortfarande har webhook-URL:en aktiverad och pekande mot rätt flöde. Om meddelanden kommer in men svar misslyckas, kontrollera mallregler och sändningsgränser hos leverantören. Rate limits kan också dyka upp som till synes slumpmässiga fel när du testar upprepade gånger.
Med n8n Cloud Starter kan du hantera en typisk småföretagsvolym av meddelanden utan problem, och en uppgradering ökar körningsgränserna. Om du kör egen drift beror kapaciteten främst på din server och Postgres-prestanda. Flödet är lättviktigt eftersom det mest handlar om “läs en rad, formatera ett svar”, så det skalar bra för menyer och kataloger.
Ofta, ja, för allt som liknar en riktig meny med tillstånd. Zapier och Make kan skicka WhatsApp-meddelanden, men att lagra konversationsstatus, validera ett numeriskt val och förgrena till olika Postgres-frågor blir snabbt klumpigt (och kan bli dyrt när volymen växer). n8n hanterar förgreningarna snyggt, och egen drift betyder att du inte betalar mer bara för att kunder interagerar mer. Om du bara behöver ett enda “autosvar med en länk”-meddelande är de verktygen helt okej. Om du vill att katalogen ska kännas interaktiv är n8n ett säkrare val. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta är live slutar dina WhatsApp-svar att vara en skör manuell process och börjar fungera som en riktig produktkanal. Sätt upp det, håll katalogen korrekt i Postgres och låt flödet sköta upprepningen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.