Slack

将 Slack 工作区连接到 ElevenLabs Agents,以便在频道和话题中与智能体聊天

概述

Slack 集成可让 ElevenLabs 智能体在 Slack 中发送和接收消息。连接后,在频道中提及智能体时,它会在线程中回复,并为每个线程保持独立的对话上下文。

功能

功能支持情况
零保留模式(ZRM)不支持
触发器中的附件传入消息中的图片(PNG、JPEG、GIF、WebP)和 PDF 文件,需在智能体设置中启用 允许文件附件,且智能体的 LLM 支持图片或文档输入
工具中的附件不支持 — 工具仅处理文本

设置

该集成提供两种连接方式:

  • OAuth — 将共享的 ElevenLabs Slack 应用安装到工作区。一个 Slack 工作区对应一个 ElevenLabs 连接。设置最快,无需管理 Slack 应用。
  • 使用自己的应用 — 使用你创建并拥有的 Slack 应用进行连接。如果需要让机器人以你的品牌显示,或工作区策略要求由管理员安装应用,请使用此方式。

选项 A — OAuth

安装应用的用户必须有权向目标 Slack 工作区添加应用。

1

打开集成页面

在 ElevenLabs 控制台中,前往 Agents > Integrations,然后选择 Slack。

2

点击 Connect

选择 OAuth 凭据并点击 Connect。系统会将你重定向到 Slack,以选择要安装 ElevenLabs 应用的工作区并批准所请求的权限范围。

3

完成重定向

批准后,Slack 会将你重定向回 ElevenLabs,并创建连接。系统会自动记录 Slack 工作区 ID,并在配置触发器时使用。

选项 B — 使用自己的 Slack 应用

如果希望机器人以自己的应用名称和图标显示,或工作区要求由管理员审核并安装应用,请使用此选项。

1

创建 Slack 应用

前往 Slack API: Your Apps,点击 Create New App > From scratch。为应用命名,并选择要安装到的 Slack 工作区。

2

添加机器人权限范围

打开 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- 开头)。

3

复制签名密钥

打开 Basic Information > App Credentials,然后复制 Signing Secret。

4

在 ElevenLabs 中创建连接

在 ElevenLabs 控制台中,前往 Integrations,点击 Add integration 按钮并选择 Slack。选择 Bring your own app 凭据。粘贴机器人令牌和签名密钥,然后保存。ElevenLabs 会根据 Slack 验证令牌并记录工作区 ID。

创建连接后,连接页面会显示两个基于 Slack 应用身份生成的 Webhook URL。从同一 ElevenLabs 工作区重新连接同一个 Slack 应用,始终会生成相同的 URL,因此你可以删除并重新创建连接,无需再次更新 Slack 应用配置。请保持该页面打开,以完成后续步骤。

5

配置事件订阅

在 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 事件,导致智能体回复两次。

6

配置交互功能

打开 Interactivity & Shortcuts,启用交互功能,并将 ElevenLabs 连接页面中的 Interactivity URL 粘贴到 Request URL。

7

如有提示,请重新安装

如果 Slack 在更改权限范围或事件后提示你重新安装应用,请执行重新安装以应用更改。

一个 Slack 工作区只能通过共享的 ElevenLabs OAuth 应用连接一次。通过其他 ElevenLabs 工作区重新安装时,会返回 duplicate Slack workspace 错误 — 请先移除现有连接。使用自己应用的连接彼此独立,不会冲突。

OAuth 权限范围

ElevenLabs Slack 应用会请求以下权限范围:

权限范围用途
app_mentions:read接收使用 @ 提及机器人的消息。
channels:history读取机器人所在公开频道中的消息。
channels:join创建触发器时允许机器人自动加入公开频道。
channels:manage执行频道管理操作。
chat:write在频道和线程中发布消息。
files:read下载消息附件,以便智能体读取图片和 PDF。
groups:history读取机器人所在私密频道中的消息。
groups:write在私密频道中操作。
im:history读取与机器人私信频道中的消息。
reactions:write添加和移除回应表情,用于消息和智能体工具的思考状态指示器。

智能体工具

向智能体添加 Slack 工具后,可使用以下内置工具:

工具说明
slack_add_reaction添加 emoji 回应。默认情况下,频道和消息 ts 会从 integration__slack_channel_id 和 integration__slack_trigger_message_ts 填充;模型仅选择 emoji 短代码(不含冒号),例如 thumbsup。在非 Slack 触发的对话中,除非你设置这些变量,否则它们不存在——如果模型必须显式传递频道和 ts,请调整工具架构。
slack_remove_reaction移除 emoji 回应(默认值与添加操作相同)。根据 Slack 规定,调用机器人只能移除自己最初添加的回应;请参阅 reactions.remove。

