Salesforce
将 ElevenLabs 智能体与 Salesforce CRM 连接
概述
将 ElevenLabs AI 智能体与 Salesforce CRM 连接,以访问客户数据、管理潜在客户并创建商机。此集成让智能体可以检索现有客户记录、创建新的潜在客户和联系人,并在对话期间查询 Salesforce 对象。
功能
设置
此集成使用 Salesforce OAuth 2.0 Client Credentials 进行身份验证。你需要在 Salesforce 中创建一个外部客户端应用。
创建外部客户端应用
- 以管理员身份登录 Salesforce 组织
- 前往 Setup > External Client App Manager
- 点击 New External Client App
- 填写 External Client App Name(例如
ElevenLabs Agents)、API Name 和 Contact Email - 在 API (Enable OAuth Settings) 下:
- 勾选 Enable OAuth 和 Enable Client Credentials Flow
- Callback URL:
https://api.elevenlabs.io/oauth/callback - OAuth Start URL:
https://api.elevenlabs.io/oauth/start - Selected OAuth Scopes:添加以下范围:
- Full access (full)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- Manage user data via api
- 点击 Create
- 在应用页面中打开 Settings 标签页,前往 OAuth Settings,然后点击 Consumer Key and Secret
- 复制 Consumer Key 和 Consumer Secret——身份验证时需要用到它们
配置 OAuth Client Credentials 流程
Client Credentials Flow 建议用于无需用户交互的服务器到服务器集成。请确保 Salesforce 管理员已启用此流程。
- 在外部客户端应用中点击 Edit
- 勾选 Enable Client Credentials Flow——将显示 Run As 字段
- 将 Run As 设置为管理员用户或专用服务账户——这决定所有 API 调用的权限
- 将 Permitted Users 设置为 Admin approved users are pre-authorized
- 点击 Save
Run As 用户决定所有 API 调用的权限。请选择拥有 System Administrator 配置文件,或拥有 API 访问权限及智能体所需对象(Contact、Lead、Account 等)访问权限的自定义配置文件的用户。必须在用户记录中勾选 API Enabled 权限。
查找 Salesforce 域名
API 调用需要 Salesforce 域名。
方法 1:查看当前 URL
登录 Salesforce 后,查看浏览器地址栏:
- Lightning Experience:
https://acme.lightning.force.com/ - My Domain:
https://acme.my.salesforce.com/
方法 2:Setup > Company Information
前往 Setup > Company Information,查找 My Domain URL 或组织信息。
方法 3:Setup > Domain Management
前往 Setup > Domain Management > My Domain。域名会显示在页面顶部。
常见域名格式:
https://acme.my.salesforce.com(My Domain)https://acme.lightning.force.com(Lightning)https://acme.develop.my.salesforce.com(Sandbox)
演示视频
此演示使用旧版 webhook 工具。如果你使用原生 Salesforce 集成,工具会自动配置,无需手动设置 webhook。
工作原理
概览
详细系统提示词
可使用 Workplace Auth Connections 管理工具授权,它会自动处理令牌刷新。工具返回易读的名称和描述,而非技术 ID,从而提升对话质量。
工具配置
提供 3 个 webhook 工具:salesforce_search_records、salesforce_get_record 和 salesforce_create_record。请使用 Workplace Auth Connection 为每个工具配置授权。
授权 - Workplace OAuth2 连接
前往 Workplace Auth Connections
在 ElevenLabs 控制台中,前往 Agents > Workplace Auth Connections,然后点击 Add Auth。
配置 Salesforce 连接
为 Salesforce 集成填写以下字段:
Connection Name:Salesforce CRM
Client ID
- 外部客户端应用中的 Consumer Key
- 示例:
3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...
Client Secret
- 外部客户端应用中的 Consumer Secret
- 示例:
1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...
Token URL
- Salesforce 域名的 OAuth 令牌端点
- 格式:
https://{domain}.my.salesforce.com/services/oauth2/token - 示例:
https://acme.my.salesforce.com/services/oauth2/token
Scopes(可选)
- 用于 Salesforce API 访问的 OAuth 范围
- 建议:
full, api, refresh_token - 留空以使用外部客户端应用中的默认范围
Extra Parameters (JSON)
- 特定于当前设置的其他 OAuth 参数
- Client Credentials 流程示例:
Workplace Auth Connections 会自动处理令牌刷新,因此无需手动管理令牌。
Webhook 工具配置
在每个工具的 Authentication 部分添加 Workplace Auth Connection(OAuth2)。使用下方标签页查看各工具的配置。
salesforce_search_records
salesforce_get_record
salesforce_create_record
名称: salesforce_search_records
说明: 使用 SOQL 查询搜索 Salesforce 中的现有记录。始终返回包含名称在内的易读信息,而不只是 ID。
方法: GET
URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}
请求头:
- Content-Type:
application/json
查询参数:
- q: SOQL 查询字符串(例如 “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)
工具 JSON:
常用 Salesforce 对象
常用 SOQL 查询
自定义智能体系统提示词时,可将以下 SOQL 查询作为起点。所有查询都会返回易读信息,而非技术 ID:
按电子邮件搜索联系人
按电子邮件或电话号码搜索潜在客户
按名称搜索账户
搜索近期商机
按账户搜索商机
集成测试
设置外部客户端应用并连接集成后,请在部署到生产环境前进行测试:
- 搜索功能:让智能体搜索现有联系人。
- 创建记录:让智能体创建新的潜在客户或联系人。
- 数据检索:确认智能体可以获取详细的客户信息。
案例评论触发器:Email-to-Case 的电子邮件回复
如果你已启用 Salesforce Case Comment 触发器(智能体自动回复 Service Cloud Cases),对于至少包含一封传入电子邮件的案例,回复会作为真实的同一会话电子邮件发送给客户,而不只是内部案例评论。这取决于案例是否有传入电子邮件,而非案例的 Origin 选项列表值。因此,即使组织使用了 “Email - Returns” 这类自定义 Origin 值,而非字面值 “Email”,也能正常工作。没有传入电子邮件的案例仍会按原样发布为公开案例评论。客户原始电子邮件中抄送的所有地址也会自动抄送到回复中,这与人工客服点击“回复全部”的行为一致——但组织的 Email-to-Case 路由地址除外。这些地址会特意从抄送中排除,以免回复被 Email-to-Case 再次接收,并触发智能体处理自己的消息。
发送电子邮件回复需要进行一些额外设置,而不仅仅是案例评论所需的设置:
- Run As 用户的 Profile 或 Permission Set 必须启用 Send Email 系统权限(
Setup>Users>Profiles,位于 System Permissions 下),此外还需要集成已要求的 API Enabled 权限。 - 组织的 Email Deliverability 设置(
Setup>Email>Deliverability)必须允许外发电子邮件——Sandbox 默认使用受限设置,会静默阻止外发电子邮件。 - 如果希望回复从支持别名而非 Run As 用户的邮箱发送,请将触发器上的 Org-Wide Email Address Id 字段设为 Organization-Wide Email Address 的 Id(
Setup>Organization-Wide Addresses> 点击该地址 > 从 URL 中复制 Id)。留空则从 Run As 用户自己的地址发送。 - 将触发器上的 Email-to-Case Routing Address(es) 字段设置为组织的 Email-to-Case 地址(如果有多个,请用逗号分隔,
Setup>Email-to-Case)。否则,集成会尝试从客户电子邮件(其To地址)猜测路由地址;如果路由地址仅被抄送而非主要收件人,则无法识别。在这种情况下将其抄送到回复中,会再次触发智能体处理自己的消息。
如果客户的组织未完成这些配置,电子邮件发送失败时会回退为发布公开案例评论,因此回复不会被静默丢弃——但在完成上述设置前,客户不会通过电子邮件收到回复。
安全注意事项
- 所有 API 调用均使用 HTTPS 端点。
- 确保在 Salesforce 中正确配置字段级安全性。
- Run As 用户的权限决定集成可访问的数据范围——请合理限制权限。
- 定期审核 API 访问和使用情况。