Cross-app automations.
One rule, every brand.
One engine that watches every workspace event, runs ordered action chains, and respects your per-app boundaries. Author once, scope to the apps you mean, dry-run before you ship.
Engine live in production. Six events. Four action types. Per-app scoping.
Six events, every workspace.
The engine subscribes to a fixed catalog of platform events. Stable, typed, versioned — no webhook bingo, no string-sniffing.
session.opened A new conversation lands on any channel for any app.
session.closed A conversation is resolved, escalated, or auto-closed.
agent.published A new draft of an app’s AI agent goes live.
kb.updated A knowledge-base document is added, edited, or deleted.
member.joined A workspace member or app-scoped operator joins.
budget.alert An LLM budget hits warn / pause / hard-cap thresholds.
Order matters. So does scope.
A rule fires an ordered list of actions. Each action runs in sequence, with the trigger payload + every previous step’s output available as a typed variable.
- 1
assign_toAssign to operator
Round-robin, load-balanced, or pinned to a named member of the right app.
- 2
tag_sessionTag the session
Apply structured tags. Power downstream filters, reports, and other rules.
- 3
send_emailSend email
Templated email via the workspace email driver. Variables interpolated from the trigger payload.
- 4
escalate_to_humanEscalate to human
Hand off to a named team. Audit log captures actor, reason, and original AI context.
Actions failing mid-chain are retried with exponential backoff. Final state is logged to the run history.
A rule that runs in Cards but never in Loans.
Every rule has an explicit app filter. Tick the apps you want, leave the rest alone. The engine skips your rule entirely on the apps you didn’t pick — no silent leaks across brands.
- Allow-list, not deny-list. Empty scope = no apps, not all apps. New apps don’t auto-inherit existing rules.
- App permissions enforced. A Cards manager can only target Cards. The UI hides apps they can’t edit.
- Audit on every run. Run history logs the rule, the matched event, the apps it fired against, and every action result.
workspace.omazy.cx/acme-bank/automations/r_3a4f
ActiveRule
Auto-tag & escalate fraud-flagged Cards sessions
Trigger
session.opened Apps
Will only fire on Cards sessions. Loans + Insurance ignored entirely.
Actions
- 1.
tag_sessiontags = [“fraud-suspect”] - 2.
send_emailto = fraud-ops@ - 3.
escalate_to_humanteam = fraud
Dry-run before you ship.
Every rule has a Run now button that fires the chain against a sample event with all side-effects gated to dry-run mode. Operators see exactly what would happen — emails composed but not sent, tags previewed but not written.
$ omazy automation run r_3a4f --dry-run
▸ Loaded rule “Auto-tag & escalate fraud-flagged Cards”
▸ Sample event: session.opened · app=cards · channel=whatsapp
[1/3] tag_session would set tags = [“fraud-suspect”]
[2/3] send_email would send to fraud-ops@acme-bank.com (template: fraud-alert-v2)
[3/3] escalate_to_human would route to team=fraud · pin to manager Sara K.
✓ Dry-run complete · 0 errors · 0 side-effects · elapsed 412ms
Re-run with --commit to apply.
Built for multi-brand operations.
One author, many brands
Build a rule once, scope it to the apps that need it. Cards reuses Insurance’s SLA pattern without inheriting Insurance’s data.
Replay any failure
Run history is queryable. Re-run any failed automation against its original trigger payload after fixing the underlying bug.
No leak by default
Per-app scoping is required, not optional. Empty scope = the rule never fires — there’s no “default to all apps” trapdoor.
Author one rule. Run it across every brand.
The automations engine is live. Free during early access — bring your apps and start firing.
✓ Engine live in production✓ Per-app scoped✓ Dry-run included