# Slack

Source: https://www.hyperagent.com/docs/integrations/slack

Connect Slack, deploy an agent to your workspace, and work with it in channels and DMs.

Slack is the deepest integration in Hyperagent, because it isn't only a connection. It's also a way to invoke agents. When an agent is deployed to Slack, it can read and post in your workspace's channels, and your team can hand it work without leaving Slack.



The AI assistant functionality in this integration requires a Slack workspace
on a paid plan. It does not work in workspaces on Slack's free plan.

## Working with Slack in Hyperagent [#working-with-slack-in-hyperagent]

In Hyperagent, Slack is a three-step process: connect your account, deploy an agent, and then use it day to day with your team right from slack.

Link your Slack account to Hyperagent from Settings. This is the account
connection. It doesn't put any agent in Slack yet.

Give a specific agent its own bot identity, channel and DM access, and a way
to respond. This is what makes the agent reachable in Slack.

@mention the agent, follow up in threads, and schedule updates to land in a
channel. This is the ongoing work.

## Connect Slack [#connect-slack]

This links your account. It does not put any agent in Slack yet.

### Open Settings → Integrations [#open-settings--integrations]

Sign in at [hyperagent.com](https://hyperagent.com), then open **Settings → Integrations**.

### Connect the Slack card [#connect-the-slack-card]

Find the **Slack** card and click **Connect**. A Slack window opens.



### Authorize Hyperagent [#authorize-hyperagent]

Choose your workspace, review the permissions, and click **Allow**. If your workspace requires admin approval for apps, the request goes to your Slack admin.



## Deploy an agent to Slack [#deploy-an-agent-to-slack]

Once you've connected your Slack integration to your account, you can deploy an agent to Slack. When you deploy an agent, you give it a bot identity, set which channels it's allowed to read and write from, whether it should have DM access, and a way to respond.

The following deployment configuration is what makes the agent reachable in Slack.

Required. The agent's own name and avatar in your workspace, and what makes
it reachable in Slack at all.

Connect yourself so the agent can read and search Slack as you, only on runs
you drive.

Which channels the agent can read, and which it can post in, set separately.

Separate read and write switches for direct messages, independent of the
channel settings.

Each one is a separate decision, set up in turn below.

### Set the bot identity [#set-the-bot-identity]

The bot identity is the agent's face in Slack: its name and avatar, and what people @mention. An agent that should respond in Slack needs one.

### Open the agent's Invocation settings [#open-the-agents-invocation-settings]

Open your agent's configuration, go to its invocation settings, and find the Slack section.



### Add a bot identity [#add-a-bot-identity]

Add a bot identity and give it the name and avatar people should see in the workspace. This is what makes the agent reachable in Slack.



If you want to customize your agent's name and avatar, you can create a custom Slack app in advanced settings.

By default, agents can respond through Hyperagent's shared Slack app. Use a custom Slack app when you want the agent to have a dedicated name and app identity in your workspace. Hyperagent guides you through creating the app, connecting it to the agent, and authorizing it in Slack.

### Start a custom Slack identity [#start-a-custom-slack-identity]

In the agent's Slack settings, select **Set up another Slack identity**. This opens the guided setup for a Slack app that you control.



### Open Slack App Management [#open-slack-app-management]

In the setup dialog, click **Slack App Management**. Slack opens in a new tab, where you can create a configuration token for Hyperagent.



### Generate and copy an access token [#generate-and-copy-an-access-token]

In Slack, scroll to **Your App Configuration Tokens** and click **Generate Token**. Find your workspace, then copy its **Access Token**. Do not copy the refresh token.

The access token expires after 12 hours, so complete the remaining setup before it expires.



### Paste the token into Hyperagent [#paste-the-token-into-hyperagent]

Return to the setup dialog, paste the access token into **Configuration Token**, and click **Next**. Configuration tokens begin with `xoxe.xoxp-`.

Treat the configuration token like a password. Paste it only into this Hyperagent setup field.

### Name the Slack app [#name-the-slack-app]

Enter the name teammates should see when they @mention the agent, then click **Create Slack App**. Choose a name that makes the agent's role clear in channels and threads.



### Install the app to your workspace [#install-the-app-to-your-workspace]

After Hyperagent creates the app, click **Install to Workspace**. This starts Slack's authorization flow for the workspace you choose.



### Review and allow access in Slack [#review-and-allow-access-in-slack]

Confirm the correct workspace, review the permissions the app requests, and click **Allow**. Slack returns you to Hyperagent when authorization is complete.



### Set the bot's DM access [#set-the-bots-dm-access]

Decide whether the agent should be able to open and send direct messages. If you leave this off, the agent can only read and post in channels. There are two options for DM access:

* **Send direct messages**: The agent can open and send DMs to teammates.
* **Respond when teammates DM the app**: The agent can respond when a teammate sends it a direct message. This requires the first option to be enabled. Additionally, this allows all teammates in Slack to DM the agent, not just yourself.



The default @Hyperagent bot identity cannot respond to DMs. If you want the agent to respond to DMs, you must create a custom Slack app for the agent.

### Set channels where your agent can read and post [#set-channels-where-your-agent-can-read-and-post]

Once you add your bot to your slack workspace, you can choose the permissions for the channels it can read and post in. There are three options for default channel access:

* **No permissions**: The agent cannot read or post in any channels that you do not give it specific permissions for. You can add **channel-specific overrides** to allow access to specific channels.
* **Read only**: The agent can read messages in all public channels, but cannot post.
* **Read and write**: The agent can read and post messages in all public channels.



Agents cannot read private channels by default. If you want the agent to read a private channel, you must add it to that channel and give it the appropriate permissions using Channel Overrides.

### Set channels where your agent can be invoked [#set-channels-where-your-agent-can-be-invoked]

To invoke your agent in a channel, you must specifically add it to that channel, and determine how it should respond in the Channel Overrides section.

You can invoke your agent in three different ways:

* **@mentions**: The agent will only respond when it is mentioned in a message.
* **Thread replies**: The agent will respond when it is mentioned in a message, and it will also respond to messages in threads that it has already been mentioned in.
* **All relevant messages in the channel**: The agent will respond to any message in the channel that it deems relevant. For this invocation, you can optionally provide a Filter Prompt to help the agent determine what is relevant to respond to. Use this option with care on busy channels.

You can also set how the agent should respond, either streaming its work as it goes, posting only a final answer, or letting the agent decide whether to reply, react, or stay quiet.

Lastly, you can choose whether your agent should respond to automated messages from other apps or agents in the channel. By default, the agent will not respond to automated messages.

#### Setup Agent Invocation [#setup-agent-invocation]

* Select the **Add channel** button to add a channel to the agent's list of connected channels.
* Choose the channel you want to add from the channel picker.
* Set the agent's permissions for that channel, then set its respond mode.





### Save your changes [#save-your-changes]

Once you have set the bot identity, DM access, and channel access for your agent, make sure to save your changes. This will ensure that your agent is properly configured to work in Slack.

### Set a user identity Optional [#set-a-user-identity-optional]

A user identity lets the agent read and search Slack with your access, including the channels you belong to and, optionally, your direct messages. It's owner-locked: the agent only acts as you when you're the one running it. For everyone else, the agent acts as its bot identity. The bot still does all the posting; it never posts as you.

#### When does the agent act as you? [#when-does-the-agent-act-as-you]

The agent uses your identity only when you're verifiably the one driving the run:

* **Your own chats** in the Hyperagent app.
* **Schedules you created** yourself.
* **Slack messages you send** yourself, verified by your Slack workspace and user ID.

Everything else falls back to the bot identity: runs started by teammates, and runs triggered by email, webhooks, tasks, or meetings. If a run driven by someone else needs an action that strictly requires your identity, that action fails with a clear error instead of using your access.

Agents in a team workspace cannot have a user identity. Moving a personal
agent into a team disconnects any user identity it had; the agent keeps
working through its bot identity.

### Select a user identity when adding the agent to Slack [#select-a-user-identity-when-adding-the-agent-to-slack]

When you add a bot identity, you can also choose to bind a user identity by selecting **User Identity**.



### Choose the workspace and person to bind [#choose-the-workspace-and-person-to-bind]

Choose the workspace and connect yourself as the user identity. The bot identity still posts, but on runs you drive, the agent can read and search Slack as you.



### Set channel and DM access [#set-channel-and-dm-access]

Choose whether the agent can read all channels available to you or only specific channels. Then decide whether it can read your direct messages. Leave DM access off unless the agent's work requires that context.

These settings expand what the agent can read and search on runs you drive yourself. Posting still goes through the bot identity.



### Save your changes [#save-your-changes-1]

Once you have set the user identity, channel access, and DM access for your agent, make sure to save your changes. This will ensure that your agent is properly configured to read and search Slack as you on the runs you drive.

## Interact with your agent in Slack [#interact-with-your-agent-in-slack]

Once it's deployed, an agent can start work from an @mention, deliver a recurring report on a schedule, or monitor a job in Live Mode.

Agent responses are AI-generated and may be inaccurate or incomplete. Review important output before you act on it.

### Invoke an agent with an @mention [#invoke-an-agent-with-an-mention]

In a channel where the agent is deployed, @mention its bot identity and include the request in the same message. The mention starts a run with the message and the Slack context the agent is allowed to read.

The agent does the work and posts its response from its bot identity. Follow-up messages stay together in the Slack thread, and the agent continues responding according to the channel's thread-response setting.



Any artifacts the agent includes in its Slack response are published to public
links.

### Deliver Scheduled and Live runs to Slack [#deliver-scheduled-and-live-runs-to-slack]

Scheduled and [Live Mode](/docs/concepts/agents/invocations/live-mode) runs use the same setup for cadence, threads, Slack delivery, replies, and unattended writes. The difference is what the agent does each time it runs:

* **Scheduled** runs produce a recurring deliverable on a fixed cadence, such as a Monday pipeline report or daily support summary.
* **Live** runs check a situation on a rolling interval and can stay quiet when nothing needs attention.

### Choose the run mode and cadence [#choose-the-run-mode-and-cadence]

Select **Scheduled** for a recurring deliverable or **Live** for a rolling check. Set when it runs and provide the standing instructions. Live runs also let you choose a heartbeat model and leave the actions empty when the agent's defaults already describe what to monitor.

### Choose the thread and Slack destination [#choose-the-thread-and-slack-destination]

Choose whether runs create a new thread or continue an existing one. Under **Deliver result to**, select the Slack DM or channel that should receive each successful result.



A Slack delivery destination routes the report. It does not give the agent general Slack write access.

### Configure replies and notification behavior [#configure-replies-and-notification-behavior]

Decide which replies in the Slack thread should invoke the agent, such as **@mentions only** or **All messages**. For a Live run, turn on **Only deliver when something needs attention** when routine checks should stay quiet.

A scheduled result is delivered after every successful run. A Live check still runs on every interval when attention-only delivery is enabled, but Slack receives a result only when the agent finds something that requires attention.

### Set unattended write access [#set-unattended-write-access]

Choose **Read-only** when the agent should monitor connected apps without changing them. Choose **Allow writes** only when the Live run should be able to send messages, edit files, or update records on its own.

### Review the estimate and enable [#review-the-estimate-and-enable]

Review the estimated cost before enabling the run. Live heartbeat checks are billed even when everything is quiet. If a check finds work to do, the follow-up work on the agent's main model costs extra.

## Disconnect an agent from Slack [#disconnect-an-agent-from-slack]

Remove Slack from an individual agent when it should no longer read, respond, or deliver results in your workspace.

### Open the agent's Integrations section [#open-the-agents-integrations-section]

Open the agent's configuration, go to **Integrations**, and find its Slack card.

### Remove Slack from the agent [#remove-slack-from-the-agent]

Click the three-dot menu on the Slack card and choose **Remove**. The agent loses its Slack access and stops responding there.



Removing Slack from one agent does not disconnect your account-level Slack
integration or remove Slack from your other agents.

## Troubleshooting [#troubleshooting]

Adding the agent to a channel with `/invite`, or @mentioning it before setup
is complete, only adds or addresses its Slack bot. It does not configure
the channel permissions, response trigger, or reply behavior the agent
should use.

In Hyperagent, open the agent's **Invocations** settings and find Slack. Add
the channel under **Channel Overrides**, choose what the agent can do there,
set when and how it should respond, and save your changes. Then return to
Slack and invoke the agent using the response trigger you selected.

The most common cause is the deploy step, not the connection. Confirm the
agent has a bot identity, that it's added to the channel, and that the
channel is in its read or write scope. If it reads but never posts, check
the channel's write access and the trigger mode.

Changing an agent's Slack identity disables its existing channel
configurations. Re-enable them after the change. Treat identity changes as
disruptive.

Connect again and choose the other workspace in the account picker. Agents
keep accounts separate, and you choose which account backs each agent when
you add the integration to it.

This appears when someone other than the identity owner triggers a run that
needs the agent's user identity. User identities are owner-locked: the
agent only reads Slack as the connected person when they are the one
running it. To resolve it, have the identity owner run the agent
themselves, or rely on the bot identity's own channel and DM permissions
instead.

Still stuck? See [Get support](#get-support).

## FAQs [#faqs]

Yes, if you want people to invoke the agent from Slack. A bot identity is
what makes the agent reachable. A user identity is optional and only widens
what the agent can read on runs its owner drives; every other run uses the
bot identity.

The agent acts as its bot identity. It never reads or searches Slack as you
on runs you aren't driving yourself. If the run needs something only your
identity could do, that action fails with a clear error instead.

The person who deployed the agent. Slack runs count against the deployer's
usage no matter who triggers them. When the usage limit is reached, the
agent says so in Slack and asks teammates to contact the agent's owner.

No. The AI assistant functionality requires a workspace on a paid Slack
plan. If your workspace is on the free plan, upgrade it in Slack before
connecting.

Yes. Connect Slack again and pick the other workspace. Agents keep the
accounts separate.

Yes, as long as each agent has its own bot identity. A single identity can
only be linked to a channel once. Agents ignore their own messages and, by
default, messages from other bots and agents, so they won't trigger each
other unless you turn on responses to automated messages.

No. The bot identity always posts. A bound user identity only lets the agent
read and search as that person, never write as them.

Yes. Ask it to update or delete one of its earlier replies and it will. It
can only change messages it posted itself; messages from you, teammates, or
other apps are off limits.

Changing the identity disables its channel configurations. Re-enable the
channels after the change.

Yes. For a bot identity created through Hyperagent, name and avatar changes
sync to Slack automatically within about a minute. If you set up your own
custom Slack app, manage its name and avatar in Slack's app settings
instead; Hyperagent won't overwrite them.

Only if you allow it. Unattended runs can block external writes until you
enable them on the invocation, so a scheduled agent reads and reports
without posting unless you say otherwise.

Not by default. The agent reads channel messages as context for the task in
front of it, but it doesn't save long-term memories from teammates' messages
unless you enable that in the agent's settings.

## Get support [#get-support]



If you hit something these docs don't cover, contact support from within
Hyperagent: click your name in the sidebar and choose **Help → Support**.
Including the thread link and a screenshot helps us resolve issues faster.
If you can't access the product, email
[support@hyperagent.com](mailto:support@hyperagent.com).
