Din delade inkorg ser ”okej” ut tills den inte gör det. En lugn eftermiddag senare inser du att tre olästa trådar faktiskt var brådskande, och nu ber du om ursäkt, bokar om eller återbetalar.
Supportansvariga känner av det här först. Ops-chefer som driver en teaminkorg dras också in. Och om du är byråägaren som lovade ”vi svarar snabbt”, håller JMAP Slack alerts koll på oläst-läget där du redan jobbar: i Slack.
Det här flödet hämtar antalet olästa samt de främsta e-postämnena från en JMAP-brevlåda, och förbereder sedan datan så att du kan posta den i Slack och sluta förlita dig på minnet, flikar och hopp.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: JMAP + Slack: olästa larm för delad inkorg
flowchart LR
subgraph sg0["When clicking "Execute Workflow" Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Execute Workf..", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get mailboxes"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch API details"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format results", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get unread messages"]
n1 --> n3
n3 --> n4
n2 --> n1
n0 --> 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 n1,n2,n4 api
classDef customIcon fill:none,stroke:none
class n1,n2,n4 customIcon
Utmaningen: hålla delade inkorgar synliga (utan att passa dem)
Delade inkorgar fallerar på ett väldigt tråkigt sätt. Inget ”går sönder”, men olästa meddelanden staplas tyst medan teamet sitter i möten, är i Slack, i ett projektverktyg eller hoppar mellan kundjobb. Sedan öppnar någon till slut brevlådan och hittar en tidskritisk förfrågan som redan är inaktuell. Du får också den mentala kostnaden av att kolla ”för säkerhets skull”, vilket stör fokus, och ärligt talat tränar det folk att ignorera inkorgen tills det gör ont.
Det byggs upp snabbt. Här är var det oftast fallerar i verkligheten.
- Du slutar med att kolla inkorgen många gånger per dag, och varje koll stjäl fokus även om inget är brådskande.
- Antalet olästa säger inte vad som är viktigt, så kritiska ämnesrader begravs bakom nyhetsbrev eller notiser.
- När flera personer ”äger” inkorgen antar alla att någon annan har sett den.
- De flesta automationslösningar bygger på Gmail/Outlook-triggers, vilket inte hjälper om din leverantör är en annan.
Lösningen: JMAP-övervakning av olästa som kan mata Slack
Det här n8n-flödet använder JMAP (en modern e-poststandard) för att fråga din brevlåda på beställning via HTTP-anrop. Först hämtar det en JMAP API-session så att n8n vet vilka endpoints och funktioner din mailserver stödjer. Därefter hämtar det brevlådelistan och formar utdata till de specifika ID:n och fält som behövs för en strukturerad ”oläst”-fråga. Till sist hämtar det antalet olästa och detaljer för de tre första olästa meddelandena (till exempel ämne), vilket oftast räcker för att se vad som är brådskande utan att öppna inkorgen. Därifrån är det enkelt att skicka en kort alert till Slack.
Flödet startar med en manuell körning (bra för test), hämtar sedan sessionsdetaljer från din JMAP-server. Efter att brevlådedatan har formaterats kör det en enda hämtning av olästa som returnerar siffrorna och de främsta ämnesraderna du faktiskt bryr dig om.
Vad som förändras: före vs. efter
| Detta tar bort | Effekten du märker |
|---|---|
|
|
Effekt i praktiken
Säg att ditt team kollar en delad inkorg 10 gånger per dag, och att varje koll tar cirka 2 minuter när du väl har bytt kontext, skannat och bestämt ”inte nu”. Det är ungefär 20 minuter per dag och person. Med det här flödet kan du hämta antal olästa och de 3 främsta ämnesraderna enligt ett schema och skicka sammanfattningen till Slack. Du öppnar fortfarande inkorgen när det behövs, men ”stresskollandet” går i princip ner till noll.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- E-postleverantör med JMAP-stöd för åtkomst till brevlådan via HTTP-anrop
- Slack för att ta emot oläst-sammanfattningar i en kanal
- JMAP API-token eller OAuth-uppgifter (hämta dem från din e-postleverantör, till exempel Fastmail)
Kunskapsnivå: Medel. Du klistrar in API-uppgifter, bekräftar endpoints och justerar ett meddelandeformat för Slack.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
Manuell teststart. Du kör det en gång för att bekräfta dina JMAP-uppgifter och se ett verkligt svar innan du schemalägger något.
Sessionsupptäckt via HTTP. Flödet anropar din JMAP-server för att hämta API-sessionen, som talar om för n8n vart nästa anrop ska skickas och vad din server stödjer.
Brevlådekontext förbereds. Det hämtar din brevlådelista och formar sedan fälten så att nästa anrop kan rikta in sig på rätt brevlåda och returnera en strukturerad, användbar payload.
Oläst-data hämtas (antal + främsta ämnen). Ytterligare ett HTTP-anrop returnerar totalt antal olästa meddelanden och detaljer för de tre första olästa mejlen, som du kan formatera till en Slack-notis.
Du kan enkelt ändra ”oläst” till ”från en VIP-avsändare” eller ”meddelanden taggade som brådskande” utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Sätt upp den manuella triggern som startar arbetsflödet och lämnar över kontrollen till begäran om att hämta sessionen.
- Lägg till en Manual Launch Trigger-nod som startpunkt.
- Lämna standardinställningarna som de är (inga parametrar krävs).
- Anslut Manual Launch Trigger till Retrieve API Session för att matcha exekveringsflödet.
Steg 2: Anslut Fastmail-session och hämta postlåde-lista
Autentisera och hämta JMAP-sessionen, och begär sedan postlåde-listan.
- Konfigurera Retrieve API Session med URL satt till
https://api.fastmail.com/jmap/sessionoch Authentication satt till Generic Credential Type med Generic Auth Type satt tillhttpHeaderAuth. - Autentiseringsuppgifter krävs: Anslut era
httpHeaderAuth-uppgifter till Retrieve API Session. - Konfigurera Pull Mailbox List med URL satt till
https://api.fastmail.com/jmap/api/, Method satt tillPOSToch Send Body aktiverat. - I Pull Mailbox List → Body Parameters ställer ni in using till
={{ [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ] }}och methodCalls till={{ [ [ "Mailbox/get", { "accountId": $json.primaryAccounts['urn:ietf:params:jmap:mail'], "ids": null }, "mailboxes" ] ] }}. - Autentiseringsuppgifter krävs: Anslut era
httpHeaderAuth-uppgifter till Pull Mailbox List. - Anslut Retrieve API Session → Pull Mailbox List.
Steg 3: Sätt upp datamappning
Extrahera de konto- och inkorgs-ID:n för postlådan som behövs för frågan om olästa e-postmeddelanden.
- Lägg till Shape Output Data efter Pull Mailbox List.
- I Shape Output Data ställer ni in Include till
Noneför att endast outputa de fält ni definierar. - Lägg till ett fält account_id med Value satt till
={{ $('Retrieve API Session').first().json.primaryAccounts['urn:ietf:params:jmap:mail'] }}. - Lägg till ett fält mailbox_id med Value satt till
={{ $json.methodResponses.find(e => e[2] == 'mailboxes')[1].list.find(e => e.role == 'inbox').id }}. - Anslut Pull Mailbox List → Shape Output Data.
mailbox_id att fallera. Bekräfta att JMAP-kontot har en inkorgsroll innan ni testar.Steg 4: Konfigurera fråga för olästa e-postmeddelanden
Använd de formaterade konto- och postlåde-ID:n för att hämta de senaste olästa e-postmeddelandena.
- Konfigurera Fetch Unread Emails med URL satt till
https://api.fastmail.com/jmap/api/, Method satt tillPOSToch Send Body aktiverat. - Ställ in using till
={{ [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ] }}. - Ställ in methodCalls till
={{ [ [ "Email/query", { "accountId": $json.account_id, "filter": { "inMailbox": $json.mailbox_id, "notKeyword": "$seen" }, "sort": [ { "property": "receivedAt", "isAscending": false } ], "limit": 3, "calculateTotal": true, }, "messages" ], [ "Email/get", { "accountId": $json.account_id, "#ids": { "name": "Email/query", "path": "/ids", "resultOf": "messages" }, "properties": [ "id", "receivedAt", "from", "subject", "keywords" ] }, "emails" ] ] }}. - Autentiseringsuppgifter krävs: Anslut era
httpHeaderAuth-uppgifter till Fetch Unread Emails. - Anslut Shape Output Data → Fetch Unread Emails.
Steg 5: Testa och aktivera ert arbetsflöde
Validera flödet från start till slut och aktivera det sedan för återkommande användning.
- Klicka på Execute Workflow för att köra Manual Launch Trigger och följ kedjan via Retrieve API Session → Pull Mailbox List → Shape Output Data → Fetch Unread Emails.
- Bekräfta att Fetch Unread Emails returnerar en lista med meddelanden med fält som
id,receivedAt,fromochsubject. - Om resultatet är tomt, verifiera att ert Fastmail-konto har olästa meddelanden och att autentiseringsuppgifterna tillåter JMAP-åtkomst.
- När allt är validerat, slå på arbetsflödet till Active för användning i produktion.
Saker att se upp med
- JMAP-uppgifter (HTTP Request) kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera först din leverantörs API-token/OAuth-inställningar och Authorization-headern i n8n.
- Om du senare lägger till körningar med Schedule Trigger eller Wait-noder för efterföljande Slack-postning varierar processingtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Om du lägger till en AI Agent som sammanfattar ämnen till en ”prioritetsgissning” är standardprompter generiska. Lägg in din tonalitet och vad ”brådskande” betyder tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter om du redan har din JMAP-token och en Slack-kanal redo.
Ja, men du vill ha någon som är bekväm med att kopiera API-tokens till n8n. Ingen kodning krävs, bara noggrann konfiguration och testning.
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 volymer. Du behöver också ta hänsyn till din e-postleverantörs API-åtkomst (de flesta JMAP-leverantörer inkluderar det, men vissa kan begränsa tokens beroende på plan).
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 serverhantering.
Du kan behålla samma struktur och byta vad du frågar efter. De flesta ändringar görs i Fetch Unread Emails (JMAP-anropet) och Shape Output Data (fälten du skickar vidare). Vanliga justeringar är att hämta 10 ämnesrader i stället för 3, filtrera på en specifik brevlåda (som ”Support”) eller söka efter flaggade/brådskande meddelanden i stället för olästa.
Oftast är det värdet i Authorization-headern eller en utgången token. Dubbelkolla token-formatet (för Fastmail är det vanligtvis en Bearer-token) och bekräfta sedan att API-sessionens endpoint är korrekt för din leverantör. Om det fungerade en gång och sedan slutade, utgå från att behörigheter ändrades eller att token drogs tillbaka.
Mer än tillräckligt för en typisk delad inkorg.
För just JMAP är n8n oftast det praktiska valet eftersom du kan bygga exakt de HTTP-anrop du behöver och forma svaret utan att fastna i connector-begränsningar. Zapier och Make kan fungera, men du kan sluta med att betala för högre task-volym och ändå behöva anpassade HTTP-steg. n8n låter dig också self-hosta, vilket spelar roll om du kör täta kontroller över flera inkorgar. Å andra sidan, om du bara vill ha en enkel ”nytt mejl”-ping och du kör Gmail kan de enklare verktygen kännas snabbare. Prata med en automationsexpert om du är osäker på vad som passar.
Olästa meddelanden slutar vara osynliga så fort du lyfter fram dem där teamet redan tittar. Sätt upp detta en gång, och låt sedan flödet hålla din delade inkorg ärlig.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.