Transferencia al bot Salesforce Einstein

En este artículo se explica cómo crear y conectar un bot de Salesforce Einstein a un agente de Copilot Studio. Al integrar estas plataformas, puede mejorar la experiencia del agente con las funcionalidades combinadas de ambas.

En este patrón de integración, Einstein Bot actúa como front-end y emplea Copilot Studio como mecanismo de reserva a través del tema Confundido de Einstein. En lugar de asignar intenciones entre las dos plataformas, el bot de Einstein reenvía cualquier consulta del usuario que no entiende a Copilot Studio. Copilot Studio procesa la consulta y devuelve una respuesta. Este modelo de solicitud/respuesta significa que Copilot Studio proporciona respuestas basadas en inteligencia artificial en función de la consulta del usuario.

Einstein Bot controla completamente la transferencia del agente a un agente en directo. Esta implementación no escucha eventos de entrega de Copilot Studio. Configuras directamente en Einstein los desencadenadores de escalación para direccionar conversaciones a las colas de Salesforce Omni-Channel.

Requisitos previos

Antes de comenzar, asegúrese de que tiene:

  • Una cuenta de Salesforce con Einstein Bots habilitado.
  • Una cuenta de Copilot Studio.
  • Permisos de administrador o desarrollador en Salesforce y Microsoft Power Platform.

Paso 1: Recuperar el secreto de Direct Line para tu agente

  1. En Copilot Studio, abra el agente y vaya a Configuración.
  2. Seleccione Seguridad>seguridad del canal web.
  3. En Secretos y tokens, copie secreto 1 o secreto 2.

Importante

Esta integración solo admite agentes de Copilot Studio configurados sin autenticación. Los orígenes de conocimiento autenticados, como SharePoint, no se admiten con este enfoque.

Sugerencia

Implementación automatizada: si tiene instalada la CLI de Salesforce , puede usar los scripts de implementación automatizada para completar los pasos del 2 al 5. Una vez completado el script, siga las indicaciones para configurar el secreto de Direct Line. A continuación, vaya al paso 6: Configuración del bot de Einstein. Si desea configurar manualmente, continúe con el paso 2.

Paso 2: Configuración del sitio remoto de Salesforce

  1. Iniciar sesión en la cuenta de Salesforce.
  2. Vaya a Configuración.
  3. En Búsqueda rápida, escriba Configuración del sitio remoto y, a continuación, seleccione Configuración del sitio remoto.
  4. Agregue un nuevo sitio remoto, escriba DirectLine para Nombre de sitio remoto y escriba https://directline.botframework.com en Dirección URL del sitio remoto.
  5. Haga clic en Guardar.

Nota

Para otras regiones, use la dirección URL adecuada para DirectLine API. Consulte la referencia de Direct Line API para los puntos de conexión regionales.

Paso 3: Cree clases de Apex para conectarse a la API de DirectLine

  1. En Salesforce, vaya a Configuración.

  2. En Búsqueda rápida, escriba Clases de Apex.

  3. Cree las siguientes clases de Apex copiando el código fuente del ejemplo de integración de Salesforce:

    • DL_GetConversation: inicia una nueva conversación de Direct Line y devuelve el conversationId.
    • DL_PostActivity: envía un mensaje de usuario a la conversación a través de directLine API.
    • DL_GetActivity: recupera la respuesta del agente, con retraso integrado y lógica de reintento para controlar respuestas asincrónicas.

Paso 4: Configuración de una credencial con nombre para la autenticación segura

Microsoft recomienda usar credenciales con nombre en lugar de codificar secretos de forma dura en las clases de Apex. Las credenciales con nombre proporcionan una manera segura de almacenar secretos y son más fáciles de administrar y rotar sin modificar el código.

Creación de una credencial externa

  1. En Configuración de Salesforce, busque Credenciales con nombre y seleccione Credenciales con nombre.
  2. Seleccione la pestaña Credenciales externas .
  3. Seleccione Nuevo y configure:
    • Etiqueta:Directline
    • Nombre: Directline
    • Protocolo de autenticación: Custom
  4. Haga clic en Guardar.

