Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- En Copilot Studio, abra el agente y vaya a Configuración.
- Seleccione Seguridad>seguridad del canal web.
- 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
- Iniciar sesión en la cuenta de Salesforce.
- Vaya a Configuración.
- En Búsqueda rápida, escriba Configuración del sitio remoto y, a continuación, seleccione Configuración del sitio remoto.
- 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.
- 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
En Salesforce, vaya a Configuración.
En Búsqueda rápida, escriba Clases de Apex.
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 elconversationId. -
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
- En Configuración de Salesforce, busque Credenciales con nombre y seleccione Credenciales con nombre.
- Seleccione la pestaña Credenciales externas .
- Seleccione Nuevo y configure:
-
Etiqueta:
Directline -
Nombre:
Directline -
Protocolo de autenticación:
Custom
-
Etiqueta:
- Haga clic en Guardar.
Crear una entidad de seguridad
- En la credencial externa que creó, en Principales, seleccione Nuevo.
- Configurar:
-
Nombre del parámetro:
Directline_Principal -
Número de secuencia:
1 -
Tipo de identidad:
Named Principal
-
Nombre del parámetro:
- Haga clic en Guardar.
- En Parámetros de autenticación, seleccione Agregar.
- Configurar:
-
Nombre:
Token - Valor: el secreto de Direct Line del paso 1
-
Nombre:
- Haga clic en Guardar.
Creación de un encabezado personalizado
- En la credencial externa, en Encabezados personalizados, seleccione Nuevo.
- Configurar:
-
Nombre:
Authorization -
Valor:
{!'Bearer ' & $Credential.Directline.Token} -
Número de secuencia:
1
-
Nombre:
- Haga clic en Guardar.
Crear la credencial con nombre
- Vuelva a la pestaña Credenciales Nombradas.
- Seleccione Nueva>Credencial Con Nombre.
- 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
-
Etiqueta:
- 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
- En Configuración de Salesforce, busque Conjuntos de permisos y seleccione Conjuntos de permisos.
- Busque y seleccione el conjunto de permisos de bot de chat (nombre de API:
sfdc_chatbot_service_permset). - Seleccione Acceso a Clases de Apex>Editar.
- Agregue las siguientes clases:
DL_GetConversationDL_PostActivityDL_GetActivity
- Haga clic en Guardar.
Conceder acceso a la entidad de seguridad de credenciales externas
- En el conjunto de permisos Chatbot, seleccione Acceso principal a credenciales externas>Editar.
- Agregue
Directline - Directline_Principal. - Haga clic en Guardar.
Paso 6: Configuración del bot de Einstein
- En Salesforce, vaya a Configuración.
- En Búsqueda rápida, escriba Einstein y seleccione Einstein Bots.
- 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.
En el cuadro de diálogo de bienvenida, agregue un paso de mensaje de saludo (opcional).
Agregue un paso action con Action Type Apex y Action Name Start DirectLine Conversation (
DL_GetConversation).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.Establezca el siguiente paso en el menú principal o el cuadro de diálogo de conversación.
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.
-
Identificador de conversación:
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.
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.
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:
ConversationIDvariable del cuadro de diálogo de bienvenida (obligatorio) - Nombre de usuario, identificador de usuario, credencial con nombre: opcional
-
Mensaje de usuario:
-
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.
-
Código de respuesta (
-
Entradas:
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
-
Identificador de conversación:
-
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.
-
Código de respuesta:
-
Entradas:
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.
- Agregue un paso Mensaje para mostrar la respuesta al usuario mediante la
mcsResponsevariable . - 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:
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.