Din databas kan skrika ”något är fel” utan att du ens märker det. Inte för att du är slarvig, utan för att avvikare gömmer sig i tabeller, dashboards uppdateras för sent och ingen vill stirra på frågeresultat hela dagen.
Den här uppsättningen för Postgres SMS-varningar träffar DevOps-ansvariga först, ärligt talat. Men produktägare och byråoperatörer som kör kundsystem känner samma smärta när ett kritiskt nyckeltal glider och teamet får reda på det flera timmar senare.
Det här n8n-flödet kontrollerar Postgres varje minut, sms:ar dig via Twilio när det hittar en verklig avvikelse och markerar sedan den posten som notifierad så att du inte blir spammande. Du får se vad det automatiserar, vilka resultat du kan förvänta dig och vad du behöver för att köra det stabilt.
så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutligt output:
n8n Workflow Template: Postgres + Twilio: sms-varningar för kritiska avvikelser
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Scheduled Check 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/>Retrieve Alert Records"]
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/twilio.svg' width='40' height='40' /></div><br/>Send SMS Alert"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Update Fields", 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/postgres.svg' width='40' height='40' /></div><br/>Apply Notification Update"]
n3 --> n4
n0 --> n1
n2 --> n3
n1 --> 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 n1,n4 database
classDef customIcon fill:none,stroke:none
class n1,n2,n4 customIcon
problemet: avvikelser upptäcks för sent (eller för ofta)
Avvikelser är sällan artiga. En plötslig topp i fel, en märklig avläsning från en sensortabell, ett skenande jobb som börjar skriva skräpdata. Det frustrerande är att signalen finns i Postgres, men larmningen är oftast manuell eller utspridd över flera verktyg. Någon kör en fråga när de kommer ihåg. Någon annan kollar en dashboard när en kund klagar. Och när du väl lägger in larm blir du bombarderad med upprepade notifieringar eftersom inget registrerar att ärendet redan har eskalerats.
Det här blir snabbt dyrt. Så här faller det isär i den dagliga driften.
- Avvikelsekontroller sitter i någons huvud, så helger och semestrar skapar blinda fläckar.
- Manuella frågor blir en ”kanske senare”-uppgift, vilket gör att du hittar problem först efter att de har hunnit skapa följdincidenter.
- Ad hoc-larmning skapar brusiga pingar eftersom inget markerar posten som redan notifierad.
- När du väl fångar det finns ingen strukturerad revisionskedja över vilka avvikelser som eskalerades och när.
lösningen: fråga Postgres, sms:a via Twilio och markera sedan som notifierad
Det här flödet körs enligt ett enkelt schema och fungerar som en pålitlig jourassistent. Varje minut frågar n8n din Postgres-databas efter avvikande mätvärden som ännu inte har notifierats. Om den hittar några skickar den ett sms via Twilio till ett telefonnummer du väljer, så att larmet är svårt att missa. Därefter förbereder den en uppdateringspayload och skriver tillbaka till Postgres, och sätter ett notifieringsfält till true. Den sista delen är viktigare än många tror, eftersom den förhindrar upprepade pingar för samma post och håller larmen åtgärdsdrivna i stället för irriterande.
Automatiseringen startar med en Cron-trigger. Postgres levererar listan ”vad behöver uppmärksamhet just nu”, Twilio står för omedelbar eskalering och Postgres uppdateras så att flödet kommer ihåg vad det redan har berättat för dig.
vad du får: automatisering vs. resultat
| vad det här flödet automatiserar | resultat du får |
|---|---|
|
|
exempel: så här ser det ut
Säg att du i dag kör en ”snabbkontroll”-fråga ungefär 6 gånger per dag och att det tar cirka 10 minuter varje gång när du väl har anslutit, justerat WHERE-satsen och rimlighetskontrollerat resultaten. Det är ungefär en timme per dag, och du har fortfarande luckor mellan kontrollerna. Med det här flödet sker ”kontrollen” automatiskt varje minut, och din insats blir i princip att läsa ett kort sms när något faktiskt är fel. För de flesta team är det nära en timme tillbaka varje dag, plus mycket snabbare upptäckt när det verkligen gäller.
det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Postgres för avvikelseposter och notifieringsflaggor.
- Twilio för att leverera sms-varningarna.
- Twilio Account SID + Auth Token (hämta dem i Twilio Console).
svårighetsgrad: nybörjare. Du klistrar in inloggningsuppgifter, justerar en SQL-fråga och bekräftar att uppdateringen mappar till rätt post.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
så fungerar det
Schemalagd kontroll. En Cron-trigger kör varje minut, så att din databas skannas kontinuerligt utan att någon behöver komma ihåg att göra det.
Hämta avvikelser från Postgres. n8n frågar Postgres efter de avvikande mätvärden du bryr dig om, med ett extra villkor som bara returnerar poster där ”notified”-flaggan fortfarande är false.
Sms-eskalering via Twilio. För varje matchande post skickar flödet ett sms som lyfter fram de viktigaste detaljerna du behöver för att avgöra om det är en riktig incident eller en snabb åtgärd.
Tillbakaskrivning till Postgres. Ett Set-steg förbereder de uppdaterade fälten, och sedan uppdaterar Postgres samma post så att den markeras som notifierad och inte triggar igen.
Du kan enkelt ändra frågan och sms-texten så att de matchar ditt schema och din jourprocess. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Cron-triggern
Ställ in schemat som startar övervakningscykeln.
- Lägg till noden Scheduled Check Trigger som er workflow-trigger.
- Konfigurera schemat i Scheduled Check Trigger så att det matchar önskad kontrollfrekvens.
Steg 2: Anslut Postgres
Hämta varningsposter och uppdatera notifieringsstatus i er databas.
- Öppna Retrieve Alert Records och ställ in Operation på
executeQuery. - Ställ in Query på
SELECT * FROM n8n WHERE value > 70 AND notification = false;. - Autentiseringsuppgifter krävs: Anslut era postgres-inloggningsuppgifter i Retrieve Alert Records.
- Öppna Apply Notification Update, ställ in Operation på
update, Table pån8noch Columns pånotification. - Autentiseringsuppgifter krävs: Anslut era postgres-inloggningsuppgifter i Apply Notification Update.
n8n inte innehåller id, value, sensor_id eller notification kommer frågan och uppdateringen att misslyckas.Steg 3: Konfigurera SMS-varningen
Skicka ett varningsmeddelande när en sensoravläsning överskrider tröskelvärdet.
- Öppna Send SMS Alert och ställ in Message på
=🚨 The Sensor ({{$node["Retrieve Alert Records"].json["sensor_id"]}}) showed a reading of {{$node["Retrieve Alert Records"].json["value"]}}.. - Ställ in To till mottagarens telefonnummer och From till ert Twilio-nummer.
- Autentiseringsuppgifter krävs: Anslut era twilioApi-inloggningsuppgifter i Send SMS Alert.
Steg 4: Konfigurera uppdateringsfälten
Förbered fälten som används för att markera notifieringar som skickade.
- Öppna Prepare Update Fields och ställ in Keep Only Set på
true. - Under Number, lägg till id med värdet
={{$node["Retrieve Alert Records"].json["id"]}}. - Under Boolean, lägg till notification med värdet
true.
id från Retrieve Alert Records. Bekräfta att er fråga returnerar det.Steg 5: Testa och aktivera ert workflow
Validera hela körflödet innan ni aktiverar automatiseringen.
- Klicka på Execute Workflow och säkerställ att Scheduled Check Trigger startar körningen.
- Bekräfta att Retrieve Alert Records returnerar rader som matchar frågan och att Send SMS Alert skickar ett meddelande.
- Verifiera att Prepare Update Fields skickar ut
idochnotification, och att Apply Notification Update uppdaterar databasen. - När resultaten är korrekta, växla workflowet till Active för att köra enligt schema.
vanliga fallgropar
- Postgres-inloggning kan gå ut eller kräva specifika rättigheter. Om det slutar fungera, börja med att kontrollera n8n:s credential-test och dina behörigheter (grants) för databasanvändaren.
- Twilio kan misslyckas utan att det märks om ditt ”From”-nummer, Messaging Service eller regionbehörigheter inte är korrekt inställda. Kontrollera loggarna i Twilio Console för exakt fel.
- Om din fråga returnerar flera avvikelser samtidigt kan du skicka en skur av sms. Överväg batchning, rate limiting eller att slå ihop flera poster till ett meddelande om det här är en verklig risk.
vanliga frågor
Cirka 30 minuter om dina Postgres- och Twilio-uppgifter är klara.
Nej. Du redigerar främst en SQL-fråga och mappar ett par fält för uppdateringen.
Ja. n8n har ett gratisalternativ för self-hosting 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 Twilios sms-avgifter (oftast några cent per meddelande).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är oftast bara en ändring av frågan. Uppdatera SQL:en i Postgres-steget ”Retrieve Alert Records” så att det matchar din definition av en avvikelse, och justera sedan sms-texten i Twilio-steget. Vanliga justeringar är att bara larma under kontorstid, höja tröskeln för ”kritisk” eller skicka olika meddelanden beroende på vilket mätvärde som fallerar.
Oftast beror det på inloggningsuppgifter eller avsändarinställningar. Kontrollera Account SID och Auth Token i n8n igen, och bekräfta sedan att ditt Twilio-”From”-nummer (eller Messaging Service) får skicka till ditt mottagarnummer. Om ditt konto är i trial-läge kan du också vara begränsad till verifierade mottagarnummer. Twilios meddelandeloggar visar exakt anledning, så börja där.
Många, men sms-volymen är den verkliga begränsningen. I n8n Cloud begränsas du av planens månatliga körningar, och i self-hostad n8n finns ingen körningsgräns (det beror på din server). I praktiken: om du skickar dussintals meddelanden under en kort period vill du batcha eller slå ihop dem, så att du inte drar på dig Twilio-kostnader eller överbelastar jourtelefonen.
Ofta, ja. n8n passar bättre när du behöver schemalagda kontroller varje minut, en databasfråga plus en tillbakaskrivning och flexibel logik utan att betala extra för varje förgrening. Det är också bra att du kan self-hosta, vilket gör löpande körningskostnader mer förutsägbara. Zapier eller Make kan fortfarande fungera om din logik är minimal och du vill ha ett mer styrt gränssnitt. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När detta väl är live sitter avvikelser inte kvar i Postgres och väntar på att bli upptäckta. Du får pinget, posten markeras och teamet kan fokusera på åtgärderna som faktiskt spelar roll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.