Inbox Manager
Inbox Manager — autonome Triage für deinen Outlook-Posteingang
Section titled “Inbox Manager — autonome Triage für deinen Outlook-Posteingang”Inbox Manager liest deine M365-Inbox alle paar Minuten, klassifiziert jede neue Mail in eine von acht Kategorien, draftet wo sinnvoll eine Antwort in deiner Schreibweise, eskaliert was eskaliert werden muss, und übergibt Angebotsanfragen automatisch an den Office Assistant für die PDF-Erstellung. Du siehst nur noch das was wirklich deine Aufmerksamkeit braucht.
Was die App macht
Section titled “Was die App macht”Jede eingehende Mail durchläuft drei Schritte:
- Klassifizierung in eine von 8 Kategorien:
URGENT— zeitkritisch, expliziter Action-RequestLEAD— echter Interessent fragt nach deinem ProduktOFFER_REQUEST— konkrete Angebots- oder Quote-AnfrageINVOICE— Rechnung, Zahlungsbestätigung, MahnungSUPPORT— bestehender Kunde hat ein ProblemNEWSLETTER— Marketing, Substack, MailerliteSPAM— Cold-Outreach, “want to connect”, PitchFYI— interne Mail, Bot-Notification, alles andere
- Folge-Aktion je Kategorie:
- URGENT → Outlook-Draft + Commitment im Inbox-Center
- LEAD →
lead_qualified-Event (Sales-Folge-Apps konsumieren) - OFFER_REQUEST → Office Assistant erzeugt PDF-Quote, Draft mit PDF-Anhang landet in Outlook
- INVOICE →
invoice_received-Event (Buchhaltung) - SUPPORT → empathischer Reply-Draft in Outlook
- NEWSLETTER / SPAM / FYI → nur protokolliert, keine Aktion
- Dashboard-Update — Radar-Chart der Tages-Klassifikationen, Mail-Verlauf-Timeline, Top-Sender, alles im App-UI sichtbar.
Die Drafts landen direkt in deinem Outlook-Drafts-Ordner — du reviewst + sendest. Inbox Manager schickt selbst keine Mails ohne deine Freigabe.
Erste Schritte
Section titled “Erste Schritte”-
M365 verbinden unter Settings → Integrations. Die App braucht
mail.read+mail.send, plusdocument.draft+document.renderfür die OFFER_REQUEST-PDFs. Aktivierung schlägt fehl wenn M365 nicht verbunden ist — du bekommst einen Link nach/user/integrations. -
Office Assistant installieren (automatisch empfohlen). Die bilateral Cross-App-Wire wird beim Activate auto-approved — keine manuelle Workspace-Control-Freigabe nötig.
-
Inbox Manager aktivieren vom Marketplace. Die Aktivierung resolved automatisch deine M365-Email-Adresse + Tenant-User-UUID in die
install_settings— du musst nichts manuell eintragen. -
Brand Voice wählen im Settings-Tab. Vier Presets stehen zur Auswahl:
- Direkt & freundlich, DE/EN je nach Absender (Default)
- Förmlich (Sie-Form), vollständige Sätze
- Locker & persönlich (Du-Form)
- English · direct · concise · no fluff
Oder “Custom” + eigene Stil-Beschreibung. Die
replier-Agent nutzt das verbatim für alle Drafts. -
(Optional) Shared Room ID setzen — wenn gesetzt postet der
summarizer-Agent abends einen 5-Zeilen Digest in den Raum (“Heute 47 Mails handled, davon 12 Newsletter, 3 Urgent, 1 Lead qualified…”).
Tag-für-Tag-Nutzung
Section titled “Tag-für-Tag-Nutzung”Was passiert automatisch
Section titled “Was passiert automatisch”- Alle 5 Min (konfigurierbar 5-1440 Min) sweept Inbox Manager deine M365-Inbox via Graph API, schaut auf die letzten 30 Min (lookback-window), schließt deine eigene Adresse + bereits handled-Mails aus.
- Pro Mail läuft die Klassifikation (
master-Agent), die Folge-Aktion je Kategorie, dann landet einactivity:<msg_id>Eintrag inctx.kvfür Dashboard + Dedup. - Bot-Noise-First-Check: [email protected] / dependabot / CI-Pipelines etc. werden als FYI klassifiziert (auch wenn sie “URGENT” oder “action required” schreiben) — du siehst sie nicht.
- 18:00 (Cron) postet der
summarizerden Tages-Digest in den Shared Room. Wenn nichts klassifiziert wurde →HEARTBEAT_OKund der Run wird unterdrückt.
Was du tust
Section titled “Was du tust”- Drafts reviewen in Outlook — Inbox Manager schreibt die Drafts unter deinem Account, die Empfänger-Adresse + Subject sind vorausgefüllt. Du liest, edits ggf., klickst Send.
- Dashboard checken im App-UI: Radar zeigt die Kategorie-Verteilung des Tages, Timeline zeigt jeden klassifizierten Mail-Event (mit Status: done / error / drafted), Top-Sender ranked nach Volumen.
- Settings anpassen im rechten Chrome-Panel:
- Sender-Whitelist → nur diese Absender werden bearbeitet (Pre-Trust-Filter, alles andere wird ignoriert)
- Sender-Blacklist → diese Absender überspringen (nur wirksam wenn Whitelist leer)
- Per-Kategorie-Toggles → Häkchen aus = Mail wird klassifiziert aber keine Folge-Aktion (kein Draft, kein Event)
- Cadence / Lookback → wie oft + wie weit zurück gesweept wird
Activity-Feed + Retry
Section titled “Activity-Feed + Retry”Wenn eine Mail-Verarbeitung crashen sollte (Graph-API-Hick-up,
Office-Assistant nicht erreichbar etc.), landet sie als
status: error im Activity-Feed. Klick auf “Retry” im UI startet
sie neu — der activity:<msg_id> Key in ctx.kv ist der Dedup-Anker,
ein erfolgreicher Retry überschreibt die Error-Row.
Cross-App-Integration
Section titled “Cross-App-Integration”Office Assistant (OFFER_REQUEST-Pfad): jeder OFFER_REQUEST geht
nicht direkt durch Inbox Manager sondern via ctx.apps.fetch an die
Office-Assistant-Routes:
POST /documents— erzeugt den Quote-Draft mit Line-Items aus dem Inhalt + ggf. Anhang (Inbox Manager nutztdrawings.analyzefalls ein technisches PDF/DXF dranhängt)POST /documents/{id}/transition— schaltet auf “sent” und vergibt die AngebotsnummerPOST /documents/{id}/render-pdf— rendert das PDF
Inbox Manager fügt das PDF dann als Anhang an den Reply-Draft in Outlook. Du reviewst PDF + Body, klickst Send.
Events für Sales- + Buchhaltungs-Apps:
lead_qualified— wenn LEAD klassifiziert wird, fan-out an alle Apps die’s subscriben (z.B. Sales Guy für ICP-Match-Validierung und ggf. Cadence-Start)invoice_received— wenn INVOICE klassifiziert wird, fan-out an Buchhaltungs-Apps (Odoo / Lexoffice / BC) für Mapping + Reconciliation
Die Wires zu diesen Subscribern müssen vom Tenant in Workspace Control approved werden (kein Auto-Approve außer für die office-assistant-sdk Dependency).
Was du erwarten kannst
Section titled “Was du erwarten kannst”- Sweep-Frequenz default 5 Min — Mails sind ca. 5-10 Min nach Eingang klassifiziert + ggf. mit Draft im Outlook. Schneller wäre möglich durch on_inbound (Push statt Pull), aber der Cron-Sweep ist robuster bei OAuth-Token-Rotation und Provider-Hick-ups.
- Drafts in deiner Stimme — der
replier-Agent nutzt deinen Brand-Voice-Preset (oder Custom-Text). Wenn die Drafts den falschen Ton treffen, wechsel das Preset oder schreib einen Custom-Text in 2-3 Sätzen. - Tenant-isolation — die ganze Activity-History lebt in
ctx.kvscoped auf deinen Tenant. Kein anderer Tenant auf der selben Instanz sieht deine Mails. - Activity-TTL: 7 Tage —
activity:<msg_id>Rows ttl-expire nach einer Woche. Genug Zeit damit ein Freitag-Fehler am Montagmorgen noch im Dashboard sichtbar ist. - Bot-Noise wird nicht eskaliert — das ist die wichtigste Single-Improvement-Source nach Klassifikations-Tuning. Wenn dich trotzdem GitHub-Notifications nerven, klassifizier sie händisch im Settings als zusätzliche Patterns (Workaround heute über sender_blacklist).
Troubleshooting
Section titled “Troubleshooting”“Die Mails werden nicht gesweept” — check Settings → Integrations ob M365 wirklich connected ist. Token kann auch nach Login ablaufen — Inbox Manager retried OAuth automatisch, aber wenn der User das Token revoked hat (M365-Portal → App-Permissions), bekommst du 0 Sweeps und keinen Fehler. M365 disconnect + reconnect fixt das.
“OFFER_REQUEST-Drafts haben kein PDF angehängt” — entweder Office Assistant ist nicht installiert (→ Marketplace → install), oder die bilateral Wire ist nicht approved (→ Workspace Control → Wires & Grants). Inbox Manager schreibt den Draft auch ohne PDF weiter, du bekommst aber eine Warning im Activity-Feed.
“Die Drafts klingen falsch” — der replier-Agent nutzt deinen
Brand-Voice-Preset. Wechsel im Settings-Tab auf ein anderes Preset
(förmlich → locker etc.) oder switch auf “Custom…” und schreib in
2-3 Sätzen exakt wie du klingen willst (“immer in der Du-Form,
keine Floskel-Eröffnungen, Sätze unter 15 Wörter”).
“GitHub-Notifications werden trotzdem als URGENT klassifiziert”
— sehr selten, weil der Bot-Noise-Check [email protected] etc.
hart als FYI klassifiziert. Wenn’s doch passiert: Sender ist
wahrscheinlich KEIN noreply sondern z.B. der Repo-Maintainer
direkt (= echtes URGENT). Wenn falsch klassifiziert: Issue mit der
Mail-Headers + Body öffnen.
“Das Daily Digest postet nicht” — shared_room_id Setting muss
gesetzt sein (UUID des Rooms). Ohne ID läuft der summarizer zwar,
aber findet keinen Empfänger und logged HEARTBEAT_OK ohne Post.
Workspace Control → Group Rooms → Room-UUID rauskopieren →
Settings einfügen.
“Mein eigenes Brand Voice landet nicht im Draft” — nach Settings- Speichern: nächster Sweep nutzt die neuen Settings (also max. ~5 Min warten). Ältere Drafts in Outlook werden nicht neu geschrieben — nur neue Mails ab jetzt.
Reference
Section titled “Reference”This section is auto-generated from the app’s manifest. It updates whenever the app publishes a new version.
Required scopes
Section titled “Required scopes”mail.readmail.senddocument.draftdocument.renderdrawings.analyze
Install settings
Section titled “Install settings”| Key | Label | Type | Required |
|---|---|---|---|
brand_voice | Schreibweise | select_or_custom | no |
shared_room_id | Shared Room ID | string | no |
my_email_address | Meine Email | string | no |
act_as_user_id | Tenant-User UUID for OAuth | string | yes |
sender_whitelist | Absender-Whitelist | text | no |
sender_blacklist | Absender-Blacklist | text | no |
cadence_minutes | Sweep-Kadenz (Minuten) | number | no |
lookback_minutes | Lookback-Window (Minuten) | number | no |
cat_urgent | Kategorie: URGENT | boolean | no |
cat_lead | Kategorie: LEAD | boolean | no |
cat_offer_request | Kategorie: OFFER_REQUEST | boolean | no |
cat_invoice | Kategorie: INVOICE | boolean | no |
cat_support | Kategorie: SUPPORT | boolean | no |
cat_newsletter | Kategorie: NEWSLETTER | boolean | no |
cat_spam | Kategorie: SPAM | boolean | no |
cat_fyi | Kategorie: FYI | boolean | no |
Agents
Section titled “Agents”- Inbox Coordinator (default)
- Reply Drafter
- Daily Digest
Emitted events
Section titled “Emitted events”lead_qualifiedinvoice_received