Agent Assist para la integración de voz de Salesforce con Twilio Flex

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:

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.

  1. Navega a Twilio Home y, luego, ingresa Marketplace en el cuadro de búsqueda.

    Twilio Home

  2. Haz clic en Catalog > Stream connectors > Siprec connector > Install > Add instance.

  3. 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
  4. Haz clic en Guardar.

Configura las funciones de Twilio

Sigue estos pasos para configurar dos funciones de Twilio, conversation-name y wrap-up.

  1. Navega a la consola de Twilio y, luego, ingresa Function en el cuadro de búsqueda.
  2. Haz clic en Functions > Create service.
  3. Asigna el nombre ui-connector-auth al nuevo servicio y haz clic en Siguiente.
  4. Haz clic en Agregar + > Agregar función.

Sigue estos pasos para crear la función conversation-name.

  1. Asigna el nombre conversation-name a la función.
  2. Haz clic en el bloqueo y cambia la visibilidad de la función a Público.
  3. Copia el código ui-connector-auth.js y pégalo en el editor.
  4. 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.

  1. Navega a la consola de Twilio > barra de búsqueda y, luego, ingresa Taskrouter Workspace.
  2. Selecciona Taskrouter workspaces.
  3. Anota el SID en la columna del espacio de trabajo.
  4. Navega al editor y asigna el nombre wrap-up a la función.
  5. 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);
      }
    };
    
  6. Ubica la variable workspaceSid y actualízala con el SID del espacio de trabajo del paso SID del espacio de trabajo de Taskrouter.

  7. Anota la URL de tu servicio. Debes usar la URL completa de la función wrap-up en el siguiente paso.

  8. Haz clic en Guardar > Implementar todo.

  9. Navega a la consola de Twilio y, luego, ingresa Taskrouter Workspaces en la barra de búsqueda.

  10. Haz clic en el espacio de trabajo que usas > Configuración > Devoluciones de llamada de eventos > URL de devolución de llamada de eventos.

  11. Ingresa la URL de la función wrap-up del paso anterior.

  12. Haz clic en Eventos de devolución de llamada y configúralo como Eventos específicos.

  13. 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.

  1. Navega a la consola de Twilio y, luego, ingresa Studio en el cuadro de búsqueda.
  2. Haz clic en Studio y se abrirá la página del panel de Studio con la lista de flujos.
  3. 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.

  1. Selecciona el flujo que deseas actualizar.
  2. 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.
  3. 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.

  1. Navega a la página del panel de Studio y haz clic en Crear flujo nuevo.
  2. Navega a widget de la Búsqueda y, luego, ingresa HTTP.
  3. Arrastra el widget Realizar solicitud HTTP al panel de flujo.
  4. 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"
      }
      

Sigue estos pasos para crear un flujo de función de ejecución.

  1. Ingresa Ejecutar función en el widget de búsqueda.
  2. Arrastra el widget Ejecutar función al panel de flujo para conectarlo con las salidas Éxito y Falla del widget register_twilio.
  3. 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 }}
  4. Haz clic en Guardar.

Sigue estos pasos para crear un flujo de transmisión de bifurcación.

  1. Ingresa Bifurcar transmisión en el widget de búsqueda.
  2. 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.
  3. 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}}
  4. Haz clic en Guardar.

Sigue estos pasos para crear el flujo de envío a Flex.

  1. Ingresa Enviar a Flex en el widget de búsqueda.
  2. Mueve Enviar a Flex al panel de flujo y conecta Siguiente desde Bifurcar transmisión a Enviar a Flex.
  3. Haz clic en Enviar a Flex.
  4. 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
  5. 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.

  1. Crea una página de registro de llamadas de voz para Agent Assist.
  2. Haz clic en Activación > Predeterminado de la app > Asignar como predeterminado de la app.
  3. Selecciona Twilio para la voz de la nube de servicios.
  4. Haz clic en Siguiente > Guardar.

Paso 5: Prueba la integración de Agent Assist

Sigue estos pasos para probar Agent Assist.

  1. Navega a Salesforce.
  2. Haz clic en apps Selector de aplicaciones.
  3. En el campo de búsqueda, ingresa Twilio para la voz de la nube de servicios. Se abrirá la página Casos.
  4. Navega al panel Omni channel y haz clic en Nuevo.
  5. Haz clic en check_circle Check para llamar a tu número de Twilio Flex. Tomaste nota de esto al principio.
  6. Prueba ambos lados de la conversación y asegúrate de que las funciones de Agent Assist funcionen según lo configuraste.