Crear una entidad de seguridad

  1. En la credencial externa que creó, en Principales, seleccione Nuevo.
  2. Configurar:
    • Nombre del parámetro: Directline_Principal
    • Número de secuencia: 1
    • Tipo de identidad: Named Principal
  3. Haga clic en Guardar.
  4. En Parámetros de autenticación, seleccione Agregar.
  5. Configurar:
    • Nombre: Token
    • Valor: el secreto de Direct Line del paso 1
  6. Haga clic en Guardar.

Creación de un encabezado personalizado

  1. En la credencial externa, en Encabezados personalizados, seleccione Nuevo.
  2. Configurar:
    • Nombre: Authorization
    • Valor: {!'Bearer ' & $Credential.Directline.Token}
    • Número de secuencia: 1
  3. Haga clic en Guardar.

Crear la credencial con nombre

  1. Vuelva a la pestaña Credenciales Nombradas.
  2. Seleccione Nueva>Credencial Con Nombre.
  3. Configurar:
    • Etiqueta:Directline
    • Nombre: Directline
    • Dirección URL: https://directline.botframework.com
    • Habilitado para llamadas: Activado
    • Credencial externa: seleccione Directline
    • Generar encabezado de autorización: desactivado
    • Permitir fórmulas en el encabezado HTTP: Activado
  4. Haga clic en Guardar.

Paso 5: Concesión de permisos al bot

Los bots de Einstein requieren un conjunto de permisos dedicado para acceder a clases de Apex y credenciales externas. Debe conceder al bot acceso a los componentes que creó.

Concesión de acceso a la clase Apex

  1. En Configuración de Salesforce, busque Conjuntos de permisos y seleccione Conjuntos de permisos.
  2. Busque y seleccione el conjunto de permisos de bot de chat (nombre de API: sfdc_chatbot_service_permset).
  3. Seleccione Acceso a Clases de Apex>Editar.
  4. Agregue las siguientes clases:
    • DL_GetConversation
    • DL_PostActivity
    • DL_GetActivity
  5. Haga clic en Guardar.

Conceder acceso a la entidad de seguridad de credenciales externas

  1. En el conjunto de permisos Chatbot, seleccione Acceso principal a credenciales externas>Editar.
  2. Agregue Directline - Directline_Principal.
  3. Haga clic en Guardar.

Paso 6: Configuración del bot de Einstein

  1. En Salesforce, vaya a Configuración.
  2. En Búsqueda rápida, escriba Einstein y seleccione Einstein Bots.
  3. Cree un bot de Einstein siguiendo las instrucciones de la documentación de Salesforce Einstein.

Paso 7: Conexión del bot de Einstein a Copilot Studio

En el Bot de Einstein, configure dos diálogos para conectarse a Copilot Studio: el cuadro de diálogo de bienvenida inicia la conversación de Direct Line. El cuadro de diálogo Confusión reenvía los mensajes de usuario no reconocidos a Copilot Studio y devuelve la respuesta.

Configurar el cuadro de diálogo De bienvenida

El cuadro de diálogo Bienvenida inicializa la conversación de Direct Line cuando un usuario comienza a chatear.

  1. En el cuadro de diálogo de bienvenida, agregue un paso de mensaje de saludo (opcional).

  2. Agregue un paso action con Action Type Apex y Action Name Start DirectLine Conversation (DL_GetConversation).

  3. Asigne el identificador de conversación de salida a una variable (por ejemplo, ConversationID). Esta variable se usa mediante acciones posteriores en el cuadro de diálogo Confusión.

  4. Establezca el siguiente paso en el menú principal o el cuadro de diálogo de conversación.

    Generador de bots de Einstein que muestra el flujo del cuadro de diálogo de bienvenida con un mensaje de saludo, la acción Iniciar conversación de DirectLine y el siguiente paso al menú principal.

