Skip to content
Integrations

Email Ingestion

How Armbrain ingests client emails into the correct client minds -- turning email threads into searchable memories without manual effort, using whatever email MCP you already have connected.


Why Ingest Emails?

Meetings are not the only place client knowledge lives. Decisions, approvals, scope changes, and stakeholder updates often happen over email. Without email ingestion, you have to manually mention these in conversation or paste email content. With it, client emails are automatically extracted into memories that surface in meeting briefs, searches, and campaign history.

This is especially valuable when:


How It Works

Armbrain uses a source-agnostic approach. It does not connect to Gmail or Outlook directly. Instead, Claude reads your emails through whatever email MCP you have connected, normalizes the content, and hands it to Armbrain for attribution and storage.

  1. Claude detects which email MCP(s) you have connected (Gmail, Outlook, etc.)
  2. Claude searches for emails since your last ingestion checkpoint
  3. Emails are matched to client minds based on contact domains and known stakeholder email addresses
  4. The extraction pipeline pulls memories from email content (decisions, commitments, facts, preferences)
  5. Memories appear in briefs and searches like any other source

No background daemon or OAuth setup is required. Emails are ingested when you open Claude.


Prerequisites

You need at least one email MCP connected in your Claude instance. Common options:

Armbrain does not need to know which one you have. Claude detects it automatically by checking for recognized email tools. If no email MCP is found, ingestion is silently skipped (no error, no prompt).


When Emails Get Ingested

Emails are ingested at three trigger points, all using the same processing pipeline:

Session Start (Automatic)

When you start a Claude session, a background check runs automatically:

  1. Detects your connected email MCP
  2. Reads the last_email_check timestamp from Armbrain
  3. Searches for new emails from known client contacts since that timestamp
  4. Ingests matching emails into the correct client minds
  5. Displays a summary: EMAIL: 4 email(s) ingested for Acme, XSCAPE

Before Meeting Prep (Automatic)

When you prep a meeting, Armbrain first checks for any new emails from the last 24 hours related to that client, so the brief always reflects your freshest inbox context.

Manual

Ask Claude directly:

"Check my email"
"Ingest emails for XSCAPE"
"Check my email from the last month"

You can override the lookback window and target a specific client.


First-Run Experience

On the first run (no previous last_email_check):

  1. Armbrain defaults to pulling the last 14 days of email -- no configuration needed
  2. Runs the ingestion silently
  3. Reports what it found: "Pulled in 14 days of email. Found 8 client emails for Acme, XSCAPE. Want me to go further back?"
  4. You can adjust ("go back 30 days") or accept the default

After the first run, subsequent checks only look at emails since the last checkpoint.


Checking Email Ingestion Status

"What's the status of my email ingestion?"

The status report includes:

FieldDescription
Last email checkWhen emails were last ingested
Memories this weekEmail-sourced memories stored in the last 7 days
Unattributed countEmails that matched multiple clients and need manual resolution
Source breakdownEmails ingested per provider (e.g., gmail: 42, outlook: 7)

How Emails Get Attributed to Clients

The ingestion pipeline matches emails to client minds using:

  1. Sender/recipient email addresses -- matched against email_contacts stored on each client mind
  2. Company domains -- matched against company_info.domain on client minds
  3. To/CC fields -- when the sender does not match, recipients are checked (covers clients emailing you)

When an email matches exactly one client, it is attributed automatically. When it matches zero clients, it is held in a pending-attribution review queue (not dropped) so nothing from a new or unrecognized contact is lost. When it matches multiple clients, it is logged for manual resolution.

Improving Attribution

The more stakeholder information you store, the better attribution works:

"Set stakeholders for Acme: Sarah Chen (sarah@acme.com, VP Marketing),
Tom Reynolds (tom@acme.com, CEO)"

Email addresses in stakeholder records become attribution signals. After adding contacts, new emails from those addresses will route to the correct client mind.

Armbrain also auto-learns contacts from stakeholder memories over time.


What Gets Extracted from Emails

The extraction pipeline processes email content the same way it processes meeting transcripts. It pulls out:

Memory TypeExample
decision"We've decided to postpone the rebrand until Q3"
commitment"I'll send the revised proposal by Friday"
preference"Sarah prefers bullet-point updates over narrative"
campaign_outcome"The March email blast had a 28% open rate"
stakeholder"New hire: Lisa Park joining as Content Lead"
fact"Acme's fiscal year starts in July"

These memories show up in search, meeting briefs, and campaign history just like anything you stored by hand or pulled from a transcript. They're tagged as email-sourced, so you can tell at a glance how a given piece of knowledge was captured.


What Gets Filtered Out

The ingestion pipeline automatically skips:

If a thread was previously ingested but has new replies, it is re-ingested with the updated content.


Data Flow and Privacy

Emails transit through Anthropic's infrastructure during orchestration:

  1. Claude reads from your connected email (Gmail, Outlook) -- email content passes through Anthropic's API
  2. Claude hands the cleaned-up emails to Armbrain for ingestion -- they pass through Anthropic's API
  3. Armbrain extracts and stores the memories in your private database, attributed to the right client

Armbrain never directly contacts email providers. All email access is mediated by Claude and your connected MCP. No email provider credentials are stored by Armbrain.


Troubleshooting

Emails are not showing up in memories

Check these in order:

  1. Is an email MCP connected? Armbrain needs at least one email MCP in your Claude instance. If none is detected, ingestion is silently skipped.
  2. Are contacts attributed? If your client's email addresses are not in stakeholder data, emails may be skipped as unmatched. Add stakeholder emails.
  3. Is the lookback window too narrow? First run defaults to 14 days. Ask Claude to "check my email from the last month" to widen the window.
  4. Run status check. Ask "what's my email ingestion status?" to see the last check time and counts.

Unattributed emails

When emails match multiple clients (or none), they are held rather than guessed. This protects client isolation. To resolve:


Relationship to Other Ingestion Methods

Email ingestion complements other ways knowledge enters Armbrain:

MethodTriggerBest For
Email ingestionAutomatic (session start, meeting prep)Ongoing email threads, async decisions
<a href="/guides/background-email-polling">Background email polling</a>Automatic (every few minutes, 24/7)Continuous coverage when Claude is closed
Auto-ingest transcriptsAutomatic (post-meeting)Meeting recordings via Granola
Paste in chatManualAd-hoc documents, one-off content
Folder ingestionManual (CLI)Bulk document import
/cmo-connectManual (skill)Pull from any MCP source

All methods feed the same extraction pipeline and produce the same memory types. The difference is how the content enters the system.

Want 24/7 email coverage? See Background Email Polling to connect your Gmail for automatic ingestion even when Claude is not open.
Engineers: for how the pipeline actually works under the hood (the two poll paths, attribution guards, dead-letter/poison queue, and security layers), see Email Ingestion - Engineering Architecture.