La integración de Twilio con Salesforce Service Cloud Voice (SCV) permite que los representantes de Salesforce realicen y reciban llamadas en Salesforce con las capacidades de la plataforma de Twilio.
Antes de comenzar
Para integrar la voz de Salesforce con Twilio Flex, necesitas acceso a los siguientes recursos:
- Recursos de Salesforce y Agent Assist
- App de Agent Assist para Salesforce
Cuenta de Flex
Sigue las instrucciones de la página de configuración de Twilio para crear una cuenta de Flex. Anota el identificador de cadena de tu cuenta (SID), el número de teléfono de Twilio y el token de Auth.
Número de teléfono aprovisionado de la plataforma de telefonía de Google
Sigue las instrucciones de la plataforma de telefonía de Google para obtener un número de teléfono aprovisionado que se integrará con el complemento del conector Siprec de Twilio.
Paso 1: Configura la voz de la nube de servicios de Twilio
Sigue las instrucciones de la guía de Twilio para configurar SCV de Salesforce con Twilio como proveedor de telefonía asociado.
Paso 2: Integra Agent Assist con Twilio Flex
Sigue estos pasos para integrar Agent Assist con Twilio Flex.
Instala el complemento del conector SIPREC
El complemento del conector SIPREC permite que tu cuenta de Twilio Flex realice bifurcaciones SIPREC de transmisiones de medios de llamadas de voz a Agent Assist. Sigue estos pasos para instalar el complemento del conector SIPREC.
Navega a Twilio Home y, luego, ingresa Marketplace en el cuadro de búsqueda.
Haz clic en Catalog > Stream connectors > Siprec connector > Install > Add instance.
Navega a la pestaña Configure y configura el complemento con los siguientes detalles:
- Nombre único:
SipRec1 - Servidor de grabación de sesiones:
sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
- Nombre único:
Haz clic en Guardar.
Configura las funciones de Twilio
Sigue estos pasos para configurar dos funciones de Twilio, conversation-name y wrap-up.
- Navega a la consola de Twilio y, luego, ingresa Function en el cuadro de búsqueda.
- Haz clic en Functions > Create service.
- Asigna el nombre
ui-connector-authal nuevo servicio y haz clic en Siguiente. - Haz clic en Agregar + > Agregar función.
Sigue estos pasos para crear la función conversation-name.
- Asigna el nombre
conversation-namea la función. - Haz clic en el bloqueo y cambia la visibilidad de la función a Público.
- Copia el código
ui-connector-auth.jsy pégalo en el editor. - Haz clic en Guardar.
Puedes automatizar el proceso de finalización de llamadas con una wrap-up función y EventCallbackUrl. Esto elimina la necesidad de cerrar manualmente las llamadas en Salesforce y Twilio Flex. Sigue estos pasos para crear una función wrap-up para recibir eventos a través de EventCallbackUrl.
- Navega a la consola de Twilio > barra de búsqueda y, luego, ingresa Taskrouter Workspace.
- Selecciona Taskrouter workspaces.
- Anota el SID en la columna del espacio de trabajo.
- Navega al editor y asigna el nombre
wrap-upa la función. Agrega el siguiente código al 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); } };Ubica la variable
workspaceSidy actualízala con el SID del espacio de trabajo del paso SID del espacio de trabajo de Taskrouter.Anota la URL de tu servicio. Debes usar la URL completa de la función
wrap-upen el siguiente paso.Haz clic en Guardar > Implementar todo.
Navega a la consola de Twilio y, luego, ingresa Taskrouter Workspaces en la barra de búsqueda.
Haz clic en el espacio de trabajo que usas > Configuración > Devoluciones de llamada de eventos > URL de devolución de llamada de eventos.
Ingresa la URL de la función
wrap-updel paso anterior.Haz clic en Eventos de devolución de llamada y configúralo como Eventos específicos.
Haz clic en Seleccionar todo > Guardar.
Configura IVR con Flex Studio
Para configurar tu menú telefónico automatizado, usa Twilio Studio para compilar un flujo de llamadas que inicie una bifurcación SIPREC. Esa bifurcación envía una transmisión de medios directamente a Agent Assist. El flujo de llamadas también realiza una publicación HTTP para compartir el número de teléfono y el ID de conversación con Agent Assist.
Sigue estos pasos para configurar la respuesta de voz interactiva (IVR) con Flex Studio.
- Navega a la consola de Twilio y, luego, ingresa Studio en el cuadro de búsqueda.
- Haz clic en Studio y se abrirá la página del panel de Studio con la lista de flujos.
En la página del panel de Studio, puedes hacer lo siguiente:
- Actualizar el flujo existente
- Crear un flujo
Actualizar el flujo existente
Sigue estos pasos en la consola de Twilio para actualizar los flujos existentes.
- Selecciona el flujo que deseas actualizar.
- Haz clic en Desarrollar > Números de teléfono > Administrar > Números activos. Debe haber una fila en la tabla con el número predeterminado de Twilio aprovisionado para tu cuenta de Flex.
- Navega a Flujo de trabajo de voz - Studio y haz clic en IVR de voz.
Crea un flujo
Crea flujos nuevos para realizar una solicitud HTTP, ejecutar una función, bifurcar una transmisión y enviar a Flex. Sigue estos pasos en la consola de Twilio para crear un flujo de solicitud HTTP.
- Navega a la página del panel de Studio y haz clic en Crear flujo nuevo.
- Navega a widget de la Búsqueda y, luego, ingresa HTTP.
- Arrastra el widget Realizar solicitud HTTP al panel de flujo.
Configura un widget con los siguientes detalles y haz clic en Guardar.
- Nombre del widget:
register_twilio - Método de solicitud:
POST - URL de solicitud:
your-ui-connector-cloud-run-url.run.app/register-app
- Tipo de contenido: Application/JSON
Cuerpo de la solicitud:
{ "accountSid": "yourTwilioAccountSid", "authToken": "yourTwilioAccountAuthToken" }
- Nombre del widget:
Sigue estos pasos para crear un flujo de función de ejecución.
- Ingresa Ejecutar función en el widget de búsqueda.
- Arrastra el widget Ejecutar función al panel de flujo para conectarlo con las salidas Éxito y Falla del widget
register_twilio. Configura el widget de función de ejecución con los siguientes detalles:
- Nombre del widget:
conversation_name - Servicio:
ui-connector-auth - Entorno: ui
- Función:
/conversation-name Parámetros de las funciones: Ingresa los siguientes parámetros de las funciones
- Token:
{{ widgets.register_twilio.parsed.token }}
- Extremo:
your-ui-connector-cloud-run-url.run.app/conversation-name
- Teléfono:
{{ trigger.call.From | replace_first:'+','' }}
ConversationName:projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
- Token:
- Nombre del widget:
Haz clic en Guardar.
Sigue estos pasos para crear un flujo de transmisión de bifurcación.
- Ingresa Bifurcar transmisión en el widget de búsqueda.
- Mueve el widget de bifurcación de transmisión al panel de flujo para conectarlo con las salidas Éxito y Falla del widget de solicitud HTTP.
Configura el widget de transmisión de bifurcación con los siguientes detalles:
- Acción de transmisión: Iniciar
- Tipo de transmisión:
Siprec - Nombre del conector:
Siprec1 - Pistas: Ambas pistas
Parámetros de transmisión: Ingresa los siguientes parámetros de transmisión.
- Clave: conversation
- Valor:
projects/project-id/conversations/{{trigger.call.CallSid}}
Haz clic en Guardar.
Sigue estos pasos para crear el flujo de envío a Flex.
- Ingresa Enviar a Flex en el widget de búsqueda.
- Mueve Enviar a Flex al panel de flujo y conecta Siguiente desde Bifurcar transmisión a Enviar a Flex.
- Haz clic en Enviar a Flex.
Configura el widget de envío a Flex con los siguientes detalles.
- Flujo de trabajo: Elige el flujo de trabajo que usas para SCV.
- Canal de tareas: Voz
- Atributos:
{"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"} - Método de URL:
POST
Haz clic en Guardar > Publicar.
Paso 4: Configura la página de registro para Agent Assist
Sigue estos pasos para configurar la página de registro para Agent Assist.
- Crea una página de registro de llamadas de voz para Agent Assist.
- Haz clic en Activación > Predeterminado de la app > Asignar como predeterminado de la app.
- Selecciona Twilio para la voz de la nube de servicios.
- Haz clic en Siguiente > Guardar.
Paso 5: Prueba la integración de Agent Assist
Sigue estos pasos para probar Agent Assist.
- Navega a Salesforce.
- Haz clic en apps Selector de aplicaciones.
- En el campo de búsqueda, ingresa Twilio para la voz de la nube de servicios. Se abrirá la página Casos.
- Navega al panel Omni channel y haz clic en Nuevo.
- Haz clic en check_circle Check para llamar a tu número de Twilio Flex. Tomaste nota de esto al principio.
- Prueba ambos lados de la conversación y asegúrate de que las funciones de Agent Assist funcionen según lo configuraste.