Use service_config to restrict webhook triggers to specific repositories, channels, or projects. Webhook triggers accept an optional service_config JSON object. When you omit it or set it to null, the trigger matches all events of the selected type (for example, every repository or every channel).
Service
Field
Example
Behavior
GitHub
repo
"guildaidev/guildcode"
Only events for this repository (owner/repo format)
Slack
channel_ids
["C01234567"]
Only events in these channel IDs. Messages from the Slack app itself are always excluded to prevent loops.
Jira
project
"ENG"
Only events for this project key (case-insensitive)
service_config must be a JSON object. Do not pass an array or string at the top level.Pass service_config when you create or update a trigger with the CLI:
# GitHub: only pull requests in one repoguild trigger create \ --type webhook \ --service GITHUB \ --event pull_request \ --action opened \ --agent code-reviewer \ --service-config '{"repo": "guildaidev/guildcode"}'# Slack: only mentions in specific channelsguild trigger create \ --type webhook \ --service SLACK \ --event app_mention \ --agent slack-assistant \ --service-config '{"channel_ids": ["C01234567"]}'
For Slack, an empty channel_ids array matches all channels. Omit service_config entirely only if you intend to process events workspace-wide.
# List all triggers in the workspaceguild trigger list# Get details for a specific triggerguild trigger get <trigger-id># List sessions spawned by a triggerguild trigger sessions <trigger-id>
# Change the schedule of a time triggerguild trigger update <trigger-id> --time 10:00# Change the event of a webhook triggerguild trigger update <trigger-id> --event message