将 Salesforce Voice 与 Twilio Flex 集成

此语音集成利用 Twilio Open CTI 集成Twilio Flex 呼叫中心引入您的 Salesforce 实例。

Agent Assist 使用 Twilio Flex 通话中的媒体流,在 Salesforce Lightning 服务控制台中为客服提供建议。

准备工作

如需将 Agent Assist 界面模块与 Salesforce 集成,您需要能够访问以下资源:

  • Node.js Google 已对此集成进行测试,并建议使用 Node.js 18.20.4。Node.js 20.18.0 存在已知的兼容性问题。如需了解如何安装特定版本的 Node.js,请参阅 nvm
  • Salesforce CLI。使用以下终端命令进行安装:(sudo) npm install -g @salesforce/cli
  • Gcloud CLI 按照说明安装 gcloud 命令,并使用以下代码进行身份验证:gcloud auth login
  • Salesforce 界面
    1. 在您的实例网址或 login.salesforce.com 中登录,并注意以下事项:
      • 您的 Salesforce“我的网域网址”。如需查找此菜单,请依次前往菜单栏 >“设置”菜单,然后点击设置。输入“我的网域”进行快速查找搜索。网域名的格式如下:MY-DOMAIN-NAME.develop.my.salesforce.com。
      • 您的 Salesforce 组织 ID。如需查找此菜单,请依次前往菜单栏 >“设置”菜单,然后点击设置。输入 Quick Find 搜索“公司信息”。
  • Agent Assist 集成后端
    1. 按照说明设置集成。
    2. 在运行部署脚本之前,请使用 deploy.sh 或在项目根目录的 .env 文件中配置以下环境变量:
      • AUTH_OPTION:将此项设置为 SalesforceLWC
      • SALESFORCE_DOMAIN:域名,例如:YOUR_SUBDOMAIN.develop.lightning.force.com。您已在 Salesforce 界面前提条件中记下此值。请注意,您不应添加 https://
      • SALESFORCE_ORGANIZATION_ID:您已在 Salesforce 界面前提条件中记下此值。

第 1 步:设置 Twilio Flex

在此集成中,Twilio Flex 充当软电话。您可以登录 Twilio 控制台来设置 Flex 账号。访问 Twilio 设置页面,详细了解如何创建 Flex 账号。

安装 SIPREC 连接器插件

借助 SIPREC 连接器插件,您的 Twilio Flex 账号可以创建语音通话媒体流的 SIPREC 分叉,并将其发送给 Agent Assist。请按照以下步骤安装 SIPREC 连接器插件。

  1. 依次前往 Twilio 首页 > Marketplace > 目录 > Twilio > Siprec 连接器
  2. 依次点击安装 > 条款及条件确认复选框 > 安装
  3. 配置标签页上,按如下所示配置插件:
    • 唯一名称SipRec1
    • 会话记录服务器
      sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
    • 请与您的 Google 代表合作,使用电话集成概览文档来配置 GTP 号码,该文档详细介绍了相关流程。您可以忽略 SBC 配置和验证步骤,因为这些步骤已针对 Twilio Siprec 连接器完成。
  4. 依次前往 Twilio 主页 > Functions and Assets
    • 如果侧边栏中未显示函数和资源,请从探索产品中将其固定。
  5. 点击创建服务
  6. 将新服务命名为 ui-connector-auth
  7. 在随即显示的编辑器中,依次点击添加 + > 添加函数
  8. 将函数命名为 conversation-name
  9. 点击 ,然后将函数公开范围更改为公开
  10. 将 GitHub 代码库中 ui-connector-auth.js 的全部内容复制并粘贴到编辑器中。
  11. 点击保存
  12. 点击全部部署

使用 Flex Studio 配置 IVR

