Skip to content

Conecte canales externos con bots de Einstein mediante el marco del conector de canales ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

La API de la plataforma Einstein Bots le permite agregar Einstein Bots a cualquier canal de conversación. Hemos creado un SDK de Java de código abierto y un conector de canal para brindarle las herramientas que necesita para integrar fácilmente Bots de Einstein en sus canales de conversación además de los canales de participación digital existentes compatibles con Service Cloud.

En nuestra publicación anterior , mostramos cómo usar el cliente administrado por sesión del SDK para simplificar su implementación mediante la administración automática de sesiones para su canal de conversación.

En esta publicación, exploraremos el marco de Channel Connector y sus características. Aprenderá lo fácil que es crear una aplicación de conector de canal para Bots de Einstein utilizando el marco Spring Boot . Además, aprenderá cómo monitorear el estado de su aplicación, verificar las métricas de su aplicación y más.

Resumen rápido del SDK de Bots de Einstein

El marco de Channel Connector se basa en el SDK de Bots de Einstein. Hagamos un resumen rápido de los beneficios de usar el SDK:

  • Abstrae las complejidades de la autenticación y la comunicación HTTP, y proporciona una API de Java simple para conectarse a Einstein Bots
  • Proporciona clases modelo que serializan/deserializan automáticamente cargas JSON a objetos Java.
  • Proporciona un cliente administrado por sesión para administrar automáticamente las sesiones.

Presentación del marco del conector de canal para los bots de Einstein

Einstein Bots se puede integrar con canales de conversación, como Webchat, Facebook, WhatsApp o Slack. Para implementar esta integración, deberá crear una aplicación de conector de canal que se ocupe de las interacciones. Por ejemplo, si crea una aplicación de conector para Slack, la aplicación deberá escuchar los mensajes en un canal de Slack, reenviar los mensajes recibidos a su Einstein Bot y enviar la respuesta del bot a Slack.

Si bien el SDK de Bots de Einstein hace mucho trabajo pesado por usted, para crear una aplicación de conector de canal completa, debe implementar las siguientes características:

  • Cree una instancia de BasicChatbotClient o SessionManagedChatbotClient y administre su ciclo de vida
  • Lea todas las configuraciones, como orgId y botId de las propiedades de la aplicación, y utilícelas para crear instancias de ChatbotClient
  • Supervise el estado y las métricas de su aplicación de conector de canal

Afortunadamente, no tiene que implementar todo esto usted mismo si usa Spring Boot , ya que hemos creado un marco de Channel Connector para ayudarlo.

El marco del conector de canales de Bots de Einstein es un Spring Boot Starter que simplifica la creación de conectores de canales externos para un Bot de Einstein. El marco utiliza el SDK de Bot de Einstein y configura dependencias como el almacenamiento en caché, la autenticación y las métricas mediante una configuración automática de Spring. Aquí hay una descripción general rápida de los beneficios que se obtienen al usar el marco de Channel Connector:

Configuración automática
Los beans Spring se configuran automáticamente mediante application.properties .

Mecanismo de autenticación
Si todas las propiedades de OAuth se especifican en las propiedades de la aplicación, el marco del conector de canal configura el SDK de Bots de Einstein para usar el flujo de OAuth de JWT Bearer para AuthMechanism .

mecanismo de almacenamiento en caché
Si sfdc.einstein.bots.cache.redis-url está incluido en las propiedades de la aplicación, el SDK usa una caché de Redis . De lo contrario, se implementa la caché en memoria.

Clientes bot básicos y administrados por sesión
Si configura todas las propiedades requeridas en application.properties , tanto BasicChatbotClient como SessionManagedChatbotClient se conectan automáticamente a Spring beans con configuraciones predeterminadas.

Indicador de salud del bot
El indicador de salud de Spring, BotsHealthIndicator , se configura automáticamente para permitirle verificar el estado de salud del tiempo de ejecución del bot. Más información sobre cómo hacer esto más adelante en el blog.

Soporte de implementación personalizado
Puede proporcionar su propia implementación de Spring beans en lugar de usar la predeterminada (por ejemplo, si desea usar su propio mecanismo de caché o usar su propio mecanismo de autenticación). Cuando se encuentra una implementación personalizada, se usará para conectar automáticamente los beans Spring en lugar de la implementación predeterminada proporcionada por el marco del conector de canal.

Métrica
El marco utiliza la biblioteca Spring Micrometer para recopilar las métricas. Puede publicar las métricas en la mayoría de los sistemas de monitoreo populares, como New Relic, Prometheus y Graphite, utilizando Spring Micrometer.

Para quién es el conector de canales

