Skip to main content
Categorizers tell InboxMate how to handle each incoming message. Define a list of categories with descriptions, and the AI assigns every new email (or inactive widget chat) to exactly one. Each category can trigger actions like archiving, creating a ticket, sending a notification, replying with AI, or calling a webhook. You manage categorizers from Settings → Kategorisierer, or visually in the flow editor. InboxMate ships with one default email categorizer per workspace, pre-filled with seven common categories (e.g., Kundenanfrage, Intern, Spam, Newsletter, Zustellfehler).
New to categorizers? The fastest start is the onboarding Kategorisieren step right after connecting a mailbox — see Categorizing your inbox. To split one category into condition-based paths, see Conditions & branches.

How it works

  1. A new email arrives, or a widget chat goes inactive (30 minutes without a new message)
  2. InboxMate runs the matching categorizer through the LLM once per subject
  3. The LLM picks one category, returns a confidence score, summary, and reasoning
  4. Each action on the matched category runs in auto mode (executes) or suggest mode (waits for human review)

Categories

A category is a label, and optionally an expert hint that tells the AI when to pick it. The hint is hidden behind the ⚙️ icon next to each category title — clicking it expands a textarea labelled Zusätzliche Infos zu dieser Kategorie. The gear lights up primary-coloured whenever the hint is set, so you can see at a glance which categories carry extra guidance. Good hints are one or two sentences focused on intent, not keywords. Reference signals the AI can actually see — sender, subject, body wording, attachment filenames and MIME type:
Rechnung — Nur wenn das Wort Rechnung im Betreff steht und ein PDF angehängt ist.
The default German set covers most B2C inboxes out of the box, but you can rename, remove, or add categories at any time. The hint is optional — if the category name is self-explanatory (Spam, Newsletter), leave it empty.
A category can legitimately have no action. A catch-all like Sonstiges often just sorts the mail and leaves it in the inbox — no follow-up step. When AI proposes categories it deliberately leaves such a catch-all action-less while still arming meaningful categories with actions. In the System Visualisierung these end at the grey Keine Aktion terminal.

Attachments are part of the signal

For every email the AI sees a one-line attachment summary (filenames, MIME types, sizes — no file contents). You can write hints like “only when an invoice PDF is attached” and they work as written. The AI can recognise the filename + MIME but it can’t read what’s inside the file.

Actions

Each category can trigger one or more of these actions: E-Mail senden, Weiterleiten, and Endgültig löschen are destructive — the editor forces an explicit confirmation toggle before they can run, because sent or deleted mail can’t be undone. Conflicting actions are blocked at save time — you can’t combine Archivieren with Endgültig löschen (nor Endgültig löschen with Ticket erstellen, Mit KI antworten, E-Mail senden, or Weiterleiten), and the same action type can only appear once per category.

Suggest vs auto mode

Every action has a mode toggle: automatisch tun (the system runs it) or nur vorschlagen (the action waits in the inbox for an operator to approve or dismiss). Suggest mode is the safe default while you’re still tuning a category. Mit KI antworten is the one action that runs in both modes: in suggest mode it pre-generates a draft so operators can review and send with one click; in auto mode it sends without review. Antwort entwerfen always behaves like suggest mode (no auto-send) — it’s the “I want a draft waiting for me” variant.

Kontakt anlegen: add the sender as a contact

The Kontakt anlegen action finds or creates a contact for the sender (find-or-create by their email) and links it to the conversation. The name and role are auto-filled by the AI from the message and signature.
Contacts are no longer created automatically when an email arrives. A category only creates a contact if its action chain includes Kontakt anlegen. Categories without it (e.g. Spam, Newsletter, Zustellfehler) never create a contact — so you decide which kinds of senders become contacts.
Place it early in the chain — before Unternehmen recherchieren and Antwort entwerfen — because later actions build on the linked contact (the company research attaches to it, and the draft can reference it).

Unternehmen recherchieren

This action finds or creates the sender’s company in your CRM and scrapes its website into the company’s notes.
  • Research once by default. If the company already has research notes, the action skips the scrape and reuses what’s there. Toggle Bestehende Recherche aktualisieren on the action to force a fresh scrape on every run.
  • Needs a contact first. Kontakt anlegen must run earlier in the chain, otherwise the action is skipped at runtime (see Action order & dependencies).

