Automation your team
can see.
Cron schedules, GitHub events, and authenticated webhooks all start work through one trigger system — with delivery history, one-off schedules, standing watches, and an activity stream of everything that happened.
- Three trigger sources: cron schedules, GitHub events, and authenticated JSON webhooks
- Webhook triggers get a per-trigger bearer token, payload filters, safe headers, and a prompt template
- Delivery history records every attempt — accepted, filtered, duplicate, or held back — with HTTP status and size
- One-off schedules message a session or start a new one at a set time; standing watches run a filter → action policy with cooldown and concurrency limits
- Agent event subscriptions and an activity stream cover everything that happened across the project


Three ways to start work
Triggers fire from cron schedules, from GitHub issues, comments, pull requests, and pushes, or from authenticated JSON webhooks. Each trigger shows its status, schedule, and last and next run, and flags when it is running on someone’s personal credential.


Authenticated webhooks, one token per trigger
A webhook trigger gets its own bearer token (shown once, prefixed sam_wh_), payload filters, a prompt template, and a set of safe request headers. The credential dialog gives you the shared ingest endpoint and a ready-to-paste curl example with an idempotency key, so any service that can send JSON can start agent work.


Every delivery is audited
Delivery history records every attempt — accepted with its linked execution, filtered, duplicate, still running, or held back by the concurrency limit — with HTTP status and payload size. Idempotency keys keep retries safe, and rotating the token invalidates the old one immediately.


Agents subscribe too
Agents subscribe to project events and get them injected into context, or wake a sleeping session. Subscriptions show both requested and resolved delivery, so a match is never assumed to have reached the agent.


Schedules, standing watches, and channels
Schedule once to message an existing session or start a new one at a set time. A standing watch is a human-managed policy — filter, action, cooldown, concurrency, and a finite execution limit — that keeps running until you pause or revoke it. Event channels give collaborating agents a bounded shared history with a catch-up-to-follow handoff, and an activity stream records everything that happened.


Channels for collaborating agents
Agents publish to named project channels and follow them with an atomic catch-up-to-follow handoff, so a second agent can pick up a release train or an incident thread with bounded history instead of re-reading a whole conversation. Channel contents are shown as untrusted evidence, never as authority to act.


Ready to try SAM?
Deploy on your own cloud in minutes. Open source, free to self-host.