# Inbox

Inbox is an email-triage workspace that connects your mailbox, sorts incoming mail into your own categories, and drafts replies in your writing style — plus rules that can react to a CRM event. Nothing leaves your mailbox until you approve it.

---

## What Is Inbox?

Inbox is a built-in Insulin app pinned to the desktop Dock. Once you connect a mailbox, Insulin watches for incoming email, categorizes each message, and — when a rule matches — produces something for you: a drafted reply, a Slack notification, or a CRM action. Everything it produces waits in a **Needs approval** queue where you read, edit, and confirm it.

Prefer video? Watch a quick overview:

<iframe width="100%" height="480" src="https://www.youtube.com/embed/E_o9oD63F0I" title="Suger Insulin — Inbox App overview" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

The whole feature is built around one safety promise:

:::warning
**Insulin never sends email on its own.** Every AI-generated reply waits in the **Needs approval** queue until you review it, and pressing **Send** requires a separate confirmation step because sending cannot be undone. The only exception is an **auto-send rule** — a rule you explicitly author that authorizes sending without review. Nothing sends automatically unless you have created such a rule yourself.
:::

:::info
Inbox supports **Gmail** and **Outlook**. Only **one** of them can be the Inbox mailbox at a time — see [Switching between Gmail and Outlook](#switching-between-gmail-and-outlook).
:::

![The Inbox app — the sidebar with Needs approval and its count badge, Mails expanded to Inbox, Sent, Archived and All plus the Categories group, and Settings below, beside the mail list and reading pane](images/21-inbox-mails.png)

## Opening the Inbox App

Open Inbox from the **Inbox** tile pinned to the desktop Dock, or from the **Search apps…** launcher in the System Bar. Like other workspace apps it opens as a resizable window.

A left sidebar navigates the app:

| Entry | What it holds |
|-------|---------------|
| **Needs approval** | Everything waiting on you. This is the tab Inbox opens on, and it carries a live count badge of the items in the queue. |
| **Mails** | Your processed mail. Expands to the status views **Inbox**, **Sent**, **Archived**, and **All**, plus a **Categories** group listing your own categories. |
| **Settings** | A collapsible group with **Account**, **Rules**, and **Categories**. |

**Mails** opens on **Inbox**. The **Categories** group appears only once you have created at least one category, and picking a category shows every mail carrying it across all statuses. **Archived** is the user-facing name for mail you dismissed — it is kept, not deleted.

## How an Email Becomes an Action

```d2
direction: down
mail: "Incoming email\nGmail or Outlook"
crm: "CRM event\nSalesforce · HubSpot · Dynamics 365"
categorize: "Categorization\nAI applies your categories"
match: "Rule match\nfilter + context from the\nintegrations you connected"
draft: "Email draft"
crmaction: "CRM action"
slack: "Slack DM to you" { shape: rectangle; style.stroke-dash: 3 }
auto: "Auto-send\nno human review — only from a\nrule you wrote yourself" { shape: rectangle; style.stroke-dash: 3 }
gate: "NEEDS APPROVAL\nyou read it, edit it, confirm it"
sent: "Sent from your mailbox"
ran: "Agent runs it live\nin the chat rail"
mail -> categorize
categorize -> match
crm -> match
match -> draft
match -> crmaction
match -> slack: "notification only" { style.stroke-dash: 4 }
match -> auto: "bypasses the gate" { style.stroke-dash: 4 }
draft -> gate
crmaction -> gate
gate -> sent: "Send, then confirm"
gate -> ran: "Run in chat"
auto -> sent
```

Everything on the solid path stops at **Needs approval**. The two dashed outputs are the exceptions: a Slack notification only tells you something happened, and auto-send exists only if you wrote a rule that asks for it.

## Connecting a Mailbox

Open **Settings → Account** and find the **Email source** section. Inbox does not run its own OAuth flow — it reuses the connection you set up under Integrations.

Each provider has its own card, and there are two paths to enabling it:

1. **Already connected** — If you have already connected [Gmail](/integrations/google-mail/) or [Outlook](/integrations/microsoft-outlook/) through Integrations, the card shows an **Enable Inbox for Gmail** / **Enable Inbox for Outlook** button. Clicking it health-checks your access, registers the mailbox webhook, seeds your categories, and starts building your [writing style](#writing-style).
2. **Not connected yet** — The card shows a **Connect Gmail** / **Connect Outlook** link that takes you to **Settings → Integrations**, where the standard connection lives. Once connected, return to this page and click **Enable Inbox for …**.

A connected card shows **Connected as** your mailbox address, plus an **Inbox enabled** badge once Inbox is running.

:::info
Only **one** email provider can be the Inbox mailbox at a time. While one holds the slot, the other card shows either a **Switch to …** action (if that provider is already connected under Integrations) or the note *"Only one email provider can be connected at a time."*
:::

### Account Lifecycle

The active provider's card exposes two lifecycle controls with very different effects on your data:

| Action | What it does | Effect on your data |
|--------|--------------|---------------------|
| **Disable** | Pauses Inbox — it stops receiving and processing any new email. | Mail Inbox has already processed is **kept**. Re-enable anytime with **Enable**. |
| **Disconnect…** | Immediately deletes every email record Insulin has stored. | Deletes **all** Inbox content right away. Your **actual mailbox is not touched**. This **cannot be undone**. |

:::warning
**Disconnect is destructive.** It permanently removes Insulin's copies of your triaged email. It does not delete or modify anything in your real Gmail or Outlook mailbox, but the categories, drafts, and history inside Insulin are gone and cannot be recovered.
:::

### Switching between Gmail and Outlook

When one provider is active and the other is already connected under Integrations, the inactive card offers **Switch to Gmail…** / **Switch to Outlook…**.

:::warning
**Switching permanently deletes the old provider's mail.** The dialog spells this out: your current provider's emails — including AI-applied categories, drafts, and classification history — are permanently deleted, and this cannot be undone. Your writing style is rebuilt from the new mailbox. To confirm, you must type the literal word `SWITCH` into the confirmation box; the **Switch** button stays disabled until it matches exactly.
:::

### If you disconnect the integration itself

Disconnecting the underlying Gmail or Outlook integration (under **Settings → Integrations**, outside Inbox) does not purge your Inbox data immediately. Insulin starts a **7-day grace period**: reconnect the integration inside that window and nothing is lost. If the integration is still missing after seven days, the stored email records are hard-deleted and Inbox resets to a never-connected state.

![Inbox Settings → Account — the Email source section with Gmail enabled beside the Outlook card and its Switch to Outlook action, the AI model list, the Salesforce, HubSpot and Dynamics 365 triggers, and the Writing style card](images/22-inbox-settings-account.png)

## Needs Approval

**Needs approval** is the queue of everything Inbox has produced for you and is holding until you act. It is the tab Inbox opens on, and the sidebar badge counts what is waiting.

Use the search box to fuzzy-search the queue, and the rule filter beneath it to narrow to one rule's output.

### Reviewing a drafted reply

Selecting a reply draft opens a compose pane on the original thread:

- **To** is editable, and a chevron next to it reveals a **Cc** field so you can copy other people on the reply. **More ▸ Reply all** pre-fills Cc with the thread's wider audience (minus yourself).
- The thread history sits above the editor so you can read what you are replying to.
- The reply body is inline-editable and saves when you click away from the field.
- **Attach** stages files onto the reply.

| Action | What it does |
|--------|--------------|
| **Save** | Persists your edits to the draft without sending. |
| **Send** | Sends the reply (see the confirmation step below). |
| **Archive** | Drops the draft out of the queue; the mail stays readable under **Mails ▸ Archived**. |
| **More** | Reply all. |

**Sending is a two-step gesture.** Clicking **Send** opens a **"Send this reply?"** confirmation dialog, and you must confirm there before the reply actually goes out. This second step exists because sending is irreversible — there is no unsend or recall.

### Reviewing a new outbound draft

A rule fired by a CRM event — or a draft the AI chat rail created for you — produces a brand-new email rather than a reply. That one opens as a compose pane with an editable **To**, **Subject**, and **Draft** body, and the same **Save** / **Send** / **Archive** actions. The confirmation dialog reads **"Send this email?"**.

### Running a CRM action

A rule can also produce a **CRM action** — a written instruction such as *"update the CRM with a short summary of the latest email thread."* It appears in the queue as its own block showing the instruction and a **Run in chat** button.

:::info
**A CRM action is never executed silently.** Nothing happens until you click **Run in chat**, which hands the instruction to the agent in the [Inbox chat rail](#the-inbox-chat-rail) and lets you watch it run. Once run, the item leaves the queue and the button is replaced by *"Sent to chat"*.
:::

### Attachments

| Limit | Value |
|-------|-------|
| Files per message | Up to **3** |
| Size per file | Up to **5 MB** |

:::warning
**Attachments are not supported on Outlook sends.** If your Inbox mailbox is Outlook, a send that carries attachments is refused with an error rather than silently going out without them — remove the attachments and send again. Gmail sends carry attachments normally, including files forwarded from the original message.
:::

![The Inbox on Needs approval — the queue with its search box and rule filter, the selected AI draft with its editable To and Subject, the draft body and its evidence, the Save / Send / Archive actions, and the chat rail on the right](images/20-inbox-approvals.png)

## Mails

**Mails** is the browsable record of everything Inbox has processed. Pick one view at a time from the sidebar:

| View | Shows |
|------|-------|
| **Inbox** | Mail still in your working set. |
| **Sent** | Mail you sent from Inbox. |
| **Archived** | Mail you archived — kept for history, and restorable. |
| **All** | Everything, including items that finished with no action. |
| **Categories ▸ …** | Every mail carrying that category, across all four statuses. |

The page has three panes: a searchable mail list, a conversation view, and the [AI chat rail](#the-inbox-chat-rail).

The **conversation view** shows the subject once, the number of messages, the categories applied to it, and a status badge. Older messages in the thread are collapsed and load when you click them.

- **Archive** / **Unarchive** sit in the conversation header, because they act on the whole conversation.
- **Reply**, **Reply all**, and **Forward** sit under the newest message. If Inbox has already drafted a reply for that mail, **Reply** takes you straight to that draft in **Needs approval** instead of opening a blank composer.
- In the reply composer, **AI generate** writes a draft in your learned writing style, which you can then edit before sending.

:::info
Email bodies are fetched live from your provider each time you open a message and are **not stored** by Insulin. Only the metadata (subject, sender, categories, and any AI draft) is retained.
:::

## The Inbox Chat Rail

Every Inbox page carries a chat rail down the right-hand side, headed **Chat with your inbox**. It is not the Chat app in a narrow window — it is a conversation about the mail you are looking at.

- **It is always there.** Every page — Needs approval, Mails, Rules, Account, Categories — mounts the same rail. Collapse it with the button in its header; a small reopen button then appears at the top-right of the page.
- **It resizes.** Drag the handle on its left edge. The rail can be anywhere between **15%** and **45%** of the window width; it starts at about 30%.
- **It has its own conversation.** The rail runs the built-in Insulin agent on a thread dedicated to Inbox, separate from the [Chat](/insulin/chat/) app — so your inbox conversation never mixes into your general chat history. Type `/clear` to start a fresh one.
- **It knows what you are looking at.** Every message you send carries the current page as context: which tab you are on, which category is selected, which mail is open, and the mails currently visible in the list. Ask *"what needs a reply here?"* and it answers about the screen in front of you, not about your mailbox in the abstract.
- **It can act.** Beyond reading, listing, searching, and counting your mail, the agent can **create an email draft** for you (it lands in **Needs approval** like any other draft) and **create a rule** from a plain-English description. It is also where a **Run in chat** CRM action executes.

![The chat rail expanded beside the Inbox — its "Chat with your inbox" header, the collapse control, and a conversation with the Insulin agent about the mail in view](images/20-inbox-approvals.png)

## Rules

Rules control what Inbox does for you — which messages get a drafted reply, which CRM events produce work, and what context the AI pulls in. Open **Settings → Rules**.

The left panel lists your rules in two groups — **Default** (rules Suger ships) and **Custom** (yours) — with a search box and a **New** button. Every row carries an enable switch and a delete button, so turning a rule off never requires opening it.

### Describing a rule

The rule editor is **natural-language first**. There are only two fields:

1. **Rule name** — optional. Leave it blank and Insulin generates one for you.
2. **Describe the rule in natural language** — a plain-English box where you say what should happen, for example *"When a new email arrives that needs a reply, draft a reply for me to review before it is sent."*

Then click **Save**. That single click both turns your description into a structured rule and saves it — there is no separate generate step. Saving runs an AI model and takes a few seconds; an inline notice asks you not to refresh while it works.

:::info
If the AI model is unavailable, **Save fails and nothing is written**. This is deliberate: saving anyway would have replaced the rule's filter with one that matches every email. Try again in a moment.
:::

Editing a rule works the same way — change the description and click **Save** again. Changing only the name just renames it; the rule's behavior is left alone.

### Starter hints on a new rule

A brand-new, still-empty rule shows a hint block under the buttons, which disappears as soon as you type anything.

The top strip spells out the shape of every rule — **Trigger → Integrations → Output**:

| Step | What it means |
|------|---------------|
| **Trigger** | What makes the rule fire — e.g. Gmail, Salesforce, HubSpot, Dynamics. |
| **Integrations** | The AI can search all of your user-level integrations as context. |
| **Output** | What the rule produces — e.g. an email draft, a CRM update, a Slack DM. |

Below it, four **Try an example** chips fill the description box with a ready-made prompt you can edit before saving:

- **Salesforce stage → email + Slack**
- **New email → drafted reply**
- **HubSpot deal won → welcome email**
- **Dynamics stage → CRM action**

### Details

**Details** opens a read-only view of the structured rule your description produced: the **Trigger**, the **Filter** (or, for a CRM rule, the stage / amount / owner it matches), the **Context sources** it may search, the **Generation** inclusions and exclusions, and the **Actions** it routes to. You can open the Trigger and Context-source pickers to browse what is supported, but nothing there is editable — to change a rule, change its description and save again.

**Details** is unavailable on a brand-new draft (nothing has been generated yet) and becomes available once the rule is saved.

### Actions

Every rule routes its outcome to one or more action cards:

| Action | What it does |
|--------|--------------|
| **Email reply** | Replies to the sender of the triggering email. Choose one of two modes: **Draft for review → Approvals queue** (the safe default) or **Send automatically**. |
| **Slack** | DMs *you* on Slack when the rule fires, with a link back to the queue. Requires your own [Slack](/integrations/slack/) connection — the card tells you which Slack user will be messaged. |
| **CRM action** | Only on a CRM-triggered rule. Carries a written instruction, which is required, and lands in **Needs approval** behind a **Run in chat** button. It combines freely with the other two. |

The two **Email reply** modes are mutually exclusive — a rule drafts for review or sends automatically, never both.

:::warning
**Send automatically skips human review entirely.** A rule in this mode sends replies straight to recipients, and the card marks it *no human review*. You can optionally tick **Always send the same text** and provide a fixed reply that is sent verbatim on every matching email; leave it unticked and the AI writes a fresh reply per email in your writing style — still with no review. Use this mode deliberately.
:::

### The default rule

Inbox ships one rule under **Default**, to show what the system can do. When an email arrives, it checks whether the mail needs a reply and generates a draft for you to review in **Needs approval**. It cannot be edited — use the switch on its list row to turn it on or off, or delete it outright. Deleting it leaves your own rules untouched.

![Inbox Settings → Rules with a new rule open — the Default and Custom rule groups on the left with their enable switches, and on the right the rule name field, the "Describe the rule in natural language" box, the Discard / Details / Save row, and the starter-hint block showing the Trigger → Integrations → Output strip above four example chips](images/24-inbox-rules.png)

## Triggers: reacting to a CRM event

A rule does not have to start from an email. Under **Settings → Account → Triggers**, Inbox lists the CRM sources it can react to:

| Trigger | Fires when |
|---------|------------|
| **Salesforce** | An opportunity moves to a stage you describe. |
| **HubSpot** | A deal moves to a stage you describe. |
| **Microsoft Dynamics 365** | An opportunity moves to a stage you describe. |

All three are live. Each row is driven by *your own* user-level connection to that CRM, so:

1. Connect the CRM first. A row you have not connected shows **Connect**, which takes you to **Settings → Integrations** — see [Salesforce](/integrations/salesforce/), [HubSpot](/integrations/hubspot/), or [Microsoft Dynamics 365](/integrations/microsoft-dynamics365/).
2. Click **Enable** on the row. The row then shows an **Enabled** badge.
3. Write a rule that describes the CRM event you care about, in **Settings → Rules**.

Turning a trigger off with **Disable** keeps your rules: they stay saved and go dormant until you enable the trigger again.

## Categories

Open **Settings → Categories** to manage the categories Inbox puts on your email. There are no built-in categories — every one of them is yours.

Create one with **Add category**, then give it:

- a **Name** (up to 40 characters), and
- a **Description** (up to 280 characters).

**The description is the prompt the classifier reads** to decide whether to apply the category to an incoming email, so describe the messages it should match specifically — vague descriptions produce false positives. Both fields are required to save.

Each category becomes an entry under **Mails ▸ Categories**, so you can browse everything it has been applied to.

:::warning
**Deleting a category also strips it from every email that carries it** and stops the AI from applying it to new email. This cannot be undone.
:::

## AI Model

Inbox needs one working AI model to classify mail and draft replies. The **AI model** section of **Settings → Account** lists the model providers Inbox can use — Claude Code, Codex, Anthropic, OpenAI, and Gemini — and shows **Connected** or a **Connect** link for each. A credential whose sign-in has lapsed shows **Reconnect** instead.

:::warning
With no working model connected, a banner reads *"No working AI model — Inbox can't classify mail or draft replies until you connect one below."* Until you fix it, mail is never categorized and no draft is ever produced — Inbox simply looks quiet. Connect a coding-agent subscription (Claude Code, Codex) or bring your own API key.
:::

Connecting and disconnecting model credentials happens on the Integrations page; this card only reports the state and links you there.

## Writing Style

Insulin learns your writing style from your recent sent mail so AI drafts sound like you. It is shown under **Settings → Account → Writing style**, is used **only** for draft generation, and never leaves your tenant.

The card reports one of four states:

| State | What it means |
|-------|---------------|
| **Built from N recent emails** | Ready. A summary below shows your greeting, sign-off, register, and common openers and closers. |
| **Building…** | A build is in progress. It can take a few minutes. |
| **Build failed** | The build failed, with the reason. |
| **No voice profile yet** | Nothing has been built. |

A build starts automatically when you enable Inbox, and **Re-generate** rebuilds it from your latest sent mail at any time — including out of a stuck or failed state.

## Knowledge Bases

Attach knowledge bases to Inbox and it will consult them while drafting replies — useful for product documentation, canned answers, or a support playbook, so drafts draw on your actual material instead of improvising.

Open **Settings → Account** and find the **Knowledge bases** section. Tick a knowledge base to use it when drafting; untick it to stop. The list shows every knowledge base you can reach, including organization ones shared with you. Leave everything unticked and drafts are written exactly as before, with no knowledge base context.

:::info
Knowledge bases attach to your Inbox **account-wide, not per rule.** One selection applies to every draft Inbox writes for you.
:::

Inbox only ever **reads** a knowledge base — there is no Read/Edit choice here, and Inbox never adds to or changes one. (The built-in Insulin assistant has its own separate selection, which *can* be granted edit access — see [Knowledge Bases](/insulin/knowledge-base/#choosing-which-knowledge-bases-insulin-uses).)

The attached knowledge bases are searched for both reply modes — drafts that land in **Needs approval** and rules that send automatically. The one exception is a rule with pinned canned text: that text is sent verbatim without involving the model, so no knowledge base is consulted.

| Limit | Value |
|-------|-------|
| Knowledge bases you can attach | Up to 100 |
| Knowledge bases searched per draft | The first 3 you still have access to, in the order you saved them |
| Passages taken from each knowledge base | Up to 4 |

:::info
Knowledge base lookup is best-effort. If a search fails or runs long, Inbox still writes the draft — just without the extra context. Access is re-checked every time, so a knowledge base you lose access to is silently skipped.
:::

![Inbox Settings → Account scrolled to Knowledge bases — the Writing style card above a checkbox per knowledge base, showing that knowledge bases attach to the account rather than to an individual rule](images/23-inbox-knowledge-bases.png)

## Use Cases

- **Sort your mail your way** — Write categories that describe the mail you actually get, and browse each one under **Mails ▸ Categories**.
- **Faster replies in your voice** — Approve AI-drafted replies that already sound like you instead of writing from scratch.
- **Follow up when a deal moves** — Enable the Salesforce, HubSpot, or Dynamics 365 trigger and write a rule that drafts the follow-up email the moment an opportunity changes stage.
- **Keep the CRM current** — Add a **CRM action** to that rule, then click **Run in chat** to watch the agent apply it.
- **Hands-off acknowledgements** — Author a rule that sends automatically with a canned reply, to acknowledge a specific class of email without review.
- **Ask about your inbox** — Use the chat rail to triage out loud: *"which of these need a reply today?"*
