Salesforce 与 Twilio Flex 的语音集成

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

Agent Assist 使用 Twilio Flex 通话中的媒体流,在 Salesforce Lightning Service Console 中为客服人员提供建议。

准备工作

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

  • Node.js

    按照建议的安装说明操作,完成操作系统安装。

  • Salesforce CLI

    按照建议的安装说明操作,完成操作系统安装。

  • Google Cloud CLI

    按照说明安装 gcloud 命令,并使用 gcloud auth login 进行身份验证。

  • Salesforce

    1. 在实例网址或 Salesforce 登录页面中登录,并注意以下事项:
    2. 您的 Salesforce “我的网域”网址。请按以下步骤查找我的网域网址
      1. 前往菜单栏 > 设置菜单。
      2. 点击 Setup(设置)。
      3. 快速查找框中,输入我的网域。域名采用以下格式:MY-DOMAIN-NAME.develop.my.salesforce.com
    3. 您的 Salesforce 组织 ID。请按以下步骤查找组织 ID:
      1. 前往菜单栏 > 设置菜单。
      2. 点击 Setup(设置)。
      3. 快速查找框中,输入公司信息。 注意:这些集成步骤仅在 Salesforce Developer Edition 中经过测试。如果您使用其他版本,功能许可和 Salesforce 界面可能会有所不同。
  • Agent Assist 集成后端

    1. 按照说明设置集成。
    2. 在运行部署脚本之前,请使用 deploy.sh 或在项目根目录的 .env 文件中配置以下环境变量:
    3. AUTH_OPTION:将此项设置为 SalesforceLWC
    4. SALESFORCE_DOMAIN:与 YOUR_SUBDOMAIN.develop.lightning.force.com 类似的域名。您已在 Salesforce 前提条件中记下此值。请注意,您不应添加 https://
    5. SALESFORCE_ORGANIZATION_ID:您已在 Salesforce 前提条件中记下此值。
    6. APP_AUTH_OPTION:将此项设置为 Twilio
    7. TWILIO_ACCOUNT_SID:将此项设置为您的 Twilio 账号 SID

第 1 步:设置 Twilio Flex

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

安装 SIPREC 连接器插件

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

  1. 依次前往 Twilio 主页 > Marketplace > 目录 > Twilio > Siprec 连接器
  2. 依次点击安装 > 条款及条件确认复选框 > 安装
  3. 配置标签页上,按如下所示配置插件:
    1. 唯一名称SipRec1
    2. 会话记录服务器
      sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
    3. 如需详细了解如何预配 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:
    • 微件名称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:
    • 微件名称conversation_name
    • 服务ui-connector-auth
    • 环境ui
    • 函数conversation-name
    • 函数形参
      • token
        {{ widgets.register_twilio.parsed.token }}
      • 端点<your-ui-connector-cloud-run-url>.run.app/conversation-name
      • 手机
        {{ 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 首页 > 账号信息中心,然后记下以下信息:
    • 账号 SID
    • 我的 Twilio 手机号码

第 2 步:设置开发项目

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

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

第 3 步:设置 Salesforce 环境

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

使用 Salesforce CLI 配置组织

按照以下步骤操作,使用 Salesforce CLI 配置组织以实现智能助理集成。

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

第 4 步:创建外部客户端应用

Salesforce LWC 使用客户端凭据 OAuth 2.0 流程对您进行身份验证。外部客户端应用可启用客户端凭证流程。使用应用的使用方密钥和使用方密钥来配置 Salesforce LWC,以便通过 Salesforce 验证用户身份。

  1. 依次前往菜单栏 > 设置菜单,然后点击设置。在快速查找框中,输入外部客户端应用管理器
    1. 依次点击外部客户端应用管理器 > 新建外部客户端应用 > 创建,然后输入以下信息。
    2. 外部客户端应用名称lwc auth
    3. API 名称lwc_auth
    4. 联系电子邮件地址your_email@example.com
    5. API (Enable OAuth Settings) > Enable OAuth:已选中
    6. API (Enable OAuth Settings) > Callback 网址: https://login.salesforce.com/services/oauth2/callback
    7. API (Enable OAuth Settings) > Selected OAuth Scopes:访问身份网址服务
    8. API (Enable OAuth Settings) > Enable Client Credentials Flow:已选择
    9. 点击创建
  2. 依次前往菜单栏 > 设置菜单,然后点击设置。在快速查找框中,输入外部客户端应用管理器
    1. 依次点击外部客户端应用的名称 > 修改
    2. 依次前往 OAuth 政策 > OAuth 流程和外部客户端应用增强
    3. 确保选中启用客户端凭证流程
    4. 以此身份运行字段中,输入您的登录用户名。
    5. 点击保存
  3. 依次前往菜单栏 > 设置菜单,然后点击设置。在快速查找框中,输入外部客户端应用管理器
    1. 依次点击外部客户端应用的名称 > 修改
    2. 依次前往 OAuth 设置 > 应用设置 > Consumer Key 和 Secret
    3. 输入发送到您电子邮件地址的验证码。
    4. 将使用方密钥和使用方密钥复制到安全的地方。您将在后续步骤中用到这些信息。

建立 CORS 和内容安全政策

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

第 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. 依次点击模板 > 更改
    1. 选择标题两个等分区域
    2. 点击下一步
    3. 将每个区域映射到新区域。
    4. 点击完成
  5. 组件侧边栏中,将 agentAssistContainerModule 移入侧边栏。注意:npm deploy 命令提供了此组件。
  6. 点击您在上一步中放置的组件,然后填写表单字段,如下所示,以添加配置详细信息。
    • 端点集成后端的界面连接器的网址。例如,Cloud Run 控制台中的网址,如:https://<var>UI_CONNECTOR_ENDPOINT</var>.<var>GCP_REGION</var>.run.app
    • 功能Agent Assist 功能。必须在对话配置文件中启用这些功能。一些可用的功能包括 CONVERSATION_SUMMARIZATIONKNOWLEDGE_ASSIST_V2AGENT_COACHING。请注意,某些功能(例如 SMART_REPLY)不适用于 voice
    • 渠道:表示集成适用于 voice
    • 平台:指明平台为 twilio
    • conversationProfileAgent Assist 对话配置文件资源名称。例如 projects/<var>GCP_PROJECT_ID</var>/locations/<var>GCP_REGION</var>/conversationProfiles/<var>CONVERSATION_PROFILE_ID</var>
    • consumerKey:第 3 步中的外部客户端使用方密钥。
    • consumerSecret:第 3 步中的外部客户端应用使用方密钥。

第 7 步:测试集成

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

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