Docs/Platform

Signals

Hermes doesn't just run the campaigns you ask for — it investigates your data on its own and surfaces the campaigns you didn't know to run.

Every dashboard answers the questions you thought to ask. Signals are the answers to the ones you didn't: a strategist agent periodically digs through your connected data looking for non-obvious cohorts and behavior patterns — the kind of finding that changes what you'd do this week.

Example signal
Headline    Power users who invited teammates that never activated
Who         Users with 5+ invites sent where zero invitees completed setup
Audience    ~340 accounts
Insight     You'd assume inviters are your healthiest accounts — but
            accounts whose invites all stalled churn 3x more in 60 days.
Why hidden  Invite counts look great in aggregate; the failure only
            appears when you join invites to invitee activity.
So what     These are expansion accounts about to become churn. A
            "help your team get started" nudge lands now or never.

How discovery works

  • On a schedule. Hermes runs a discovery pass over each organization every few days, automatically.
  • On demand. Kick a pass anytime — from the dashboard, hermes signals discover in the CLI, the discover_signals MCP tool, or POST /signals/run in the API. On-demand runs are limited to one per 48 hours per organization, because discovery does real investigative work over your data.
  • With memory. The strategist sees what it already found, so repeat runs go deeper instead of repeating themselves. If a pattern is spotted again, the existing signal's observation count goes up rather than creating a duplicate.

Each pass dispatches parallel investigations against your data source and returns at most five signals — scored by surprise (how non-obvious the finding is) and confidence (how solid the evidence is). Low-value findings are dropped, not dumped on you.

Anatomy of a signal

FieldWhat it tells you
HeadlineThe one-sentence aha.
WhoThe audience, defined by behavior — not a static segment.
Audience sizeRough count, so you know if it's a whale or a rounding error.
InsightThe finding, framed as "you'd assume X, but the data shows Y."
Why hiddenWhy your dashboard wouldn't have caught it.
So whatThe stakes — what this means for revenue or retention.
Surprise / Confidence0–100 scores so you can triage fast.

Triage

Signals sit in a queue with three states: new, reviewed, and dismissed. Nothing happens without you — signals never auto-create campaigns.

The natural next step for a good signal is a trigger: open the agent (or the trigger builder) and say "turn this signal into a campaign." The signal's audience definition becomes the detection query, and its insight becomes the heart of the email prompt.

Signals are exposed everywhere agents live: hermes signals list in the CLI, list_signals / update_signal over MCP, and GET /signals in the API — so your own agents can watch the queue and act on it.