BuildLeanSaaS Pro launch deal: $99 lifetime until Dec 31.231d 11h 22m left.Unlock agent courses + skills
Build Lean SaaS cube logoBuild Lean SaaS
Back to Always-On Agents
Course lesson 7implementationguideintermediate

Automate Client Email Triage with Hermes

Turn the manual Gmail workflow into an always-on triage loop: poll known-client email, dedupe, route to Discord, suggest replies and actions, and require approval for side effects.

Austin Witherow
6 min read

Now that Hermes can read and draft client emails manually, automate the part that should be boring: noticing known-client messages and putting a clean triage card where you already manage work.

Do not start by auto-sending. Start with always-on triage.

Course path

Follow the Always-On Agents course path

Follow the complete public course path, install the skills as you go, and use DevelopJoy when you want the workflow wired into your actual VPS.

Public walkalong guide
Installable skills
DevelopJoy setup path

Prerequisites

Finish these first:

  1. Connect Hermes to Google Workspace and Google Cloud
  2. Read and Draft Client Emails with Hermes
  3. Connect Hermes to Discord

If you use Linear for execution, also connect the Linear workflow you already use for triage.

What we are building

The automation loop:

The loop is allowed to read and route. It is not allowed to send, schedule, share, delete, or modify without approval.

Start with a client map

Create a small config file before writing code:

Keep this explicit. A known-client watcher should not scan your entire mailbox and guess where private messages belong.

Poll Gmail cheaply

Use Gmail search queries that narrow the surface:

A production script should build this query from the client map. Store processed Gmail message IDs in a local state file:

Dedupe is not optional. Without it, every cron run can repost the same client thread.

Read the thread only when needed

The search result snippet is enough for routing, but not enough for a reply. When a new message matches a known client, read the message:

Then create a compact triage card.

Discord triage card format

Post something like this to the project lane:

The card should be useful even if the user never opens Gmail.

Approval commands

Keep approval commands plain English at first:

Hermes can interpret those commands inside the Discord thread. The action should still preview side effects:

  • Gmail reply: show recipient, subject, and body.
  • Calendar invite: show title, attendees, start/end, timezone, and description.
  • Linear issue: show team, title, labels, and body.
  • Drive share: show file, recipient, role, and whether notification is sent.

Then require final approval for anything irreversible.

Cron schedule

A good first schedule is every 10 or 15 minutes during business hours. For a Hermes cron job, the prompt should be self-contained and strict:

If you use a script-first approach, make the script collect deterministic Gmail data and let Hermes summarize and route the compact JSON. That keeps cron cheap and easier to debug.

What to automate later

Only promote narrow repeated cases to autopilot. Good candidates:

  • Labeling or archiving a known newsletter-like client notification.
  • Posting a read-only summary to a project lane.
  • Creating a draft reply, not sending it.
  • Creating a draft Linear issue in triage, not assigning urgent work.

Bad candidates:

  • Sending apologies or pricing changes automatically.
  • Scheduling meetings without checking the actual calendar and timezone.
  • Sharing Drive files based on a guessed recipient.
  • Replying to unknown senders.
  • Deleting or archiving messages before the workflow has a review history.

Add Workspace crossover

Once the email triage loop works, the natural follow-ons are:

  • Drive: find attachments, briefs, logos, PDFs, and shared folders related to the client.
  • Contacts: maintain a stakeholder map so Hermes knows who belongs to which project.
  • Docs: turn email threads into briefs, agendas, SOPs, and recap docs.
  • Sheets: keep a lightweight client status table with last contact, blocker, next action, owner, and due date.

Those are expansions of the same pattern: read broadly, route clearly, and gate side effects.

Definition of done

You are done when:

  • A client sender map exists.
  • Gmail polling only checks known-client senders.
  • Processed message IDs are stored in a persistent state file.
  • New messages produce triage cards in the correct Discord lanes.
  • Suggested replies/actions are visible but not executed automatically.
  • Email sends, calendar invites, Drive shares/deletes, Docs/Sheets edits, and Linear mutations require approval.

The business model layer

This is why Google Workspace is a good course wedge. It is not just email hosting. It becomes the client-ops substrate for an always-on business operator.

If someone is starting from scratch, they can set up Workspace here:

Start Google Workspace with the BuildLeanSaaS referral link

Disclosure: this is a referral link, so BuildLeanSaaS may receive credit if someone signs up through it. Then they can follow the public course to wire Hermes themselves, or use DevelopJoy to install the Workspace, Discord, Linear, and approval loops with them.

Supported implementation

Want this installed for your client ops stack?

DevelopJoy can wire the Gmail watcher, Discord routing, Linear handoff, Calendar approval loop, and safety rules into your real workflow.

Build it with us

Pair-programming lab

$100/mo
Monthly pairing session
Agent workspace setup help
PR review and workflow debugging
Start pair programming

Have us build it

Done-for-you focus sprint

Starts at $500/mo
Four monthly development hours
One focused workflow lane
Two alignment meetings + revision pass
Explore focus sprints
Prefer DIY? Install manually.

Next action

Keep this inside the course path

Continue the lesson sequence, install the skill when one exists, or use DevelopJoy when you want the workflow wired into your real workspace.