IVR 包含使用 Twilio Studio 配置程序化调用流程,以将媒体流的 SIPREC 分叉发送到 Agent Assist。它还会通过 HTTP POST 请求与 Agent Assist 分享手机号码和对话 ID。请按照以下步骤使用 Flex Studio 配置 IVR。

  1. 前往 Twilio 控制台
  2. 依次点击开发 > 电话号码 > 管理 > 有效号码。表格中应有一行包含为您的 Flex 账号预配的默认 Twilio 号码。
  3. Voice - Studio Workflow 部分中,点击 Voice IVR
  4. 发出 HTTP 请求 widget 拖到流程中。
  5. 断开来电SendCallToAgent widget 的输入之间的连接。
  6. 来电连接到发出 HTTP 请求 widget 的输入。
  7. 使用以下详细信息配置发出 HTTP 请求 widget:
    • Widget 名称register_twilio
    • 请求方法POST
    • 请求网址<your-ui-connector-cloud-run-url>.run.app/register-app
    • 内容类型:application/json
    • 请求正文
      {
      "accountSid": "<yourTwilioAccountSid>",
      "authToken": "<yourTwilioAccountAuthToken>"
      }
  8. 运行函数 widget 拖动到流程中。
  9. register_twilio widget 的 SuccessFail 输出连接到 Run Function widget 的输入。
  10. 创建具有以下详细信息的 widget:
    • Widget 名称conversation_name
    • 服务ui-connector-auth
    • 环境ui
    • 函数conversation-name
    • 函数形参
      • token
        {{ widgets.register_twilio.parsed.token }}
      • 端点<your-ui-connector-cloud-run-url>.run.app/conversation-name
      • phone
        {{ trigger.call.From | replace_first:'+','' }}
      • conversationName
        projects/<project>/locations/<location>/conversations/TW-{{ trigger.call.From | replace_first:'+','' }}-{{ trigger.call.CallSid }}
  11. 将侧边栏中的 Fork Stream widget 拖动到流程中。
  12. Make HTTP Request widget 的 Success 和 Fail 输出连接到 Fork Stream widget 的输入。
  13. 分叉流 widget 的下一个节点连接到 SendCallToAgent widget。
  14. 按如下方式配置 Fork Stream widget:

    • Stream Action: Start
    • Stream Type(信息流类型):Siprec
    • 连接器名称Siprec1
    • 课程:两种课程
    • 流参数

      • conversation
      • projects/<gcp-project-id>/conversations/TW-{{trigger.call.From | replace_first:'+','' }}-{{trigger.call.CallSid}}
        
  15. 依次点击保存 > 发布

账号详细信息

请按照此步骤收集您的 Twilio Flex 账号详细信息。您需要此信息才能稍后在 Salesforce 中配置 Flex CTI。

  1. 依次前往 Twilio 首页 > 账号信息中心,然后记下以下信息:
    • Account SID
    • 我的 Twilio 手机号码

第 2 步:设置开发项目

如需开始集成 Agent Assist 界面模块,请按以下步骤操作。

  1. 运行以下代码以克隆 Agent Assist 集成代码库并打开您的项目:
    git clone https://github.com/GoogleCloudPlatform/agent-assist-integrations
    cd salesforce/aa-lwc
  2. 运行以下命令可下载 界面模块 JavaScript 文件,您稍后会将其部署为静态资源。Salesforce 要求静态资源加载第三方 JS。
    npm run generate-static-resources
    npm install

第 3 步:设置 Salesforce 环境

您可以在特定环境(例如生产环境或开发环境)中集成 Agent Assist 界面模块。Salesforce 将这些环境称为“组织 (org)”

使用 Salesforce CLI 配置组织

按照以下步骤操作,使用 Salesforce CLI 配置组织以实现 Agent Assist 集成。

  1. 运行以下代码,然后使用您通常使用的 Salesforce 登录详细信息对 CLI 进行身份验证。
    npm run login
  2. 运行以下代码,将 LWC 部署到组织。
    npm run deploy

第 4 步:创建关联的应用

Salesforce Lightning Web 组件使用客户端凭据 OAuth 2.0 流程对您进行身份验证。关联的应用(应用)启用客户端凭据流程。使用应用的使用方密钥和使用方密钥来配置 LWC,以便通过 Salesforce 对用户进行身份验证。

配置基本设置

  1. 依次前往菜单栏 >“设置”菜单,然后点击设置。在快速查找中搜索“应用管理器”。
  2. 依次点击新建关联的应用 > 创建关联的应用 > 继续,然后输入以下信息。
    • 关联的应用名称lwc auth
    • API 名称lwc_auth
    • 联系电子邮件地址your_email@example.com
    • 启用 OAuth 设置checked
    • 回调网址https://login.salesforce.com/services/oauth2/callback
    • Selected OAuth Scopes:访问身份网址服务
    • 启用客户端凭据流程checked
  3. 点击保存

如需详细了解关联的应用,请参阅以下 Salesforce 资源。

设置运行授权和凭据

  1. 依次前往菜单栏 >“设置”菜单,然后点击设置
  2. 快速查找中搜索“管理关联的应用”。
  3. 依次点击关联应用的名称 > 修改
    • 前往客户端凭据流
    • 对于 Run As,点击放大镜,然后选择您的用户名。
    • 点击保存
  4. 依次前往菜单栏 >“设置”菜单,然后点击设置
  5. 快速查找中搜索“应用管理器”。
  6. 找到 lwc auth,然后点击相应图标。
    • 依次点击查看 > 管理使用方详细信息
    • 输入发送到您电子邮件地址的验证码。
    • 使用方密钥使用方 Secret 复制到安全的位置,您需要在后续步骤中使用这些信息。