La forma estándar de la industria de administrar las dependencias y el ciclo de vida de los objetos es usar un marco de inyección de dependencias como Google Guice o Spring. Decidimos utilizar uno de los marcos de desarrollo de aplicaciones más populares, Spring Boot, para construir el marco de Channel Connector.

Si puede usar Spring Boot para su aplicación de conector, puede usar el conector de canal de bot de Einstein. Si necesita usar algún otro marco de desarrollo de aplicaciones o administrar las dependencias usted mismo, use el SDK de Bot de Einstein directamente como una biblioteca de Java.

Cómo usar el marco del conector de canal

Suficiente teoría: escribamos un poco de código utilizando el marco Channel Connector. En esta sección, aprenderá cómo crear una nueva aplicación de conector de canal, personalizarla según sus necesidades y monitorear su estado.

Crear una aplicación de conector de canal

Para crear su aplicación de conector de canal, simplemente ejecute el siguiente comando de Maven. Modifique el comando para incluir archetypeVersion en la versión más reciente del arquetipo del conector de canal de bot de Einstein . Además, configure el package , groupId de grupo y el ID de artifactId con los nombres de su elección.

 mvn archetype : generate
 - DarchetypeGroupId = com . fuerza . salesforce einsteinbot
 - DarchetypeArtifactId = einstein - bot - channel - connector - archetype
 - Versión del tipo de DarchetypeVersion =2 .0 . 1 
 - Dpackage = com . mycompany . myapp . channel
 - DgroupId = com . mycompany . myapp
 - DartifactId = myapp - channel - connector
 - Dversion =1.0.0-SNAPSHOT

Comprender la estructura del proyecto.

Se creará un nuevo directorio, myapp-channel-connector , siguiendo el esqueleto básico del proyecto que se muestra a continuación. El nombre del directorio y la estructura del directorio después de src/main/java serán diferentes en función de los valores que utilizó al ejecutar el comando anterior.

 myapp-channel-conector ├── LÉAME.md ├── pom.xml └─> origen └─> principal ├─>java │ └─>com │ └─> miempresa │ └─> mi aplicación │ └─> canal │ └─> conector │ └── AplicaciónConector.java └─> recursos └── aplicación.ejemplo.propiedades

El pom.xml creado incluirá todas las dependencias requeridas, incluido el marco de Channel Connector y el SDK de Bots de Einstein.

La clase ConnectorApplication creada, anotada con @SpringBootApplication , será el punto de entrada para iniciar la aplicación Spring Boot del conector.

Se incluirá un README.md con instrucciones sobre cómo ejecutar la aplicación.

Configurar la aplicación

Para configurar la aplicación, deberá crear un archivo application.properties en el directorio src/main/resources con todas las propiedades requeridas. Puede copiar las propiedades de ejemplo de src/main/resources/application.example.properties y actualizarlas según su entorno. También deberá colocar su clave privada de OAuth en src/main/resources . Puede consultar nuestra guía del usuario para ver una lista completa de las propiedades de la aplicación y cómo encontrar sus valores.

Iniciar la aplicación

Una vez que complete la configuración, puede iniciar la aplicación ejecutando Spring Boot con este comando de Maven.

 mvn spring-boot:ejecutar

¡Después de ejecutar el comando, tendrá una aplicación básica ejecutándose sin haber escrito una sola línea de código!

A continuación, usemos Spring beans con conexión automática para enviar mensajes al bot.

Cree una interfaz de usuario para comunicarse con su bot

Digamos que queremos crear una interfaz de usuario simple (como la captura de pantalla a continuación) para jugar con las solicitudes/respuestas de los bots.

La interfaz de usuario aceptará el mensaje del usuario, lo enviará al bot y mostrará la respuesta del bot. La interfaz se puede construir usando HTML. También necesitaremos un controlador REST para procesar la solicitud en el lado del servidor.

Podemos crear un controlador REST Spring y usar anotaciones @Autowired para inyectar beans Spring con la implementación del cliente chatbot. El código del controlador se verá así:

 @Controlador
@RequestMapping("bot")
clase pública EinsteinBotController { @autocableado salud privada de BotsHealthIndicator; @autocableado privado SessionManagedChatbotClient chatbotClient; @Value("${sfdc.einstein.bots.force-config-endpoint}") cadena privada forceConfigEndpoint; @Valor("${sfdc.einstein.bots.orgId:}") cadena privada orgId; @Valor("${sfdc.einstein.bots.botId:}") cadena privada botId;
}

El marco Channel Connector inicializa las propiedades @Autowired , como chatbotClient , incluidas sus dependencias como AuthMechanism y Cache, según las configuraciones definidas en n application.properties . Además, podemos referirnos a cualquier propiedad de la aplicación utilizando la anotación Spring @Value .