Ticket erstellen

By default the ticket’s title and description are AI-generated from the email — you no longer set them manually. Leaving priority empty lets the AI decide it too. An optional fixed subject template override is available behind a disclosure if you want a constant title instead. When Unternehmen recherchieren ran earlier in the chain, that company research is handed to the ticket-generating AI as context, so the ticket reflects what’s known about the sender’s company. The ticket is linked to the contact and company.

Action order & dependencies

Actions in a chain run top to bottom and pass their results forward, so order matters:
  • Kontakt anlegen links the contact →
  • Unternehmen recherchieren writes the company research →
  • Antwort entwerfen, Mit KI antworten, and Ticket erstellen use that contact + research in their output.
The editor checks the order and warns you when it breaks a dependency:
  • Unternehmen recherchieren requires Kontakt anlegen before it. The editor shows a hard warning with a one-click auto-fix; if you ignore it, the research is skipped at runtime.
  • Antwort entwerfen, Mit KI antworten, and Ticket erstellen show a softer tip suggesting you add Unternehmen recherchieren before them to enrich their output.

Example pipeline: customer inquiry

A common Kundenanfrage pipeline chains four actions in this order:
  1. Kontakt anlegen (auto) — adds the sender as a contact and links it to the conversation, so the later steps have someone to attach to
  2. Ticket erstellen (suggest) — opens a ticket so the request is tracked
  3. Unternehmen recherchieren (auto) — finds the sender’s company (using the LLM’s extracted company name + sender domain), scrapes the website with your custom prompt (once, unless Bestehende Recherche aktualisieren is on), writes a briefing to the company’s notes
  4. Antwort entwerfen (auto) — generates a reply draft; because step 3 just ran, the draft prompt sees the freshly-written company notes alongside your agent prompt, knowledge base, contact notes, and operator profile
The full chain — new email → categorize → contact + company created + scraped → draft written — runs in ~10–20 seconds on a typical inbox.

Where the contact & company creation rules live

Kontakt anlegen is the only action that creates a contact, and Unternehmen recherchieren is the only action that creates a company row in your CRM. Categories that do not include them (e.g. Spam, Newsletter, Zustellfehler) will never auto-create a contact or company even if the LLM extracted a name. That’s the design — the pipeline is the gate against spam pollution. (Because Unternehmen recherchieren needs a contact first, put Kontakt anlegen ahead of it.) Matching rules:
  • Sender from a corporate domain (e.g. martin@bigtechcorp.com) → matches/inserts on (domain, name) strictly. sarah@bigtechcorp.com writing later links to the same row.
  • Sender from a free-mail provider (gmail.com, outlook.com, gmx.de, …) → matches on name only (domain stored as null). Two senders writing from different free-mail addresses about the same BigTechCorp resolve to the same company row.
If the LLM also extracted a domain/website from the body or signature (e.g. the footer mentions psquared.dev), that takes precedence over the sender domain — useful when a colleague writes from their personal Gmail but their signature has the real corporate domain.

Webhook payload

The Webhook auslösen action POSTs JSON to your configured URL with the full categorization + email context — including the sender, body, and any attachments. No follow-up API call needed for typical automations (file an invoice, post to Slack, kick off an n8n flow):

Attachments in the payload

Every attachment carries three ways to access the bytes:
  • url — public URL, no expiry. Use an HTTP fetch node (e.g. n8n’s HTTP Request → File response) and stream the file straight into Drive / S3 / your endpoint. Works for every size.
  • dataBase64 — inline base64 content, populated when the file is ≤ 5 MB. Decode in a code node or use n8n’s Convert to File → Move Base64 String to File. Skip the HTTP round-trip entirely.
  • truncatedtrue only when the file is larger than the 5 MB inline cap. The dataBase64 field is omitted; use url instead.
filename, mimeType, and size are always present. The InboxMate categorizer LLM has already seen filenames + MIME types when deciding the category, so the summary and reasoning fields often reference them directly.

Signature header

Every webhook delivery sets an X-Categorizer-Signature header when the webhook is configured with a secret:
Verify with HMAC-SHA256 over the raw request body using the secret you saved when creating the webhook action.

