Du ska inte behöva uppdatera tre olika trafiksidor bara för att få veta att din rutt är försenad igen. Men det är vad som händer när uppdateringar är utspridda, otydliga eller gömda i en banner du ser först när du redan är sen.
Kontorsansvariga som försöker samordna ankomsttider märker detta direkt. Driftansvariga som planerar skifttäckning får samma huvudvärk. Och pendlare som bara vill ha en förutsägbar morgon? Samma kaos. Den här automatiseringen för Teams-förseningsaviseringar gör allt det där kontrollandet till ett enda tydligt meddelande i din kanal.
Du sätter upp ett n8n-flöde som skrapar trafikstatus i realtid, upptäcker relevanta förseningar, publicerar en tydlig uppdatering i Microsoft Teams och sparar en komplett JSON-ögonblicksbild i Dropbox som bevis du kan gå tillbaka till.
Så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Scrapegraphai + Microsoft Teams: förseningar i realtid
flowchart LR
subgraph sg0["Flow 1"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook Listener"]
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/code.svg' width='40' height='40' /></div><br/>Prepare Source URLs"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split URLs", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Scrape Transit Data", 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/merge.svg' width='40' height='40' /></div><br/>Merge Results"]
n5["<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/>Normalize & Deduplicate"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Significant Delay?", pos: "b", h: 48 }
n7@{ icon: "mdi:message-outline", form: "rounded", label: "Send Teams Alert", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare File for Dropbox", 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/dropbox.svg' width='40' height='40' /></div><br/>Archive to Dropbox"]
n2 --> n3
n4 --> n5
n7 --> n8
n0 --> n1
n6 --> n7
n6 --> n8
n1 --> n2
n3 --> n4
n5 --> n6
n8 --> n9
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 n6 decision
class n0 api
class n1,n5 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n5,n9 customIcon
Varför det här spelar roll: trafikförseningar slösar tid och förtroende
Trafikförseningar är irriterande. Det verkliga problemet är den konstanta ”övervakning” de skapar. Någon kollar webbplatsen, någon annan kollar en app, och uppdateringarna stämmer inte överens. Sedan skriver du i en gruppchatt med en halvkorrekt skärmdump och hoppas att den fortfarande gäller 10 minuter senare. Det är en liten uppgift som upprepas hela veckan, vilket gör att den i det tysta stjäl fokus och får planeringen att kännas kaotisk. Och när folk inte kan se källan slutar de lita på uppdateringarna.
Det blir snabbt mycket. Här är var det faller isär.
- Du gör ”bara en sista koll” före möten, hämtningar eller skiftöverlämningar.
- Statssidor ändrar ofta formuleringar, så en människa måste tolka vad ”mindre störning” faktiskt betyder.
- Utan ett arkiv kan du inte verifiera i efterhand vad som hände när någon ber om bevis.
- Manuell övervakning av flera rutter leder ofta till missade aviseringar, särskilt på stressiga morgnar.
Vad du bygger: automatiserad upptäckt av trafikförseningar med Teams-uppdateringar
Det här flödet startar när det triggas via en n8n-webhook (eller ett schema du lägger till senare). Det bygger en lista med ruttsidor eller endpoints du bryr dig om och kontrollerar dem en och en i hanterbara batchar för att undvika att belasta källan. ScrapeGraphAI extraherar live-tidtabell och detaljer om driftstörningar, därefter gör ett normaliseringssteg datan korrekt formaterad till ett konsekvent format som du kan jämföra pålitligt. En kontroll ”finns det en försening?” tillämpar din tröskel (till exempel 5+ minuter), och först då postar den ett kortfattat meddelande i Microsoft Teams. Varje körning skapar också en komplett JSON-ögonblicksbild som laddas upp till Dropbox, så att du har en historiklogg du kan granska senare.
Flödet är enkelt i praktiken. Trigga en kontroll, skrapa statusen, beräkna förseningen och avisera rätt personer i Teams. Dropbox sparar råutdata i en daterad fil så att du kan bevisa vad systemet såg vid tillfället.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du övervakar 6 rutter för ett team. Manuellt tar det kanske 5 minuter per rutt att öppna sidan, tolka varningen och skicka en uppdatering, vilket är cirka 30 minuter per kontroll. Om du gör det två gånger om dagen försvinner ungefär en timme. Med det här flödet triggar du en gång (eller kör det var 5:e minut via ett schema), väntar några minuter på skrapning och bearbetning, och Teams får uppdateringen automatiskt medan Dropbox sparar ögonblicksbilden. Det är skillnaden mellan ”ständigt kontrollande” och ”bara reagera när det spelar roll”.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- ScrapeGraphAI för att skrapa tidtabell och driftstörningar.
- Microsoft Teams för att posta aviseringar i en kanal.
- Dropbox Access Token (hämta det i Dropbox App Console).
Svårighetsnivå: Nybörjare. Du kommer mest att klistra in inloggningsuppgifter, lägga till dina rutt-URL:er och justera en regel för förseningsgräns.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En webhook drar igång. Du kan anropa webhooken när du vill göra en manuell kontroll, eller ersätta den med ett Cron-schema om du vill polla varannan minut.
Dina rutter byggs ihop och batchas. Ett kodsteg bygger ruttlänkarna (URL:er eller ID:n) och SplitInBatches bearbetar dem i ordning, vilket hjälper till att undvika rate limiting och gör körningarna förutsägbara.
ScrapeGraphAI extraherar live-statusen. Den hämtar tidtabells- och varningsdetaljer från varje ruttsida eller open-data-endpoint, och flödet slår ihop den skrapningen med din ruttmetadata så att varje post förblir identifierbar.
Förseningar upptäcks och aviseringar postas. Ett normaliseringssteg standardiserar tidsstämplar och fält, därefter utvärderar en If-kontroll din tröskel. När en försening upptäcks får Microsoft Teams en tydlig avisering, och Dropbox sparar full JSON oavsett.
Du kan enkelt ändra förseningsgränsen för att bara avisera vid större störningar utifrån dina behov. Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggern
Konfigurera webhook-endpointen som tar emot inkommande kollektivtrafikrutter och startar arbetsflödet.
- Lägg till och öppna Incoming Webhook Trigger.
- Ställ in Path på
public-transit-update. - Ställ in HTTP Method på
POST. - Ställ in Response Mode på
lastNode. - Spara noden och kopiera webhook-URL:en för produktion till ert trafikövervakningssystem.
Steg 2: bygg och batcha ruttlänkar
Transformera inkommande rutter till tidtabells-URL:er och bearbeta dem i batchar.
- Öppna Build Route Links och bekräfta att JavaScript-koden mappar rutter till URL:er enligt vad som visas i nodens kod.
- Säkerställ att standardrutterna inkluderar
['RedLine', 'BlueLine']och bas-URL:er somhttps://www.mbta.com/schedules/Redochhttps://www.mbta.com/schedules/Blue. - Öppna Batch Route Items och behåll standardinställningarna för batch om ni inte vill strypa scraping.
- Verifiera flödet från Incoming Webhook Trigger → Build Route Links → Batch Route Items.
Steg 3: skrapa och normalisera tidtabellsdata
Skrapa kollektivtrafikmyndighetens webbplats för varje rutt och standardisera utdata.
- Öppna Extract Transit Schedule och ställ in Website URL på
={{ $json.url }}. - Bekräfta att User Prompt är:
Extract the next five departures for the requested line along with any reported delay or service alerts. Return JSON with: line_name, next_departures:[{time, destination}], max_delay_minutes (number), alert_text (string). - Credential Required: Anslut era ScrapeGraph AI-credentials i Extract Transit Schedule.
- Öppna Combine Scrape Output och ställ in Mode på
passThrough. - Öppna Standardize Unique Records för att bekräfta att den avduplicerar på
line_nameellerrouteoch lägger tillchecked_at.
Steg 4: konfigurera förseningslogik och notifieringar
Kontrollera förseningar och skicka larm till Microsoft Teams när tröskelvärden överskrids.
- Öppna Delay Threshold Check och ställ in villkoret så att det jämför Left Value
={{ $json.max_delay_minutes }}med Right Value10med operationenlarger. - Öppna Post Teams Notification och ställ in Message på
={{ 'Transit delay alert: ' + $json.line_name + ' experiencing ' + $json.max_delay_minutes + ' minute delay..
' + ($json.alert_text || '') }} - Ställ in Resource på
chatMessageoch Content Type påhtml. - Credential Required: Anslut era Microsoft Teams-credentials i Post Teams Notification.
- Bekräfta routning: Delay Threshold Check skickar utdata till både Post Teams Notification och Assemble Dropbox File parallellt.
Steg 5: skapa och ladda upp Dropbox-rapporten
Skapa en fil-payload och ladda upp förseningsrapporten till Dropbox.
- Öppna Assemble Dropbox File och mappa fälten för
fileNameochfileContentfrån den normaliserade datan. - Öppna Upload to Dropbox och ställ in Path på
={{ '/transit-updates/' + $json.fileName }}. - Ställ in File Content på
={{ $json.fileContent }}. - Credential Required: Anslut era Dropbox-credentials i Upload to Dropbox.
fileName och fileContent kommer uppladdningen att misslyckas även om credentials är korrekta.Steg 6: testa och aktivera ert arbetsflöde
Validera hela körningen från webhook till notifieringar och filuppladdning, och aktivera sedan för liveövervakning.
- Klicka på Execute Workflow och skicka en test-POST-request till URL:en för Incoming Webhook Trigger med en JSON-body som
{ "routes": ["RedLine", "BlueLine"] }. - Bekräfta att items skapas i Build Route Links och skrapas i Extract Transit Schedule.
- Verifiera att Delay Threshold Check routar datan korrekt och att Post Teams Notification skickar ett meddelande för förseningar större än 10 minuter.
- Kontrollera Dropbox efter en ny fil under
/transit-updates/från Upload to Dropbox. - När allt fungerar, växla arbetsflödet till Active för användning i produktion.
Tips för felsökning
- Inloggningsuppgifter och selektorer i ScrapeGraphAI är oftast boven. Om skrapningar returnerar tom data, kontrollera dina CSS-selektorer/API-fält i ScrapeGraphAI-noden och bekräfta att din API-nyckel är giltig.
- Om du använder Wait-liknande timing (eller ersätter webhooken med frekvent polling) varierar bearbetningstiderna. Höj batchstorleksgränserna eller sänk frekvensen om efterföljande noder fallerar på grund av saknade eller ofullständiga skrapsvar.
- Microsoft Teams-webhooks inaktiveras oftare än man tror. Om meddelanden slutar komma, kontrollera inkommande webhook-URL i kanalens inställningar i Teams och bekräfta att anslutningen fortfarande är aktiverad.
Snabba svar
Cirka 15–25 minuter om dina konton är klara.
Nej. Du klistrar in inloggningsuppgifter, lägger till dina rutt-URL:er och justerar regeln för förseningsgräns.
Ja. n8n har ett gratis alternativ för egen 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 kostnader för ScrapeGraphAI:s API-användning beroende på hur ofta du skrapar.
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 hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det handlar mest om att byta indata och justera logik. Byt ut ruttlistan i ”Build Route Links” för att följa andra linjer, städer eller till och med statussidor som inte gäller kollektivtrafik. Justera tröskeln i ”Delay Threshold Check” så att du bara varnar vid 10+ minuters förseningar, inställda avgångar eller specifika nyckelord som ”signalfejl”. Om du vill ha en annan arkivplats ändrar du mappsökvägen i ”Assemble Dropbox File” och ”Upload to Dropbox”.
Oftast är URL:en för inkommande webhook fel eller så har anslutningen inaktiverats i kanalinställningarna. Skapa webhooken på nytt i Teams, klistra in den nya URL:en i Microsoft Teams-noden och försök igen. Om det fortfarande inte fungerar, kontrollera om din organisation begränsar inkommande webhooks för vissa team eller kanaler.
De flesta små team kör 5–10 rutter per kontroll utan problem, särskilt när batchning är aktiverad.
Ofta, ja, eftersom skrapning + normalisering + villkorsstyrda grenar är där enklare verktyg börjar kännas klumpiga. Zapier och Make kan posta till Teams, men att skrapa strukturerad data, batcha flera rutter och applicera egen förseningslogik kan snabbt bli en kedja av betalda steg. n8n håller allt i ett flöde, och med egen hosting betalar du inte per körning när du kontrollerar ofta. Nackdelen är att du behöver lägga lite mer tid på att få första versionen rätt, särskilt ScrapeGraphAI-selektorerna. Vill du ha en second opinion? Prata med en automationsexpert så hjälper vi dig att välja.
När detta väl körs försvinner ”har någon kollat förseningarna?” från din morgonrutin. Flödet bevakar, postar och arkiverar så att du kan planera med färre avbrott.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.