SessionManagedChatbotClient es una clase proporcionada por el SDK de bot de Einstein que puede usar para enviar mensajes al bot.

 botResponse = chatbotClient.sendMessage(requestConfig, ID de sesión externa, solicitud de bot);

El código de ejemplo de trabajo completo de este conector ui está disponible en el directorio de ejemplos en el repositorio einstein-bot-channel-connector.

Comprobar el estado de la aplicación

El conector del canal incluye una clase llamada BotsHealthIndicator que implementa el HealthIndicator de Spring . Puede ir a http://<host>:<port>/<baseurl>/actuator/health para comprobar el estado de la aplicación. Obtendrá una respuesta JSON que indica el status como UP o DOWN de esta manera:


También puede comprobar el estado mediante programación conectando automáticamente BotsHealthIndicator y llamando al método .health() .

Ver métricas

La biblioteca Spring Micrometer se utiliza para la instrumentación y ya se han recopilado muchas métricas fundamentales. Puede encontrar todas las métricas recopiladas en http://<host>:<port>/<baseurl>/actuator/metrics .

Publicar métricas

Spring Micrometer puede publicar métricas en todos los sistemas de monitoreo populares, como New Relic, Prometheus, Graphite y más. Para publicar las métricas en un sistema de monitoreo externo, consulte las instrucciones para su sistema de monitoreo en la documentación de Micrometer . Consulte NewRelicMetricsExportAutoConfiguration para ver un ejemplo de cómo publicar las métricas en New Relic.

Resumen

Para recapitular, ha aprendido a crear una aplicación utilizando el marco de conector de canal de Bots de Einstein. Además, sabe cómo verificar el estado de la aplicación y monitorear las métricas. Para obtener más información, consulte la guía del usuario de Einstein Bot Channel Connector y explore nuestras aplicaciones de ejemplo de código abierto.

Sobre el Autor

Rajasekar Elango es ingeniero de software principal en Salesforce y trabaja en la plataforma Einstein Bots. Puedes seguirlo en LinkedIn o Twitter .

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/08/connect-external-channels-with-einstein-bots-using-the-channel-connector-framework.html

Últimas novedades 
de EGA Futura
1954
Desde hace más de 25 años potenciamos a las Empresas de Iberoamérica
🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de EGA Futura » Conceptos de Seguridad (EGA Futura ERP / Salesforce)

🎬 Video de Juan Manuel Garrido » Claves para tu Productividad diaria 🙌✅

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Conceptos básicos con EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Configuración de EGA Futura Windows

🎬 Video de EGA Futura » Facturación Electrónica en Uruguay » Funcionamiento con EGA Futura Windows

🎬 Video de EGA Futura » Configuración de la Plataforma EGA Futura

🎬 Video de EGA Futura » Configuración de usuario en EGA Futura

🎬 Video de EGA Futura » Como automatizar la publicación en Redes Sociales?

🎬 Video de Juan Manuel Garrido » Cómo restaurar la configuración de fábrica de EGA Futura Windows sin perder la información

🎬 Video de Juan Manuel Garrido » Factura electrónica: Prueba de Factura Electronica previa a la activacion

🎬 Video de EGA Futura » Como se registran los Beneficios de cada Empleado en la base de datos de EGA Futura

🎬 Video de EGA Futura » EGA Futura Time Clock » Reloj de Control horario y asistencia

🎬 Video de EGA Futura » Como registrar Observaciones en un Empleado dentro de EGA Futura People?

🎬 Video de EGA Futura » Cómo registrar la Educación de cada Empleado en EGA Futura People?

🎬 Video de EGA Futura » Como hacer la Desvinculación de un Empleado? (Offboarding)

🎬 Video de EGA Futura » Como registrar Habilidades o Skills de empleados dentro de EGA Futura

🎬 Video de EGA Futura » Como hacer el Onboarding o Proceso de Incorporación de un Empleado?

🎬 Video de EGA Futura » Cómo administrar Turno de trabajo dentro de EGA Futura

🎬 Video de EGA Futura » Que es un Ticket interno dentro de la Plataforma EGA Futura

🎬 Video de EGA Futura » Que son los Entrenamientos de Empleado en EGA Futura people?

🎬 Video de EGA Futura » Qué son los Epics dentro de EGA Futura

🎬 Video de EGA Futura » Qué es EGA Futura People?

🎬 Video de EGA Futura » EGA Futura People » Asistencias

🎬 Video de EGA Futura » Soporte EGA Futura » Software de Gestión Windows vs Software de Gestión Nube 🤩

🎬 Video de EGA Futura » ツ Comparando un Objeto con un Fichero

Conecte canales externos con bots de Einstein mediante el marco del conector de canales ☁️
Conecte canales externos con bots de Einstein mediante el marco del conector de canales ☁️