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:
- Recursos do Salesforce e do Agent Assist
- App Agent Assist para Salesforce
Conta do Flex
Siga as instruções na página de configuração do Twilio para criar uma conta do Flex. Anote o identificador da string da conta (SID), o número de telefone do Twilio e o token de autenticação.
Número de telefone provisionado da plataforma de telefonia do Google
Siga as instruções na plataforma de telefonia do Google para receber um número de telefone provisionado para integrar ao complemento do conector SIPREC do Twilio.
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.
Acesse a página inicial do Twilio e digite Marketplace na caixa de pesquisa.
Clique em Catálogo > Conectores de stream > Conector SIPREC > Instalar > Adicionar instância.
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
- Nome exclusivo:
Clique em Salvar.
Configurar funções do Twilio
Siga estas etapas para configurar duas funções do Twilio, conversation-name e wrap-up.
- Acesse o console do Twilio e digite Function na caixa de pesquisa.
- Clique em Functions > Create service.
- Nomeie o novo serviço
ui-connector-authe clique em Next. - Clique em Add + > Add Function.
Siga estas etapas para criar a função conversation-name.
- Nomeie a função
conversation-name. - Clique no cadeado e mude a visibilidade da função para Público.
- Copie o código
ui-connector-auth.jse cole-o no editor. - 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.
- Acesse o console do Twilio > barra de pesquisa e digite Taskrouter Workspace.
- Selecione Taskrouter workspaces.
- Anote o SID na coluna do espaço de trabalho.
- Acesse o editor e nomeie a função
wrap-up. 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); } };Localize a variável
workspaceSide atualize-a com o SID do espaço de trabalho da etapa "SID do espaço de trabalho do Taskrouter".Anote o URL do seu serviço. Você precisa usar o URL completo da função
wrap-upna próxima etapa.Clique em Salvar > Implantar tudo.
Acesse o console do Twilio e digite Taskrouter Workspaces na barra de pesquisa.
Clique no espaço de trabalho que você está usando > Configurações > Callbacks de eventos > URL de callback de eventos.
Insira o URL da função
wrap-upda etapa anterior.Clique em Eventos de callback e defina como Eventos específicos.
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.
- Acesse o console do Twilio e digite Studio na caixa de pesquisa.
- Clique em Studio e a página do painel do Studio será aberta com a lista de fluxos.
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.
- Selecione o fluxo que você quer atualizar.
- 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.
- 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.
- Acesse a página do painel do Studio e clique em Create new flow.
- Acesse widget da Pesquisa e digite HTTP.
- Arraste o widget Make HTTP request para o painel de fluxo.
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" }
- Widget name:
Siga estas etapas para criar um fluxo de função de execução.
- Digite Run function no widget de pesquisa.
- Arraste o widget Run function para o painel de fluxo para se conectar às saídas Success e Fail do widget
register_twilio. 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 }}
- Token:
- Widget name:
Clique em Salvar.
Siga estas etapas para criar um fluxo de stream de ramificação.
- Digite Fork stream no widget de pesquisa.
- 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.
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}}
Clique em Salvar.
Siga estas etapas para criar o fluxo de envio para o Flex.
- Digite Send to Flex no widget de pesquisa.
- Mova Send to Flex para o painel de fluxo e conecte Next de Fork Stream a Send to Flex.
- Clique em Send to Flex.
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
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.
- Crie uma página de registro de ligação para o Agent Assist.
- Clique em Activation > App default > Assign as app default.
- Selecione Twilio for service cloud voice.
- Clique em Next > Save.
Etapa 5: testar a integração do Agent Assist
Siga estas etapas para testar o Agent Assist.
- Acesse o Salesforce.
- Clique em apps Acesso rápido aos apps.
- No campo de pesquisa, digite Twilio for service cloud voice. Isso abre a página Cases.
- Acesse o painel Omni channel e clique em New.
- Clique em check_circle Check para ligar para o número do Twilio Flex. Você anotou isso no início.
- Teste os dois lados da conversa e verifique se os recursos do Agent Assist estão funcionando conforme configurado.