移除连接

从 Integrations 页面移除连接会从 Slack 工作区卸载 ElevenLabs Slack 应用。移除后,机器人将不再存在于任何频道中。

对于使用自己应用的连接,ElevenLabs 无法卸载不属于自己的应用 — 移除连接只会删除本地映射。要从 Slack 工作区完全移除机器人,请在 Slack 管理设置中卸载应用。

配置触发器

该集成提供一个触发器:SlackMessage。当机器人在已配置频道中看到新的用户消息时触发。

1

添加 SlackMessage 触发器

在智能体配置页面中,添加新触发器并选择 SlackMessage。

2

选择智能体和频道

配置触发器字段:

  • Agent:处理对话的智能体。
  • Channel ID:Slack 频道 ID,例如 C0123456789。界面提供深层链接,可在 Slack 中打开该频道。
3

保存触发器

保存触发器。ElevenLabs 会自动邀请机器人加入公开频道。之后移除触发器会使机器人退出该频道。

Slack 不允许应用自动加入私密频道。对于私密频道,请在保存触发器后在该频道中运行 /invite @Eleven,以便机器人能够查看消息。

每个 (Slack workspace, channel) 组合只允许一个触发器。请编辑现有触发器,而不是创建重复项。

配置私信触发器

SlackDirectMessage 触发器可让任何 Slack 用户通过向机器人发送私信来与智能体聊天。与频道触发器不同,无需 @ 提及 — 用户在与机器人的私信中发送的每条消息都会被处理。

1

添加 SlackDirectMessage 触发器

在智能体配置页面中,添加新触发器并选择 SlackDirectMessage。

2

选择智能体

选择处理私信对话的 Agent。
3

保存触发器

保存触发器。现在,工作区中的任何 Slack 用户都可以与机器人打开私信并开始对话。

对于 BYO 应用,请确保已订阅 message.im 机器人事件并添加 im:history 机器人权限范围。添加后如有提示,请重新安装应用。

每个 Slack 连接只允许一个私信触发器。要更改智能体,请编辑现有触发器。

在 Slack 中与机器人交谈

触发器启用且机器人已加入频道后,可在线程中开始对话。如何继续线程取决于 Slack 应用的事件订阅(OAuth 使用仅提及行为)。

仅提及(app_mention)

1

通过提及开启线程

在频道中提及机器人以开启新线程,例如 @Eleven what's the status of order 1234?。机器人会在线程中回复该消息。

2

继续线程

对希望机器人回复的每条消息都再次提及机器人,包括同一线程中的后续消息。未提及的消息会被忽略。

所有消息(message.channels、message.groups)

1

开启线程

在机器人所在频道中发送任意消息。机器人会在线程中回复该消息。无需使用 @ 提及机器人。

2

继续线程

在同一线程中回复,无需提及机器人。线程中的每条新消息都会被处理。

机器人生成回复时,会向触发消息的用户添加 :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 运行时,提示词和工具中可使用以下动态变量:

变量说明
integration__slack_channel_idSlack 频道 ID。
integration__slack_thread_tsSlack 线程时间戳。
integration__slack_user_idSlack 发送者 ID。对于没有用户的旧版机器人事件,这可能是机器人 ID。
integration__slack_team_idSlack 工作区(团队)ID。
integration__slack_connection_idElevenLabs 集成连接 ID。
integration__slack_trigger_message_ts触发此智能体轮次消息的 Slack ts(频道中的唯一消息 ID)。

有关如何在提示词和工具调用中引用这些变量,请参阅动态变量。

故障排除

文件附件无法使用

当用户在 Slack 中附加图片或 PDF,但智能体未处理(或表现得像未发送文件)时,请按以下步骤检查。

1

确认 Slack 应用具有 files:read

机器人需要 files:read 机器人权限范围才能从 Slack 下载附件。

  • 使用自己的应用 — 在 Slack API: Your Apps 中打开应用,前往 OAuth & Permissions,并确认 Bot Token Scopes 下列出了 files:read。如果最近刚添加该权限,请将应用重新安装到工作区,以便令牌获取新权限范围。
2

确认智能体模型支持文件输入

仅当智能体的 LLM 支持多模态输入时才会转发文件附件 — 具体取决于文件类型,需支持图片输入和/或文档(PDF)输入。在智能体配置中,打开 Agent 标签页并检查所选模型。如果模型不支持该附件类型,请切换到支持的模型。

3

在智能体设置中启用 Allow file attachments

在智能体配置页面中,打开 Settings > Advanced。在 Multimodal input 下,开启 Allow file attachments。保存智能体。若未启用此设置,即使 Slack 应用和模型支持文件,也会忽略 Slack 附件。

实用链接