# HeidiMail — Roadmap & Upcoming Features > HeidiMail er ikke en mailklient. Det er en kommunikationsstation med email som datakilde. *Sidst opdateret: 26. marts 2026* --- ## Workgroups — Projekt-baseret kommunikation **Problemet:** Email er organiseret pr. mappe (Inbox, Sent, Drafts). Men virkelighedens arbejde er organiseret pr. projekt, kunde eller opgave. Du leder efter "den faktura Jan sendte i april" ved at søge, scrolle og åbne 15 mails. **Løsningen:** Workgroups samler al kommunikation og alle dokumenter for et projekt på én isoleret side. ### Kernefunktionalitet - **Opret workgroup fra en mail** — AI finder automatisk relaterede mails (afsender, emne-tråd, CC-overlap, domæne) - **Én samlet side** med al korrespondance kronologisk + alle dokumenter/attachments - **AI-genereret TL;DR** af hele forløbet - **Kognitiv tidslinje** — hvornår aktivitet, hvornår stilhed - **AI-status** — "Sidste kontakt: 12 dage siden. Du lovede at sende revideret kontrakt." - **Auto-voksende** — nye mails der matcher workgroup'ens deltagere/emner tilføjes automatisk - **Delte workgroups** — kolleger kan tilgå samme workgroup (via SignalR/collab) ### Eksempler | Workgroup | Indhold | |-----------|---------| | Kunde: Acme Corp | 3 mdr. korrespondance, 12 dokumenter, 2 åbne forpligtelser | | Projekt: Website Redesign | Tråde fra 4 personer, mockups, kontrakt, tidsplan | | Sag: Reklamation #4521 | Kundehenvendelse, intern diskussion, løsning, opfølgning | --- ## AI Features ### Sentiment-analyse **Udgående (højeste værdi):** - Før send: "Din tone kan opfattes som konfronterende — vil du justere?" - Glidende skala: professionel ↔ venlig ↔ direkte ↔ skarp - Forhindrer misforståelser *inden* de sker **Indgående:** - Diskret indikator: "Afsender virker presset" / "positiv tone" / "neutral" - Hjælper med at læse mellem linjerne - Kan bruges til prioritering: frustrerede afsendere = højere prioritet ### Forpligtelsesdetektering - AI scanner sendte mails for løfter: "Jeg sender det fredag", "Jeg vender tilbage mandag" - Dashboard med åbne forpligtelser — ingen glemmer noget - Påmindelser: "Du lovede X for 3 dage siden — stadig ikke sendt" - Også indgående: "Kunden forventer svar inden tirsdag" ### Trådintelligens - "Denne tråd har 12 svar og I er stadig uenige — foreslår et møde?" - "8 personer på CC men kun 2 er aktive — de andre er irrelevante" - "Denne tråd er 3 uger gammel uden svar — glemt?" - Auto-detect cirkulære diskussioner ### Smart prioritering - AI-scoret prioritet — ikke bare ulæst/læst - "Kræver handling inden kl. 16" vs "FYI — læs når du har tid" - Baseret på: afsender-relation, emneord, tone, historisk responstid - Integrerer med forpligtelsesdetektering ### Kontekstbaserede svar - AI-genereret udkast baseret på hele trådens kontekst - Tilpasset din historik med personen (tone, formalitet, sprog) - Eventuel workgroup-kontekst medtages - Du redigerer udkastet, ikke skriver fra scratch ### Kognitivt niveau / Kommunikationsmønstre - Hvornår modtager du flest mails? (tidspunkt, ugedag) - Hvem kommunikerer du mest med? - Gennemsnitlig responstid pr. kontakt - "Du har brugt 2.3 timer på email i dag" — awareness, ikke judgement - Mønstre: "Mandage er din tungeste maildag — 47% over gennemsnit" ### Phishing & Scam Detection - AI-baseret, ikke bare header-analyse (SPF/DKIM/DMARC er allerede implementeret) - Sprogtone-analyse: "Denne mail påstår at være fra din bank men sproget matcher ikke" - URL-analyse: "Linket peger på et domæne der ligner men ikke er din bank" - Attachment-risiko: "Denne .xlsx har makroer" ### AI Text Rewrite *(implementeret)* - Marker tekst → AI omskriver til mere professionel/klar tone - Cross-dissolve animation ved accept - Azure OpenAI backend --- ## Newsletter Management *(POC lavet)* **Problemet:** Newsletters hober sig op, fylder i indbakken, og ingen afmelder dem. ### Koncept - **Separat side** — newsletters fjernes helt fra indbakken - **Grupperet pr. afsender** med engagement-metrics (modtaget vs. åbnet) - **AI-indsigter:** "14 newsletters du aldrig åbner — afmeld dem alle?" - **Auto-afmelding** via `List-Unsubscribe-Post` (RFC 8058) — one-click - **Ny/ukendt detection** — første gang en newsletter dukker op → prompt - **Auto-oprydning** — slet uåbnede newsletters efter 30/60/90 dage ### Klassificering (prioriteret regelkæde) 1. Har attachment → ikke newsletter (faktura, kvittering) 2. Emne matcher transaktionelle nøgleord → ikke newsletter 3. Har `List-Unsubscribe` + afsender sender hyppigt → newsletter 4. Alt andet → normal mail ### Status - POC i `poc/newsletters/` — statisk HTML/CSS/JS med fake data - Dashboard med afsender-grupper, engagement-bars, AI-indsigt panel - Gennemgå & afmeld flow med retention-indstillinger --- ## Dokument-håndtering **Problemet:** Dokumenter bor i individuelle mails. En kunde sender 15 mails over 3 måneder med kontrakter, fakturaer, specifikationer. ### Løsning - Dokumenter tilhører **workgroups**, ikke mails - Auto-kategorisering: kontrakt, faktura, specifikation, billede, andet - Versionering: "Kontrakt v1 (marts) → Kontrakt v2 (april, revideret)" - Søgbar på tværs af workgroups - Preview inline — PDF, billeder, Office-dokumenter --- ## Dashboard (ny startside) Indbakken er ikke startsiden. Dashboard er: - **Åbne forpligtelser** — hvad har du lovet? - **Ventende svar** — hvem venter på dig? - **Workgroup-aktivitet** — hvilke projekter har nyt? - **AI-indsigter** — "3 mails kræver handling i dag" - **Kognitivt overblik** — kommunikationsmønstre denne uge - **Newsletter-status** — "47 ulæste newsletters, 14 anbefalet afmeldt" --- ## Kollaboration ### Samarbejde om mails *(editor klar)* - swp-editor har collab-support (remote cursors, line locking, ICollabTransport) - SignalR transport allerede i swp-editor pakken - Flere personer kan redigere et svar samtidigt - Billeder deles via server-URL, ikke SignalR payload ### Chat ved siden af *(tænkt)* - Intern chat-kanal pr. mailtråd eller workgroup - "Hvad synes du vi skal svare?" — uden at CC'e kunden - SignalR-baseret, realtime - Historik bevares i workgroup'en --- ## Teknisk fundament | Komponent | Status | Teknologi | |-----------|--------|-----------| | JMAP mail sync | Implementeret | SWPMailServer, inkrementel sync, PostgreSQL cache | | Rich text editor | Implementeret | swp-editor v1.0.1, custom elements, loadHTML | | AI text rewrite | Implementeret | Azure OpenAI, dissolve-animation | | OTLP telemetri | Implementeret | SWPLogger, traces + logs + metrics | | Newsletter POC | Prototype | Statisk HTML/CSS/JS | | Collab editor | Klar i editor | swp-editor collab, SignalR transport | | Image storage | Implementeret | Server filesystem, COPY bulk upsert | | Custom elements | Implementeret | mail-sidebar, reading-panel, compose-panel etc. | | SWP.Core.Logging | Implementeret | ILogger\ wrapper med SourceContext | | IDatabaseOperations\ | Implementeret | Generic, SourceContext per repository | --- ## Prioriteret rækkefølge | # | Feature | Værdi | Kompleksitet | Afhængigheder | |---|---------|-------|-------------|---------------| | 1 | Newsletter management | Høj — fjerner støj | Medium | Cache, JMAP headers | | 2 | Sentiment-analyse (udgående) | Høj — forhindrer problemer | Lav | Azure OpenAI | | 3 | Workgroups | Meget høj — differentierende | Høj | DB model, AI clustering | | 4 | Forpligtelsesdetektering | Høj — ingen glemmer noget | Medium | AI, sendte mails | | 5 | Dashboard | Høj — samler det hele | Medium | Workgroups, forpligtelser | | 6 | Chat/collab | Medium — team-feature | Medium | SignalR infrastruktur | | 7 | Dokument-håndtering | Medium — bygger på workgroups | Medium | Workgroups | | 8 | Øvrige AI features | Medium | Varierer | Azure OpenAI |