Triggers fire a prompt or propose an action when a specific event occurs. They are the reactive counterpart to schedules — instead of running on a timer, they respond to changes as they happen.
Supported events
| Event | Fires when |
|---|
blocker.added | A new blocker memory is created |
commitment.overdue | A commitment passes its due date |
commitment.stale | A commitment has no activity for 7+ days |
integration.sync_complete | An integration finishes syncing |
memory.created | Any new memory is saved |
Creating a trigger
Ask your AI client to create one using natural language:
“3ngram: Create a trigger called overdue-alert that fires when a commitment becomes overdue”
“3ngram: Create a trigger called sync-digest that runs my weekly-summary prompt after each integration sync”
Parameters
| Parameter | Required | Description |
|---|
name | Yes | Lowercase, alphanumeric/hyphens/underscores, 1-63 chars |
event_type | Yes | One of the supported events above |
filter_json | No | JSON object for event filtering (see below) |
prompt_id | No | UUID of a custom prompt to evaluate when triggered |
context_template | No | Template text for context assembly |
Filtering events
Use filter_json to narrow which events match a trigger. All filter keys must match the event data for the trigger to fire.
Only commitments:
{ "memory_type": "commitment" }
Only a specific project:
Combined — work commitments only:
{ "memory_type": "commitment", "scope": "work" }
Filters are evaluated with AND logic. Every key in the filter must match the corresponding field on the event payload.
Triggers and actions
When a trigger fires, it can propose an action such as posting a GitHub comment, closing a Linear issue, or sending a notification. Proposed actions go through an approve/reject pipeline so nothing runs without your sign-off.
See Agent Actions for the full approval workflow.
Managing triggers
List triggers
“3ngram: Show my triggers”
You can filter the list by event type:
“3ngram: Show my triggers for commitment.overdue events”
Update a trigger
You can change enabled, prompt_id, and context_template on an existing trigger.
“3ngram: Update my overdue-alert trigger to use the daily-summary prompt”
“3ngram: Disable my overdue-alert trigger”
Event type and filter are immutable after creation. Delete and recreate the trigger to change them.
Delete a trigger
“3ngram: Delete the overdue-alert trigger”
Triggers require a paid subscription. Event type and filter cannot be changed after creation — delete and recreate to modify them.