Reactions
What fires an agent automatically when something happens in Gmail, Slack, Drive, or Help Scout.
What a reaction is
A reaction is a typed event from a tool you’ve connected (an inbound Gmail message, a Slack DM, a Drive comment @mention, a Help Scout ticket assignment) that wakes an agent up. When the event matches a reaction you’ve turned on for the agent, the agent acts with the event as context. When it doesn’t, nothing happens.
Reaction is one of three task types you’ll see in the New Task form, alongside Once (run one time) and Repeat (run on a schedule). Reactions also surface on each agent’s Tools tab, grouped per connected tool, so you can manage them next to the connection itself.
All triggers are blocked by default
Connecting a tool to AgentTeams does not, by itself, give the agent permission to react to traffic in that tool. Reactions are opt-in: a task with a matching trigger has to exist before the agent fires. If no task subscribes, the event is still remembered (so the agent has context if you ask about it later) but the agent does not act.
This keeps the surface predictable. New customers don’t connect Gmail and discover an agent has emailed a client overnight; the only auto-reactions are the ones you (or the safe seeded defaults below) opted in to.
What ships as a default
When you connect a tool, AgentTeams seeds a small set of safe defaults. The rule used to pick them, from the audit on 2026-05-24:
- Explicit @mention or assignment. Someone specifically asked for me (Slack @mention, Drive comment @mention, Help Scout assigned).
- 1:1 DM-like surface. The channel itself implies intent (Slack DM, Telegram DM).
- Internal-domain initiator on a coordination surface. A teammate, on a tool we use to coordinate (internal Gmail, internal Calendar invite, internal Drive share).
Everything else is available in the trigger picker so you can opt in by hand, but it ships with no auto-reaction.
Summary
On a fresh agent connection, 41 events become live defaults and 25 sit in the picker waiting for you to wire them up. The remaining 6 are reserved for integrations we haven’t shipped yet.
Full event table
Every event in the catalogue, grouped by the tool it comes from. The icon on the left of each section is the tool’s brand mark; tools whose integration hasn’t shipped yet show as planned.
Slack
5 events
- @mentioned in any Slack channelDefault
slack.app_mention
Someone @mentions you in a public or private channel.
Seeded task: “Respond when @mentioned on Slack”
- Direct message in SlackDefault
slack.dm
Someone sends you a DM on Slack.
Seeded task: “Respond to Slack DMs”
- Any message in a Slack channelDefault
slack.channel_message
Any message in a channel you're a member of. Noisy — usually want @mention instead.
Seeded task: “Listen to channel messages”
- Reaction on your Slack messageDefault
slack.reaction_added
Someone reacts with an emoji to a message you posted (e.g. ✅ to approve).
Seeded task: “Read reactions on your messages”
- File shared in SlackDefault
slack.file_shared
A file is shared in a channel you're a member of.
Seeded task: “Digest files shared in channels”
Telegram
2 events
- Private chat with your Telegram botDefault
telegram.dm
Someone messages your bot in a 1:1 private chat.
Seeded task: “Respond to Telegram DMs”
- Message in a Telegram groupDefault
telegram.group_message
Any message in a group your bot is a member of.
Seeded task: “Listen to Telegram group chats”
Help Scout
4 events
- Help Scout ticket assigned to meDefault
helpscout.assigned
Someone assigns a ticket to your Help Scout user, OR a customer replies on a ticket you already own.
Seeded task: “Take ownership of assigned tickets”
- Customer reply on any Help Scout ticketDefault
helpscout.customer_reply
A customer replies — regardless of whether the ticket is assigned to you. Use for shared inboxes.
Seeded task: “Follow up on customer replies”
- —New Help Scout ticket createdOpt-in
helpscout.created
Any new ticket arrives in the mailbox. Very noisy on busy inboxes.
Why not a default: Fires on every new ticket; reserved for shared-inbox flows where someone wants it.
- —Help Scout ticket taggedOpt-in
helpscout.tagged
A tag is added to a ticket.
Why not a default: Tags are workflow-specific. Wire up the ones that matter to you.
Google Workspace
15 events
- Email from a teammate (internal)Default
gmail.inbound.internal
New email in your inbox from someone on your company's domain.
Seeded task: “Handle email from teammates”
- —Email from outside the companyOpt-in
gmail.inbound.external
New email from outside your domain. Use cautiously — auto-replying to customers can backfire.
Why not a default: Auto-replying to people outside your company is risky by default.
- Calendar invite from a teammateDefault
calendar.invite.internal
An internal teammate invites you to a calendar event.
Seeded task: “Triage internal calendar invites”
- —Calendar invite from outsideOpt-in
calendar.invite.external
An external person invites you to a calendar event.
Why not a default: External invites usually need a human judgment call.
- Calendar event you're on changedDefault
calendar.event_changed
Time, location, or details of a meeting you're attending changed.
Seeded task: “Track changes to your meetings”
- Calendar event you're on cancelledDefault
calendar.event_cancelled
A meeting you were attending was cancelled.
Seeded task: “Free time when meetings cancel”
- @mentioned in a Drive commentDefault
drive.comment_mentioned
Someone @mentions you in a comment on a Drive file.
Seeded task: “Respond to Drive comment @mentions”
- Drive file shared with you (internal)Default
drive.shared_with_me.internal
A teammate shares a new Drive file with you.
Seeded task: “Note new Drive shares from teammates”
- —Drive file shared with you (external)Opt-in
drive.shared_with_me.external
Someone outside your company shares a Drive file.
Why not a default: External shares need a quick human review first.
- —Drive permission changeOpt-in
drive.permission_change
Permissions changed on a file you can see.
Why not a default: Audit-only signal; no action needed unless you build one.
- —Any message in a Google Chat spaceOpt-in
google_chat.message
Any message in a space you're a member of. Noisy — usually want @mention instead.
- @mentioned in Google ChatDefault
google_chat.mention
Someone @mentions you in a Google Chat space. The high-signal trigger.
Seeded task: “Respond when @mentioned in Google Chat”
- Direct message in Google ChatDefault
google_chat.dm
Someone sends you a 1:1 direct message in Google Chat.
Seeded task: “Respond to Google Chat direct messages”
- —Reaction in Google ChatOpt-in
google_chat.reaction
Someone reacts with an emoji to a message in a space you're in.
- —Member joined a Google Chat spaceOpt-in
google_chat.member_joined
A new member joins a space you're in. Useful for welcome or onboarding workflows.
Linear
4 events
- —New Linear issue createdOpt-in
linear.issue_created
Any new issue in the connected Linear workspace. Use filters to narrow to a team or label.
- Linear issue assigned to meDefault
linear.issue_assigned
An issue is assigned to your Linear user. The cleanest signal that you should act.
Seeded task: “Pick up new Linear assignments”
- —Linear issue status changedOpt-in
linear.issue_status_changed
An issue moved to a new state (e.g. In Review → Done). Use to react to lifecycle transitions.
- New comment on a Linear issueDefault
linear.comment_created
Someone posted a comment on an issue. Filter to issues you own or are assigned to.
Seeded task: “Reply when someone comments on your issues”
Shopify
7 events
- New Shopify orderDefault
shopify.order_created
A new order was placed in the connected shop.
Seeded task: “Triage new orders”
- Shopify order marked paidDefault
shopify.order_paid
An order's payment status moved to paid.
Seeded task: “Move paid orders toward fulfillment”
- —Shopify order fulfilledOpt-in
shopify.order_fulfilled
An order's fulfillment status moved to fulfilled. The agent can confirm tracking with the customer.
- Shopify order cancelledDefault
shopify.order_cancelled
An order was cancelled. Useful for win-back outreach or inventory restocking workflows.
Seeded task: “Note cancellations for the books”
- —New Shopify customer signupOpt-in
shopify.customer_created
A new customer signed up on the store.
- —Shopify product updatedOpt-in
shopify.product_updated
A product was edited (title, status, variants, etc.).
- —Shopify inventory level changedOpt-in
shopify.inventory_updated
Stock level changed for a variant at a location. Pair with a low-stock filter to act only when stock drops below a threshold.
Microsoft 365
11 events
- Outlook email from a teammateDefault
outlook.inbound.internal
Internal email in your Outlook inbox.
Seeded task: “Handle Outlook email from teammates”
- —Outlook email from outsideOpt-in
outlook.inbound.external
External email in your Outlook inbox.
- —Outlook calendar invite from a teammatePlanned
ms_calendar.invite.internal
Internal calendar invite via Outlook.
- —Outlook calendar invite from outsidePlanned
ms_calendar.invite.external
External calendar invite via Outlook.
- —Outlook calendar event changedPlanned
ms_calendar.event_changed
Meeting you're on changed (Outlook).
- —Outlook calendar event cancelledPlanned
ms_calendar.event_cancelled
Meeting you're on cancelled (Outlook).
- —OneDrive file shared (internal)Planned
onedrive.shared_with_me.internal
Internal teammate shares a OneDrive file.
- —OneDrive file shared (external)Planned
onedrive.shared_with_me.external
External party shares a OneDrive file.
- Microsoft Teams DMDefault
teams.dm
Someone DMs you on Teams.
Seeded task: “Respond to Teams DMs”
- @mentioned in a Teams channelDefault
teams.channel_mention
Someone @mentions you in a Teams channel.
Seeded task: “Respond when @mentioned on Teams”
- Any message in a Teams channelDefault
teams.channel_message
Any message in a Teams channel you're a member of.
Seeded task: “Listen to Teams channel messages”
GitHub
3 events
- @mentioned on GitHubDefault
github.mention
Someone @mentions you in an issue or PR comment.
Seeded task: “Respond when @mentioned on GitHub”
- GitHub review requestedDefault
github.review_requested
Someone requests your review on a PR.
Seeded task: “Review PRs when requested”
- GitHub issue assigned to youDefault
github.issue_assigned
An issue is assigned to your GitHub user.
Seeded task: “Pick up new GitHub assignments”
Jira
3 events
- Jira issue assigned to youDefault
jira.assigned
An issue is assigned to you in Jira.
Seeded task: “Pick up new Jira assignments”
- @mentioned in JiraDefault
jira.mentioned
Someone @mentions you in a Jira issue or comment.
Seeded task: “Respond when @mentioned on Jira”
- Jira issue commentedDefault
jira.commented
A new comment on a Jira issue you're watching.
Seeded task: “Watch Jira comments for direct questions”
Confluence
2 events
- @mentioned in ConfluenceDefault
confluence.mentioned
Someone @mentions you on a Confluence page or comment.
Seeded task: “Respond when @mentioned on Confluence”
- —Confluence page commentedOpt-in
confluence.commented
A new comment on a Confluence page.
HubSpot
1 event
- HubSpot ticket assignedDefault
hubspot.ticket.assigned
A HubSpot ticket is assigned to you.
Seeded task: “Take ownership of assigned HubSpot tickets”
Zendesk
4 events
- Zendesk ticket assigned to meDefault
zendesk.assigned
A ticket's assignee is set to your Zendesk user. The cleanest signal that you should act.
Seeded task: “Take ownership of assigned Zendesk tickets”
- Customer reply on a Zendesk ticketDefault
zendesk.customer_reply
The requester (end-user) replied on a ticket. Use for tickets you're handling.
Seeded task: “Follow up on Zendesk customer replies”
- —New Zendesk ticket createdOpt-in
zendesk.created
Any new ticket arrives in the account. Noisy on busy instances — pair with a filter.
- Internal note on a Zendesk ticket assigned to youDefault
zendesk.internal_note
A teammate adds a private note on a ticket assigned to you. Use it to hand the agent instructions (revise a draft, send it, reassign) without the customer seeing.
Seeded task: “Act on internal notes from teammates”
Pipedrive
4 events
- New Pipedrive dealDefault
pipedrive.deal_added
A new deal was added to the pipeline.
Seeded task: “Triage new Pipedrive deals”
- —Pipedrive deal updatedOpt-in
pipedrive.deal_updated
An existing deal changed (stage, value, status, owner). Noisy — pair with a stage/status filter.
- —New Pipedrive contactOpt-in
pipedrive.person_added
A new person/contact was created in Pipedrive.
- —New Pipedrive activityOpt-in
pipedrive.activity_added
A new activity or task was created in Pipedrive.
Trello
2 events
- @mentioned on TrelloDefault
trello.mention
Someone @mentions you in a Trello card.
Seeded task: “Respond when @mentioned on Trello”
- Trello card assignedDefault
trello.assigned
You're added as a member of a Trello card.
Seeded task: “Pick up new Trello assignments”
figma
5 events
- —Figma file updatedOpt-in
figma.file_updated
Design content changed in a file in one of the connected teams. Fires on most edits — pair with a quiet-hours or file-key filter unless the agent should react to every change.
- —Figma version savedOpt-in
figma.file_version_updated
A designer explicitly saved a new version of a file (Save Version, Cmd+Alt+S). Less noisy than file_updated — good signal that something is ready to review.
- New comment on a Figma fileDefault
figma.file_commented
Someone posted a comment on a file. The classic design-feedback trigger.
Seeded task: “Triage Figma comments”
- —Figma file deletedOpt-in
figma.file_deleted
A file in a connected team was deleted. Useful for audit / cleanup workflows.
- —Figma library publishedOpt-in
figma.library_published
A design system library was published. Pair with a downstream notification or asset-export workflow.
Customising your triggers
The seeded defaults are a starting point, not a contract. Anything you see above with a Default badge can be:
- Paused from the agent’s Tasks tab if you want to keep the subscription but stop it from firing temporarily.
- Edited if you want to change the agent’s instructions (for example, “reply briefly and tag me in” instead of the default).
- Deleted outright if you don’t want the reaction at all.
Anything in the Opt-in column can be enabled by creating a new task in the agent’s Tasks tab and picking Reaction. The picker only lists events for tools the agent is actually connected to, so you won’t see options that can never fire.
Filters
Some events accept a filter so they only fire for matching cases. Two filters are exposed in the picker today:
- Sender domain.
internal_onlymeans the event only fires when the sender is on your company’s domain;external_onlyis the opposite. Used on Gmail, Calendar invites and Drive shares to separate teammate-initiated from outside-initiated. - Mention required. When true, the event only fires when the agent was explicitly @mentioned (used by Slack channel messages, Drive comments).
More filters land as we ship more integrations. For anything not covered today, the agent can read the event context in the task and act conditionally based on what it finds.
Planned integrations
Events from Microsoft 365 (Outlook, Teams, OneDrive), GitHub, Jira, Confluence, HubSpot, and Trello are listed as planned: the typed events are reserved in the catalogue so you can see what’s coming, but the receivers aren’t wired up yet. When we ship each integration, its safe defaults get added automatically and they show up on your agents’ Tasks tab the next time you connect.
Related
- Tasks & schedules — how the three task types work together
- Integrations — how to connect a tool so events start arriving
- Approval gates — why outbound actions still pause for review
Still stuck? Get in touch and a human will write back.