Notifications: in-app, email, Slack & Teams

The Benachrichtigung senden action tells your team when a category matched, without anyone watching the inbox. In the action panel you pick who and how:
  • Kanäle (how) — toggle any combination of:
    • In-App-Benachrichtigung — the bell inside InboxMate.
    • E-Mail — to the chosen recipients’ account emails.
    • Slack / Teams (Webhook) — POSTs a message to an incoming-webhook URL you paste in.
  • Empfänger (who) — pick the workspace members to notify. Leave it empty to notify everyone with access to the mailbox. (Recipients apply to the in-app and email channels; the webhook always posts to its URL.)

Slack / Teams webhook

When you enable the Slack / Teams (Webhook) channel, a Webhook-URL field appears. Paste an incoming-webhook URL from either service — InboxMate detects which one from the URL and formats the message to match (a Slack message, a Teams Adaptive Card, or generic JSON for anything else). The notification includes the category, the email subject, the sender, and the AI’s one-line summary.
Teams retired the old “Incoming Webhook” connector. The current way to get a URL is the built-in Workflows (Power Automate) app:
1

Open Workflows in Teams

In the Teams channel where you want the messages, click the ··· menu → Workflows, or add the Workflows app from the Teams app store.
2

Use the webhook template

Choose the template “Post to a channel when a webhook request is received.” Confirm the connection and pick the team + channel.
3

Copy the URL

Workflows generates an HTTP POST URL. Copy it.
4

Paste it into InboxMate

Paste the URL into the Webhook-URL field on the notify action and save. Microsoft’s full walkthrough: Create incoming webhooks with Workflows for Microsoft Teams.
The action panel links straight to that Microsoft guide, so you don’t have to leave the editor to find it.
The webhook is delivered the moment the category matches and is fire-and-forget — a bad URL or an error from Slack/Teams is logged but never blocks the categorization or its other actions.
Connected your mailbox via Outlook? Then you’re on Microsoft 365 and almost certainly use Teams — the Workflows webhook is the quickest way to route “hot lead arrived” or “invoice received” pings into the channel your team already watches.

Sharing & access

Each categorizer is either private or shared, set with the Im Team teilen toggle on the categorizer (root) node:
  • Privat (nur du) — only the owner sees and runs it. Good for personal rules on a mailbox only you watch.
  • Mit dem Team geteilt — every workspace member sees it; only admins (and the owner) can edit it. Good for the shared support inbox where one set of rules should apply for everyone.
This pairs with mailbox sharing: a categorizer only acts on mailboxes within its Gilt für scope, and members only see categorizations for mailboxes they own or were shared. In a 2–20 person workspace the common setup is one shared categorizer per shared mailbox, plus private categorizers for individual inboxes.

Confidence behavior

The behavior preset controls how confident the AI has to be before it acts: Below the match threshold, the email lands in the inbox uncategorised. Between the two thresholds, actions are suggested but not auto-executed.

Scope

By default a categorizer runs on every connected mailbox plus inactive widget chats. Under Gilt für, restrict it to specific mailboxes by selecting their chips, or toggle the widget-chat scope off. Workspaces with multiple mailboxes (e.g., support + sales) often want one categorizer per inbox so each gets its own categories and actions.

Knowledge

Two knowledge inputs are available per categorizer:
  • Wissensquellen (immer mitgegeben) — up to 10 short knowledge entries injected into every prompt. Best for facts that are always relevant (return policy, business hours, escalation routing).
  • Wissens-Buckets (bei Bedarf durchsucht) — vector buckets the AI can call via search_knowledge if it needs more context to decide a category. Best for large knowledge bases.
See Data sources for how to build knowledge entries and buckets.

Activity log

The Letzte Aktivität section lists recent categorizations and the actions taken. Reversible actions (like archive) show a Rückgängig button so operators can undo a wrong call without leaving the page.

Plan availability

Categorizers are available on Pro and Business plans. Auto-mode actions (including Mit KI antworten set to auto) require Business.

EU model routing

Workspaces with EU-only processing enabled (Pro and Business) automatically route categorization through the EU deployment of GPT-4.1 or GPT-5-mini. No configuration needed — the routing happens transparently per request.