El panel Propiedades del paso muestra la asignación de variables para la acción Iniciar conversación de DirectLine:

  • Entrada: Credencial con nombre: establézcala en Directline (la credencial con nombre del paso 4)
  • Salidas:
    • Identificador de conversación: ConversationID (texto): se usa para las acciones de diálogo de Confundido.
    • Código de respuesta: responseCode (número): código de estado HTTP.
    • Mensaje de error: errorMessage (Texto): detalles del error si se produce un error en la llamada.

Sugerencia

Agregue un paso Condición después de esta acción para comprobar la responseCode variable. Si el valor no es 200, muestre el mensaje de error para ayudar a diagnosticar problemas de conexión durante la configuración.

Panel de propiedades del paso que muestra la acción Iniciar una conversación de DirectLine con entrada de Credencial con nombre y salida de Id. de conversación asignadas a una variable.

Configurar el cuadro de diálogo Confused

El cuadro de diálogo 'Confused' controla cualquier mensaje de usuario que Einstein no entiende y lo reenvía a Copilot Studio.

  1. Agregue un paso de acción con Action Type Apex y Action Name Post Message to Copilot Studio (DL_PostActivity).

    • Entradas:
      • Mensaje de usuario: [System] Last Customer Input (obligatorio)
      • Identificador de conversación: ConversationID variable del cuadro de diálogo de bienvenida (obligatorio)
      • Nombre de usuario, identificador de usuario, credencial con nombre: opcional
    • Salidas:
      • Código de respuesta (responseCode) [Número]
      • Mensaje de error (errorMessage) [Texto]
      • Marca de agua (watermark) [Texto]: Se pasa a la siguiente acción.

    Panel de Propiedades del paso que muestra la acción de Publicar mensaje en Copilot Studio con todas las entradas (Mensaje del usuario, Id. de conversación) y salidas (Código de respuesta, Mensaje de error, Marca de agua) asignadas a variables.

  2. Agregue un paso de acción con Action Type Apex y Action Name Get Copilot Studio Response (DL_GetActivity).

    • Entradas:
      • Identificador de conversación: ConversationID: variable (obligatorio)
      • Marca de agua: watermark: variable de la acción anterior.
      • Número máximo de reintentos: 5 (valor predeterminado)
      • Retraso inicial (segundos):5 (valor predeterminado)
      • Credencial con nombre: Directline
    • Salidas:
      • Código de respuesta: responseCode (número)
      • Mensaje: mcsResponse (Texto): la respuesta del agente de Copilot Studio.
      • Mensaje de error: errorMessage (texto)
      • Marca de agua: Marca de agua actualizada para las llamadas posteriores.
      • Tiene más mensajes: (booleano): indica si hay más mensajes disponibles.
      • Is Handoff: (Boolean): indica si Copilot Studio solicita la entrega del agente.

    Panel de propiedades de paso que muestra la acción Obtener respuesta de Copilot Studio con las entradas Id. de conversación y Marca de agua, y la salida Mensaje asignadas a mcsResponse.

Nota

La DL_GetActivity clase incluye la lógica integrada de retraso y reintento para controlar las respuestas asincrónicas de Copilot Studio. De forma predeterminada, espera 5 segundos antes del primer intento y reintenta hasta cinco veces. Puede personalizar este comportamiento mediante los parámetros opcionales delaySeconds y maxRetries de entrada.

  1. Agregue un paso Mensaje para mostrar la respuesta al usuario mediante la mcsResponse variable .
  2. Establezca el paso siguiente en Esperar la entrada del cliente para que el bucle de conversación continúe.

El flujo de diálogo Confuso completo tiene este aspecto:

Generador de bots de Einstein que muestra el flujo de diálogo Confundido: acción de Publicar mensaje en Copilot Studio, Obtener acción respuesta de Copilot Studio, mensaje de respuesta y Esperar la entrada del cliente.

Paso 8: Controlar la entrega del agente

Para habilitar la escalación de agentes en directo, configure los desencadenadores de escalación directamente en el bot de Einstein. Con esta configuración, puede enrutar a los usuarios a las colas de Salesforce Omni-Channel adecuadas cuando necesiten asistencia humana.

Para obtener más información, consulte la documentación de Salesforce Enrutar conversaciones desde un bot mejorado.