Trigger Manage Tool
trigger_manageManage event-driven trigger rules that evaluate conditions on signals and execute actions such as starting experiments or sending outbound messages. Supports list, create, update, delete, and dry-run test operations.
Instructions
Event-driven trigger rules — when-this-then-that automations that fire on signals or domain events. Rules evaluate conditions (expression-based) against the event payload and execute actions (start_experiment, send_outbound, etc.). test is a dry-run that returns whether the rule would have matched without executing actions.
Actions:
list (read) — optional: event filter, status filter.
get (read) — trigger_id.
create (write) — name, event (e.g. "signal.ingested"), conditions (array of expressions), actions (array of action specs).
update (write) — trigger_id + any creatable field.
delete (DESTRUCTIVE) — trigger_id. Future events stop matching this rule.
test (read — costs no credits) — trigger_id, sample payload. Returns matched (bool), action_preview (what would have run).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list, create, update, delete, test | |
| deadline_ms | No | Optional: max wall-clock time (ms) the tool may spend. If exceeded during the call, returns a DEADLINE_EXCEEDED error. Minimum 100 ms. Leave unset for no deadline. | |
| status | No | Filter by status: active | paused | |
| limit | No | Max results (default 20, max 100) | |
| name | Yes | Descriptive name for the rule | |
| source_type | No | Signal source type to match (* = any). E.g. sentry, imap, telegram, rss | * |
| project_id | No | UUID of the project to trigger | |
| conditions | No | Conditions to match on signal payload. Keys are dot-notation field paths, values are {operator: value} objects. Operators: eq, neq, gte, lte, contains, not_contains, exists | |
| input_mapping | No | Map signal fields to project input_data. Keys are target fields, values are dot-notation source paths | |
| cooldown_seconds | No | Seconds between triggers (0 = no cooldown) | |
| max_concurrent | No | Max active runs before skipping trigger (-1 = unlimited) | |
| rule_id | Yes | UUID of the trigger rule | |
| payload | No | Signal payload to test against. Use dot-notation to nest: {"metadata": {"severity": "error"}} | |
| execute | No | If true, actually trigger the project run (default: false — dry run only) |