Runtime activation state. Set for post_deploy and row triggers.
create_time
timestamp
OUTPUT_ONLY
When the trigger was created
update_time
timestamp
OUTPUT_ONLY
When the trigger was last modified
delete_time
timestamp
OUTPUT_ONLY
When the trigger was soft-deleted (null if active)
Example
{"name":"triggers/daily-health-check","displayName":"Daily Health Check","description":"Runs a health check every morning at 9 AM Eastern","agent":"agents/health-checker","configuration":{"cron":{"schedule":"0 9 * * *","timezone":"America/New_York"}},"enabled":true,"createTime":"2026-02-06T01:42:31.481530Z","updateTime":"2026-02-06T01:42:31.481530Z"}
Trigger Configuration
Exactly one of the following fields must be set to determine the trigger type.
Trigger fires when the agent’s Slack handle is @mentioned
Cron Trigger Config
Field
Type
Required
Description
schedule
string
Yes
Standard 5-field cron expression (e.g. "0 9 * * *" for daily at 9 AM, "*/15 * * * *" for every 15 minutes)
timezone
string
No
IANA timezone for interpreting the schedule (e.g. "America/New_York"). Defaults to "UTC".
Manual Trigger Config
Empty object. Manual triggers have no automatic execution and can only be invoked via InvokeTrigger.
Post Deploy Trigger Config
Field
Type
Required
Description
repository
string
Yes
GitHub repository in "owner/repo" format
environment
string
Yes
Environment label to watch (e.g. "production", "staging")
sha
string
Yes
Commit SHA that must deploy before this trigger fires. Also fires for descendant commits. Immutable after creation.
delay
duration
Yes
How long to wait after the deployment before firing (e.g. "300s" for 5 minutes)
Row Trigger Config
Field
Type
Required
Description
table_name
string
Yes
Logical table name to watch (e.g. "opentelemetry/logs/api-server"). Does not include the organization namespace.
predicate
string
Yes
SQL boolean expression evaluated against each incoming row. Column references are validated against the table schema at creation time. Subqueries and aggregations are not permitted.
cooldown
duration
No
Minimum time between agent session invocations. Subsequent matching rows are suppressed until the cooldown expires. Must be at least 5 minutes if set. Defaults to 15 minutes if omitted.
Slack Message Posted Trigger Config
Field
Type
Required
Description
slack_connection
string
Yes
The Slack connection to scope this trigger to (connections/{id})
channels
array of string
Yes
Channel names (with leading #) that fire this trigger. Must be a subset of the connection’s allowed_channels unless that list is empty (in which case any channel is allowed).
include_thread_replies
bool
No
When true, fires on replies in existing threads as well as top-level messages. When false, only top-level messages. Defaults to true when omitted.
Every matching message creates a new agent session — there is no server-side cooldown. Callers that need throttling should handle it upstream or via the agent’s tool configuration.
Slack Agent Mentioned Trigger Config
Field
Type
Required
Description
slack_connection
string
Yes
The Slack connection to scope this trigger to (connections/{id})
handle
string
Yes
Agent handle shown to users (without leading @). Normalized server-side (a supplied @ is stripped). Must be unique within the workspace.
user_group_id
string
Output-only
Slack user group ID. Populated by the server once the user group has been auto-provisioned; empty until then.
channels
array of string
No
Optional channel scope. When non-empty, must be a subset of the connection’s allowed_channels. Empty means any allowed channel.
Trigger Activation State
Output-only state set by the system. Post-deploy triggers set post_deploy; row triggers set row. Slack triggers are stateless — every matching event creates a new session.