Available Trigger Types

Jira Triggers
Run agents when Jira issues are created or updated

Slack Triggers
Invoke agents from Slack mentions and commands

Linear Triggers
Invoke agents via @mentions and assignments in Linear

Cron Triggers
Schedule agents to run on a recurring basis

Webhook Triggers
Invoke agents via webhooks from any system

Email Triggers
Run agents when emails arrive at a dedicated address
How Triggers Work
When a trigger fires:- The event payload is captured
- Your agent receives the event data as context
- The agent executes with access to relevant tools
- Results are logged and can be posted back to the source
Slack Triggers
Slack triggers allow you to invoke agents by @mentioning the Cotool bot in channels where it’s installed. In DMs, the bot can create personal chats or invoke agents depending on your trigger configuration.Setting Up a Slack Trigger
- Navigate to your agent’s Triggers tab
- Click Add Trigger and select Slack
- Choose the channel(s) where the trigger should be active, or select “All Channels”
- Save the trigger
One Trigger Per Channel
Each Slack channel can only have one active trigger. This prevents conflicts where multiple agents could respond to the same @mention. What this means:- You can create multiple Slack triggers for different channels (e.g., one for
#alerts, another for#support) - You cannot create two triggers that both include the same channel
- An “All Channels” trigger cannot coexist with any other Slack trigger
| Configuration | Valid? |
|---|---|
Trigger A: #alerts + Trigger B: #support | ✅ Yes |
Trigger A: #alerts, #support + Trigger B: #incidents | ✅ Yes |
Trigger A: #alerts + Trigger B: #alerts, #support | ❌ No (overlap on #alerts) |
Trigger A: All Channels + Trigger B: #alerts | ❌ No (all channels conflicts) |
Thread Conversations (Re-entry)
When Cotool responds in Slack, users can continue the conversation by @mentioning Cotool in the same thread. This enables back-and-forth interactions without starting a new execution each time. How it works:- @mention Cotool in a thread that already has a Cotool response to continue that conversation
- Both agent-triggered conversations and personal chats support thread re-entry
- The conversation has full context of the previous messages in that thread
- This allows for follow-up questions, clarifications, and iterative workflows
- User @mentions Cotool: “@Cotool investigate alert #12345”
- Agent responds with initial findings
- User replies in thread: “@Cotool can you check if this IP has been seen before?”
- Agent continues the same execution with the new request
- User DMs Cotool: “@Cotool help me analyze this log file”
- Cotool responds with analysis
- User replies in thread: “@Cotool can you summarize the key findings?”
- Cotool continues the conversation and responds in the thread
Permissions
- User matching: The Slack user’s email must match a Cotool account in your organization
- Agent execution: Users must have the
agent.executepermission for the specific agent to trigger or re-enter conversations - Thread ownership: Only users with appropriate permissions can continue agent conversations in threads
Response Buttons
Each Cotool response in Slack includes a button to view the full conversation in the web interface:| Mode | Button |
|---|---|
| Personal chat (DM) | Open Chat in Cotool |
| Agent trigger | Open Agent Run in Cotool |
DM vs Channel Behavior
Direct Messages (DMs):- DMs always create a personal chat accessible via the web interface
- Slack triggers do not apply to DMs—this ensures consistent, predictable behavior
- Thread re-entry works for both personal chats and agent conversations (see below)
- @mentions in channels require a configured trigger for that channel
- If no trigger is configured for the channel, users see a message prompting them to set up a trigger
- This ensures public channel conversations are always handled by a configured agent with appropriate guardrails
Thread Re-entry for Personal Chats
Personal chats (started via DM) support thread re-entry just like agent conversations:- Start a conversation by @mentioning Cotool in a DM
- Cotool responds in a thread
- @mention Cotool in the thread to continue the conversation
- Cotool will respond directly in the Slack thread
Linear Triggers
Linear triggers allow you to invoke agents by @mentioning or assigning Cotool directly in Linear issues. When triggered, the agent processes the request and streams real-time updates — including reasoning, tool actions, and plan progress — back into the Linear issue thread.Setting Up a Linear Trigger
- Navigate to your agent’s Triggers tab
- Click Add Trigger and select Linear
- Choose Agent Session mode (the default for new triggers)
- Save the trigger
Agent Sessions vs. Legacy Webhooks
Linear triggers support two modes:| Mode | Description | When to Use |
|---|---|---|
| Agent Session (default) | Cotool registers as an agent in Linear. Triggered by @mentions and assignments. | New triggers — recommended for all new setups |
| Legacy Webhook | Cotool receives a webhook when an issue is created. Requires manual webhook configuration. | Existing triggers created before Agent Session support |
How Agent Sessions Work
When Cotool receives a Linear Agent Session event:- Cotool immediately acknowledges with a “Thinking…” status
- The configured agent processes the request with full issue context
- Progress is streamed to the Linear thread in real-time (reasoning, tool actions, plan steps)
- The final response is posted as a reply with a link to the full run in Cotool
Conversation Continuity
Follow-up messages in the same Linear Agent Session thread continue the existing Cotool conversation. The agent retains full context from previous turns, enabling multi-step investigations and iterative workflows. Example flow:- User @mentions Cotool: “Investigate alert #5678”
- Agent responds with initial findings
- User follows up: “Check if this IP was seen in other alerts this week”
- Agent continues the same conversation with the new request