Slack
将 Slack 工作区连接到 ElevenLabs Agents,以便在频道和话题中与智能体聊天
概述
Slack 集成可让 ElevenLabs 智能体在 Slack 中发送和接收消息。连接后,在频道中提及智能体时,它会在线程中回复,并为每个线程保持独立的对话上下文。
功能
设置
该集成提供两种连接方式:
- OAuth — 将共享的 ElevenLabs Slack 应用安装到工作区。一个 Slack 工作区对应一个 ElevenLabs 连接。设置最快,无需管理 Slack 应用。
- 使用自己的应用 — 使用你创建并拥有的 Slack 应用进行连接。如果需要让机器人以你的品牌显示,或工作区策略要求由管理员安装应用,请使用此方式。
选项 A — OAuth
安装应用的用户必须有权向目标 Slack 工作区添加应用。
选项 B — 使用自己的 Slack 应用
如果希望机器人以自己的应用名称和图标显示,或工作区要求由管理员审核并安装应用,请使用此选项。
添加机器人权限范围
打开 OAuth & Permissions,并添加以下 Bot Token Scopes:
app_mentions:read、channels:history、channels:join、channels:manage、chat:write、files:read、groups:history、groups:write、im:history、reactions:write。
然后点击 Install to Workspace 并批准。复制 Bot User OAuth Token(以 xoxb- 开头)。
在 ElevenLabs 中创建连接
在 ElevenLabs 控制台中,前往 Integrations,点击 Add integration 按钮并选择 Slack。选择 Bring your own app 凭据。粘贴机器人令牌和签名密钥,然后保存。ElevenLabs 会根据 Slack 验证令牌并记录工作区 ID。
创建连接后,连接页面会显示两个基于 Slack 应用身份生成的 Webhook URL。从同一 ElevenLabs 工作区重新连接同一个 Slack 应用,始终会生成相同的 URL,因此你可以删除并重新创建连接,无需再次更新 Slack 应用配置。请保持该页面打开,以完成后续步骤。
配置事件订阅
在 Slack 应用中,打开 Event Subscriptions,启用事件,并将 ElevenLabs 连接页面中的 Events URL 粘贴到 Request URL。Slack 会使用你提供的签名密钥验证 URL。
根据希望智能体在频道中的行为订阅机器人事件:
- 仅提及 — 订阅
app_mention。仅当用户使用@提及机器人时,智能体才会回复。 - 所有消息 — 订阅
message.channels和message.groups。智能体会回复机器人所在频道中的每条消息,无需提及。
如果使用 SlackDirectMessage 触发器,还需订阅 message.im。
除非打算处理重复投递,否则不要同时订阅 app_mention 和 message.* 频道事件。用户使用 @ 提及机器人时,Slack 可能会为同一条消息同时发送 app_mention 事件和 message 事件,导致智能体回复两次。
一个 Slack 工作区只能通过共享的 ElevenLabs OAuth 应用连接一次。通过其他 ElevenLabs 工作区重新安装时,会返回 duplicate Slack workspace 错误 — 请先移除现有连接。使用自己应用的连接彼此独立,不会冲突。
OAuth 权限范围
ElevenLabs Slack 应用会请求以下权限范围:
智能体工具
向智能体添加 Slack 工具后,可使用以下内置工具:
移除连接
从 Integrations 页面移除连接会从 Slack 工作区卸载 ElevenLabs Slack 应用。移除后,机器人将不再存在于任何频道中。
对于使用自己应用的连接,ElevenLabs 无法卸载不属于自己的应用 — 移除连接只会删除本地映射。要从 Slack 工作区完全移除机器人,请在 Slack 管理设置中卸载应用。
配置触发器
该集成提供一个触发器:SlackMessage。当机器人在已配置频道中看到新的用户消息时触发。
Slack 不允许应用自动加入私密频道。对于私密频道,请在保存触发器后在该频道中运行 /invite @Eleven,以便机器人能够查看消息。
每个 (Slack workspace, channel) 组合只允许一个触发器。请编辑现有触发器,而不是创建重复项。
配置私信触发器
SlackDirectMessage 触发器可让任何 Slack 用户通过向机器人发送私信来与智能体聊天。与频道触发器不同,无需 @ 提及 — 用户在与机器人的私信中发送的每条消息都会被处理。
对于 BYO 应用,请确保已订阅 message.im 机器人事件并添加 im:history 机器人权限范围。添加后如有提示,请重新安装应用。
每个 Slack 连接只允许一个私信触发器。要更改智能体,请编辑现有触发器。
在 Slack 中与机器人交谈
触发器启用且机器人已加入频道后,可在线程中开始对话。如何继续线程取决于 Slack 应用的事件订阅(OAuth 使用仅提及行为)。
仅提及(app_mention)
所有消息(message.channels、message.groups)
机器人生成回复时,会向触发消息的用户添加 :eyes: 回应,并在发布回复后将其移除。
频道消息触发器中的 Respond to messages from 设置可控制哪些人可以触发智能体:
- Only humans(默认):忽略来自其他机器人和 Slack workflow 的消息。这是安全的默认设置,可保留现有触发器的行为。
- Humans and bots:来自其他机器人的消息以及由 workflow 发布的消息(包括旧版
bot_message事件)也会触发智能体。
无论使用哪种设置,机器人始终会忽略自己的消息 — 通过 Slack 已签名 Webhook 中的机器人用户和应用身份识别 — 因此即使有人提及机器人自身,它也不会回复自己。它还会继续忽略已编辑消息(message_changed)和已删除消息(message_deleted)。它可处理 message 和 app_mention 事件,并适用于公开和私密频道。
仅包含 bot_id 的旧版机器人事件可识别发送者,但无法识别接收应用。它们会被视为来自其他机器人的消息;此 Slack 应用的自循环检测使用现代 Slack 事件负载中包含的机器人用户或应用身份。
如果 Slack 应用同时订阅 app_mention 和 message.channels / message.groups,一次 @ 提及可能触发两次智能体回复。请只订阅其中一种模式。
对话模型
每个 (agent_id, channel_id, thread_ts) 的对话 ID 都是确定的:
- 一个新的 Slack 线程对应一个新的 ElevenLabs 对话。
- 在同一线程中继续会延续同一对话,包括转录历史和动态变量。
构建聊天历史时,机器人会直接读取 Slack 线程。来自 Slack 成员和其他机器人的消息会被视为用户轮次,而机器人自己的消息会被视为智能体轮次。在智能体处理前,对机器人的用户提及(<@BOT_USER_ID>)会重写为 @<agent_name>。
动态变量
智能体从 Slack 运行时,提示词和工具中可使用以下动态变量:
有关如何在提示词和工具调用中引用这些变量,请参阅动态变量。
故障排除
文件附件无法使用
当用户在 Slack 中附加图片或 PDF,但智能体未处理(或表现得像未发送文件)时,请按以下步骤检查。
确认 Slack 应用具有 files:read
机器人需要 files:read 机器人权限范围才能从 Slack 下载附件。
- 使用自己的应用 — 在 Slack API: Your Apps 中打开应用,前往 OAuth & Permissions,并确认 Bot Token Scopes 下列出了
files:read。如果最近刚添加该权限,请将应用重新安装到工作区,以便令牌获取新权限范围。