Skip to main content

Email Triage — Chief of Staff Inbox Routine

What this is

A daily 6:50am routine where the Chief of Staff agent scans John's two business inboxes, acts directly on everything agent-actionable, and surfaces only what needs human judgment. Results feed the Morning Brief's "Actions Taken For You" and "Actions For You" sections.

The governing rule

"If the agent can do it, the agent does it."

John explicitly set this. Escalation is the exception, not the default. When in doubt, agent acts conservatively and notes "Agent was unsure — your call" in the brief.

Inboxes scanned

  1. john@churchwiseai.com — primary business
  2. churchwiseai@gmail.com — secondary (vendor receipts, Google Search Console, misc business)

Never scan: pastorjohnmoelker@gmail.com (personal — off-limits unless explicitly requested).

Setup (one-time)

  • Verify the Gmail MCP session is authenticated against both business accounts. If only one is authed, either add delegation/OAuth for the second OR configure a Gmail forwarding rule (churchwiseai@gmail.comjohn@churchwiseai.com) with headers preserved so the agent can distinguish origin.
  • Create the label taxonomy in each inbox (agent does this on first run if missing):
    • receipts/<YYYY-MM> — one per month
    • newsletter — marketing opt-in mail
    • gsc-reviewed — Google Search Console mail the agent has triaged
    • system-dup — internal-system mail duplicating WatchTower
    • needs-founder — escalation queue

Classification rubric

The agent walks every unread thread and classifies using these rules in order (first match wins):

1. Vendor receipt → FILE + MONTHLY ROLL-UP

Senders: vercel, stripe, anthropic, supabase, openai, livekit, cartesia, telnyx, mailerlite, google cloud, github, resend, namecheap, cloudflare, AWS Subject patterns: invoice, receipt, payment received, subscription renewed, your bill

Actions:

  • Apply label receipts/<YYYY-MM>
  • Save any PDF attachment to Drive ChurchWiseAI/Receipts/<YYYY-MM>/<vendor>-<date>.pdf
  • Extract amount + line items into running monthly total
  • Archive thread
  • No escalation.

2. Google Search Console alert → INVESTIGATE + MAYBE-PR

Sender: search-console-noreply@google.com Subject patterns: coverage issue, not indexed, mobile usability, page indexing, manual action

Actions:

  • Fetch the referenced URL(s) via curl
  • Diagnose: is it a stale sitemap entry? missing meta tag? broken redirect? 500 error?
  • If fixable by a small change (sitemap regen, meta fix, redirect add): draft a PR on a fix/gsc-<topic> branch and label the email gsc-reviewed
  • If ambiguous or requires product decision: surface in Actions For You with agent's diagnosis attached
  • Archive once resolved

3. Newsletter / marketing → LABEL + ARCHIVE

Senders: any with noreply@, newsletter@, marketing@, known newsletter services (substack, beehiiv, mailchimp-sender patterns) Subject patterns: no specific patterns — inferred from opt-in mailing-list headers

Actions:

  • Apply newsletter label
  • Archive
  • If John hasn't opted in (per List-Unsubscribe header + no prior interaction), draft unsubscribe
  • No escalation.

4. System duplicates → LABEL + ARCHIVE + FLAG SOURCE

Subject patterns: Stripe webhook notification emails, Supabase quota alerts, Vercel deploy emails (when CI already posts to founder dashboard)

Actions:

  • Apply system-dup label
  • Archive
  • Add a line to the weekly retrospective: "consider suppressing email since it duplicates WatchTower"
  • No escalation.

5. Real customer → PRE-DRAFT + ESCALATE

Signals: sender is in premium_churches.admin_email; OR domain matches known customer; OR thread explicitly references a product feature

Actions:

  • Research sender (query premium_churches for tier, last login, support history)
  • Pre-draft a reply in Gmail Drafts (founder signs-off and sends)
  • Surface in Actions For You with link to thread + draft

6. Prospect / partnership / investor → RESEARCH + ESCALATE

Signals: referrer pattern (partnership@, investor@, named investor domain), new LinkedIn connection request via email, demo requests

Actions:

  • Brief pre-research on sender (LinkedIn, company, recent news)
  • Surface in Actions For You with context block attached
  • No pre-draft unless clearly routine

7. Support request → DRAFT-OR-ESCALATE

Signals: explicit support language, bug report, "how do I", from unknown sender

Actions:

  • If simple and non-pastoral (billing question, feature question with clear answer): draft reply referencing product_knowledge
  • If pastoral, ambiguous, or requires account action: surface with summary, no draft

8. Ambiguous → ESCALATE

Anything that doesn't match above. Surface in Actions For You as "Agent was unsure — your call."

Output to Morning Brief

The triage routine produces two summary blocks:

Actions Taken For You:

• 14 vendor receipts filed ($X.XX total this month so far)
• 6 newsletters archived (1 auto-unsubscribed)
• 3 GSC alerts investigated (1 PR drafted, 2 no-action-needed)
• 2 system-duplicate emails archived

Actions For You:

1. Grace Community pastor (3 replies queued) — 10 min [thread]
2. New partnership request — ProductHunt hire — 5 min [thread] [pre-research]
3. Agent was unsure on 1 thread — your call [thread]

Both blocks are clickable into the respective threads / drafts / PRs.

Never does

  • Actually send email (agent composes drafts; founder sends)
  • Delete mail permanently (archive only — reversible)
  • Mark things spam without founder confirmation
  • Scan personal inbox (pastorjohnmoelker@gmail.com)
  • Auto-accept meeting invites not already on the calendar

Failure handling

If Gmail MCP returns an error (auth expired, rate limit, transient), the brief's email-triage section shows ⚠ triage skipped: <reason>. Mail waits until the next successful run. The agent never silently drops mail — only delays triage.

Phase 2 extensions

  • Customer health signal from support thread cadence (e.g., 3 tickets from same customer in a week = churn risk flag)
  • Auto-categorize into Gmail categories beyond inbox
  • Draft responses learn from John's sent-mail corrections over time