← All automations
AutomationProduction automation / live client system

Inbox-to-CRM Reply Matching System

A production n8n system that watches two live mailboxes, matches inbound and outbound email back to the right CRM record through a fallback chain and surfaces unresolved cases for review, keeps pipeline status current automatically, and sends a daily digest only on days something is actually overdue.

n8nCRM syncEmail matchingApproval-gated sendingFollow-up digest
Trigger

New inbound or outbound email

Each mailbox is watched independently and idempotently over IMAP.

Flow

Match, then update CRM status

A shared sub-workflow matches each email against tracked records and updates the matched record's status.

Safety

Digest only when overdue

The daily summary email sends nothing on a day when no follow-up is actually overdue.

Problem

With outreach across several mailboxes, replies get missed and CRM status goes stale within days.

Keeps CRM pipeline status accurate without manual updates, prevents duplicate or missed outreach sends, and turns 'who needs a follow-up today' into a single daily email instead of a manual inbox sweep.

What the system does
  • Two independent mailbox monitors watch inbox and sent folders over IMAP, each idempotent so the same message is never processed twice
  • A shared normalize-and-match sub-workflow used by both monitors: match by thread key first, then contact email, then subject line, before touching any record
  • Matched emails update pipeline status, last-activity timestamp, and reply status directly on the CRM record; the matcher itself never sends anything
  • A separate approval-gated dispatcher only sends messages a human has explicitly approved, one at a time with spacing between sends and a per-message claim guard so nothing goes out twice
  • A weekday morning digest emails one combined summary of the overdue, unreplied follow-ups, and sends nothing on a day when nothing is overdue
Workflow

From input to a reviewable next action.

  1. 01

    Monitor two mailboxes

    Independent IMAP watchers track inbox and sent folders per mailbox, each idempotent against reprocessing.

  2. 02

    Normalize the message

    Every new email is converted into a consistent shape before matching.

  3. 03

    Match to a CRM record

    A shared sub-workflow matches by thread key, then contact email, then subject line.

  4. 04

    Update pipeline status

    The matched record's status, last-activity timestamp, and reply status are updated automatically.

  5. 05

    Digest overdue follow-ups

    A weekday morning email summarizes the overdue, unreplied follow-ups in one message, or sends nothing if none are overdue.

AUTOMATION CASE STUDY

Keeping CRM status honest without a manual inbox sweep

The problem wasn't sending outreach, it was everything after: replies landing in one of two mailboxes, threads getting renamed or stripped of headers by mail clients, and the CRM tracker slowly drifting out of sync with what had actually happened.

The system keeps reading and sending strictly separate. Two mailbox monitors only read and normalize; a shared sub-workflow matches each message back to its CRM record through a fallback chain (thread key, then contact email, then subject) so a stripped header doesn't mean a lost match.

Sending is handled by a completely different, approval-gated workflow. It only sends what a human explicitly approved, one message at a time with spacing between sends and a claim guard per message, so a retried run can never send the same message twice.

The last piece is a single weekday-morning digest that tells the person exactly who is overdue for a follow-up, in one email, and says nothing at all on a day when nothing is overdue.

Interface and workflow evidence

Visible proof, without private operational data.

Select a step to see what happens there.

Step 01

Independent IMAP watchers track inbox and sent folders per mailbox, each idempotent against reprocessing.

Step

Visual documentation is being prepared. The case study remains complete and public-safe.

Automation architecture

Mailbox monitoring, matching chain, approval-gated sends, and daily digest

Reading, matching, sending, and digesting are kept as four separate responsibilities so a bug in one does not silently cause an action in another.

  1. 1Watch each mailbox's inbox and sent folder independently over IMAP, tracking the last processed message per mailbox.
  2. 2Normalize every new email into a consistent shape regardless of source mailbox.
  3. 3Match the normalized email to a tracked CRM record using a fallback chain: thread key, then contact email, then subject line.
  4. 4Update the matched record's pipeline status, last-activity timestamp, and reply status; never send a message from this path.
  5. 5Run a separate, approval-gated dispatcher that only sends messages a human marked approved, one at a time with spacing and a per-message claim guard.
  6. 6Run a weekday morning digest that emails a single combined summary of overdue, unreplied follow-ups, sending nothing when none are overdue.
WORKFLOW REPORT

How reading, matching, sending, and digesting stay separated

A public-safe view of mailbox monitoring, the matching fallback chain, the approval-gated send path, and the digest logic.

Mailbox monitoring

Each mailbox is watched independently over IMAP with its own idempotent tracking, so the same message is never normalized or matched twice. Mailbox addresses and message content are excluded from the public case study.

Matching fallback chain

Matching tries the thread key first, then falls back to contact email, then subject line, before giving up. This keeps matches working even when a mail client strips or rewrites thread headers.

Status sync

A successful match updates the CRM record's pipeline status, last-activity timestamp, and reply status directly. The matching path never sends a message itself.

Approval-gated sending

A separate dispatcher only sends messages a human already approved in the CRM, one at a time with spacing between sends and a per-message claim guard so a retried run cannot double-send.

Overdue digest

A weekday morning job emails one combined summary of overdue, unreplied follow-ups. If nothing is overdue, no email is sent that day.

AUTOMATION PROOF

What this workflow demonstrates

Reading and sending never mix

Mailbox monitors only read and match; a distinct approval-gated workflow is the only path that can ever send a message.

Matching survives messy threads

A three-step fallback chain keeps replies matched to the right CRM record even when thread headers are stripped.

The digest respects the reader's attention

It sends one combined email only when something is actually overdue, not a daily status report regardless of relevance.

AUTOMATION

Is your CRM status only as good as your last manual update?

Share how replies get tracked today and I will map where matching and status sync can run automatically, with sending kept strictly human-approved.