Agent Assist para integração de voz do Salesforce com o Twilio Flex

A integração do Twilio com o Salesforce Service Cloud Voice (SCV) permite que os representantes do Salesforce façam e recebam chamadas no Salesforce usando os recursos da plataforma Twilio.

Antes de começar

Para integrar a voz do Salesforce ao Twilio Flex, você precisa de acesso aos seguintes recursos:

Etapa 1: configurar o Salesforce Service Cloud Voice

Siga as instruções no guia do Twilio para configurar o SCV do Salesforce com o Twilio como um provedor de telefonia parceiro.

Etapa 2: integrar o Agent Assist ao Twilio Flex

Siga estas etapas para integrar o Agent Assist ao Twilio Flex.

Instalar o complemento do conector SIPREC

O complemento do conector SIPREC permite que sua conta do Twilio Flex faça ramificações SIPREC de streams de mídia de ligações para o Agent Assist. Siga estas etapas para instalar o complemento do conector SIPREC.

  1. Acesse a página inicial do Twilio e digite Marketplace na caixa de pesquisa.

    Página inicial do Twilio

  2. Clique em Catálogo > Conectores de stream > Conector SIPREC > Instalar > Adicionar instância.

  3. Acesse a guia Configurar e configure o plug-in com os seguintes detalhes:

    • Nome exclusivo: SipRec1
    • Servidor de gravação de sessão: sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
  4. Clique em Salvar.

Configurar funções do Twilio

Siga estas etapas para configurar duas funções do Twilio, conversation-name e wrap-up.

  1. Acesse o console do Twilio e digite Function na caixa de pesquisa.
  2. Clique em Functions > Create service.
  3. Nomeie o novo serviço ui-connector-auth e clique em Next.
  4. Clique em Add + > Add Function.

Siga estas etapas para criar a função conversation-name.

  1. Nomeie a função conversation-name.
  2. Clique no cadeado e mude a visibilidade da função para Público.
  3. Copie o código ui-connector-auth.js e cole-o no editor.
  4. Clique em Salvar.

É possível automatizar o processo de conclusão de chamadas com uma wrap-up função e EventCallbackUrl. Isso elimina a necessidade de fechar manualmente as chamadas no Salesforce e no Twilio Flex. Siga estas etapas para criar uma função wrap-up para receber eventos pelo EventCallbackUrl.

  1. Acesse o console do Twilio > barra de pesquisa e digite Taskrouter Workspace.
  2. Selecione Taskrouter workspaces.
  3. Anote o SID na coluna do espaço de trabalho.
  4. Acesse o editor e nomeie a função wrap-up.
  5. Adicione o código a seguir ao editor.

    /**
    * @desc A Twilio Function that wraps up a conversation automatically to avoid agents being stuck
    * in a wrap up state while in Salesforce's Service Console.
    */
    exports.handler = function(context, event, callback) {
     const response = new Twilio.Response();
     const client = context.getTwilioClient();
    
     /**
      * @TODO Add your workspaceSid to this variable.
      */
     const workspaceSid = ""
    
     response.appendHeader('Content-Type', 'application/json');
    
     if (!event.EventType) {
       response.setBody({});
        return callback(null, response);
      }
    
      /**
       * This event is dispatched with the Event Callback Url, which is assigned in a Taskrouter Workspace's
       * Settings.
       */
      if (event.EventType === 'task.wrapup') {
       client.taskrouter.v1.workspaces(workspaceSid)
          .tasks(event.TaskSid)
          .update({
           assignmentStatus: 'completed',
           reason: 'Auto-completed via Function'
          })
          .then(() => {
            response.setBody({ status: "completed" });
            callback(null, response);
          })
          .catch(err => {
           response.setStatusCode(500);
           response.setBody({ error: err.message });
           callback(null, response);
         });
      } else {
       response.setBody({ status: "ignored" });
        callback(null, response);
      }
    };
    
  6. Localize a variável workspaceSid e atualize-a com o SID do espaço de trabalho da etapa "SID do espaço de trabalho do Taskrouter".

  7. Anote o URL do seu serviço. Você precisa usar o URL completo da função wrap-up na próxima etapa.

  8. Clique em Salvar > Implantar tudo.

  9. Acesse o console do Twilio e digite Taskrouter Workspaces na barra de pesquisa.

  10. Clique no espaço de trabalho que você está usando > Configurações > Callbacks de eventos > URL de callback de eventos.

  11. Insira o URL da função wrap-up da etapa anterior.

  12. Clique em Eventos de callback e defina como Eventos específicos.

  13. Clique em Selecionar tudo > Salvar.

Configurar o IVR com o Flex Studio