制定 CORS 和内容安全政策

  1. 依次前往菜单栏 >“设置”菜单,然后点击设置
  2. 快速查找中搜索“CORS”,然后点击修改
    • 请参阅为 OAuth 端点启用 CORS
    • 点击保存
  3. 依次前往菜单栏 >“设置”菜单,然后点击设置
  4. 在“快速查找”中搜索“可信网址”,然后点击“新建可信网址”。
  5. 输入 API 名称ui_connector
    • 输入您使用 Agent Assist 集成后端部署的界面连接器 Cloud Run 服务端点的 网址。您可以在 Cloud Run 控制台中找到此网址。例如:https://UI_CONNECTOR_SUBDOMAIN.GCP-REGION.run.app
    • 勾选 CSP 指令中的所有复选框。
    • 点击保存并新建
  6. 输入 API 名称ui_connector_wss
    • 输入您使用 Agent Assist 集成后端部署的界面连接器 Cloud Run 服务端点的 网址。您可以在 Cloud Run 控制台中找到此网址。将协议更改为 wss,以用于 WebSocket 流量。例如:wss://UI_CONNECTOR_SUBDOMAIN.GCP-REGION.run.app
    • 勾选 CSP 指令中的所有复选框。
    • 点击保存并新建
  7. 输入 API 名称salesforce_domain
    • 输入您的 Salesforce 网域的 网址,格式如下:https://YOUR_SUBDOMAIN.my.salesforce.com
    • 勾选 CSP 指令中的所有复选框。
    • 点击保存

第 5 步:安装 Twilio Flex CTI 插件

Salesforce 提供 Salesforce Open CTI,以便将第三方软电话与您的 Salesforce 实例集成。

Twilio Flex CTI 使用 Salesforce Open CTI,让您可以在 Salesforce 实例中直接使用 Flex。按照 Twilio 的说明在 Salesforce 实例中设置 Twilio Flex CTI。

第 6 步:安装 Salesforce Lightning Web 组件

按照以下步骤操作,使用 Lightning Experience 编辑器将 Salesforce Lightning Web 组件添加到联系人页面,以便在有新来电时打开 Twilio Flex CTI。

  1. 前往服务控制台,然后选择联系人
  2. 选择相应联系人记录
  3. 依次点击“设置”菜单 > 修改页面
  4. 依次点击模板 > 更改
    • 选择标题两个等宽区域
    • 点击下一步
    • 将每个区域映射到新区域。
    • 点击完成
  5. 组件侧边栏中,将 agentAssistContainerModule 移至侧边栏。注意:npm deploy 命令提供了此组件。
  6. 点击您在上一步中放置的组件,然后填写表单字段,如下所示,以添加配置详细信息。
    • 端点集成后端的界面连接器的网址。例如,Cloud Run 控制台中的网址,如:https://UI-CONNECTOR-ENDPOINT.GCP-REGION.run.app
    • 功能:要包含的 Agent Assist 功能。必须在对话配置文件中启用这些功能。部分可用功能包括 CONVERSATION_SUMMARIZATIONKNOWLEDGE_ASSIST_V2AGENT_COACHING。请注意,SMART_REPLY 等某些功能不适用于 voice-twilio
    • 渠道:表示集成是针对语音的。
    • channelType:表示语音集成类型为 Twilio。
    • conversationProfileAgent Assist 对话配置文件的资源名称。例如 projects/GCP-PROJECT-ID/locations/GCP-REGION/conversationProfiles/CONVERSATION-PROFILE-ID
    • consumerKey:第 3 步中的关联应用使用方密钥。
    • consumerSecret:第 3 步中的关联应用使用方密文。

第 7 步:测试集成

您可以通过拨打 Salesforce 呼叫中心的测试电话来测试语音集成。

  1. 从 Salesforce 服务控制台登录 Twilio Flex。
  2. 拨打您的 Twilio Flex 号码。您在第 1 步中记下了此信息。
  3. 在 Salesforce 服务控制台中,接听来电。屏幕应打开来电号码的新联系人页面或现有联系人页面。
  4. 如果这是新联系人页面,请保存相应联系人。当“联系人”页面加载时,Salesforce Lightning Web 组件应在边栏中加载。
  5. 测试对话双方,确保 Agent Assist 功能按您配置的方式运行。