Para configurar o menu de telefone automatizado, use o Twilio Studio para criar um fluxo de chamadas que inicia uma ramificação SIPREC. Essa ramificação envia um stream de mídia diretamente para o Agent Assist. O fluxo de chamadas também faz uma postagem HTTP para compartilhar o número de telefone e o ID da conversa com o Agent Assist.

Siga estas etapas para configurar a resposta de voz interativa (IVR) com o Flex Studio.

  1. Acesse o console do Twilio e digite Studio na caixa de pesquisa.
  2. Clique em Studio e a página do painel do Studio será aberta com a lista de fluxos.
  3. Na página do painel do Studio, é possível fazer o seguinte:

    • Atualizar o fluxo atual.
    • Criar um fluxo.

Atualizar o fluxo atual

Siga estas etapas no console do Twilio para atualizar os fluxos atuais.

  1. Selecione o fluxo que você quer atualizar.
  2. Clique em Develop > Phone Numbers > Manage > Active Numbers. Deve haver uma linha na tabela com o número padrão do Twilio provisionado para sua conta do Flex.
  3. Acesse Voice - Studio Workflow e clique em Voice IVR.

Criar um fluxo

Crie novos fluxos para fazer uma solicitação HTTP, executar uma função, ramificar um stream e enviar para o Flex. Siga estas etapas no console do Twilio para criar um fluxo de solicitação HTTP.

  1. Acesse a página do painel do Studio e clique em Create new flow.
  2. Acesse widget da Pesquisa e digite HTTP.
  3. Arraste o widget Make HTTP request para o painel de fluxo.
  4. Configure um widget com os seguintes detalhes e clique em Save.

    • Widget name: register_twilio
    • Request method: POST
    • Request URL:
      your-ui-connector-cloud-run-url.run.app/register-app
    • Content type: Application/JSON
    • Request body:

      {
      "accountSid": "yourTwilioAccountSid",
      "authToken": "yourTwilioAccountAuthToken"
      }
      

Siga estas etapas para criar um fluxo de função de execução.

  1. Digite Run function no widget de pesquisa.
  2. Arraste o widget Run function para o painel de fluxo para se conectar às saídas Success e Fail do widget register_twilio.
  3. Configure o widget de função de execução com os seguintes detalhes:

    • Widget name: conversation_name
    • Service: ui-connector-auth
    • Environment: ui
    • Function: /conversation-name
    • Function parameters: Enter following function parameters

      • Token:
        {{ widgets.register_twilio.parsed.token }}
      • Endpoint:
        your-ui-connector-cloud-run-url.run.app/conversation-name
      • Phone:
        {{ trigger.call.From | replace_first:'+','' }}
      • ConversationName:
        projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
  4. Clique em Salvar.

Siga estas etapas para criar um fluxo de stream de ramificação.

  1. Digite Fork stream no widget de pesquisa.
  2. Mova o widget Fork Stream para o painel de fluxo para se conectar às saídas Success e Fail do widget de solicitação HTTP.
  3. Configure o widget de stream de ramificação com os seguintes detalhes:

    • Stream action: Start
    • Stream type: Siprec
    • Connector name: Siprec1
    • Tracks: Both tracks
    • Stream parameters: Enter the following stream parameters.

      • Key: conversation
      • Value:
        projects/project-id/conversations/{{trigger.call.CallSid}}
  4. Clique em Salvar.

Siga estas etapas para criar o fluxo de envio para o Flex.

  1. Digite Send to Flex no widget de pesquisa.
  2. Mova Send to Flex para o painel de fluxo e conecte Next de Fork Stream a Send to Flex.
  3. Clique em Send to Flex.
  4. Configure o widget de envio para o Flex com os seguintes detalhes.

    • Workflow: Choose the workflow you're using for SCV.
    • Task channel: Voice
    • Attributes:
      {"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"}
    • URL method: POST
  5. Clique em Salvar > Publicar.

Etapa 4: configurar a página de registro do Agent Assist

Siga estas etapas para configurar a página de registro do Agent Assist.

  1. Crie uma página de registro de ligação para o Agent Assist.
  2. Clique em Activation > App default > Assign as app default.
  3. Selecione Twilio for service cloud voice.
  4. Clique em Next > Save.

Etapa 5: testar a integração do Agent Assist

Siga estas etapas para testar o Agent Assist.

  1. Acesse o Salesforce.
  2. Clique em apps Acesso rápido aos apps.
  3. No campo de pesquisa, digite Twilio for service cloud voice. Isso abre a página Cases.
  4. Acesse o painel Omni channel e clique em New.
  5. Clique em check_circle Check para ligar para o número do Twilio Flex. Você anotou isso no início.
  6. Teste os dois lados da conversa e verifique se os recursos do Agent Assist estão funcionando conforme configurado.