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 es una nueva API REST que le permite interactuar con sus Bots de Einstein desde cualquier cliente. En esta publicación de blog, exploraremos cómo usar esta nueva API para hablar con su bot, y en publicaciones posteriores de esta serie, analizaremos casos específicos en detalle.

¿Qué son los robots de Einstein?

Un bot es un programa autónomo que puede interactuar con sistemas o usuarios. Los casos de uso comunes incluyen: realizar pedidos, brindar atención al cliente, mostrar preguntas frecuentes y más. Los bots minimizan la necesidad de interacción humana al brindar servicios al cliente final.

Los bots se pueden hacer más inteligentes y más competentes con inteligencia artificial (IA). Respaldado por el poder de los datos, un bot puede ayudar a resolver tareas más complejas para el usuario final, reduciendo así la necesidad de un agente humano. Esto, a su vez, ahorra mucho dinero a las empresas que emplean estos bots impulsados por IA.

Los Bots de Einstein son exactamente lo anterior, y más. Los Einstein Bots están completamente integrados en el vasto ecosistema de la nube de Salesforce y, por lo tanto, pueden aprovechar directamente el poder de todas las excelentes herramientas y tecnologías que ofrece Salesforce, tanto en la actualidad como en el futuro. Puede leer más sobre su genialidad en la documentación de Einstein Bots .

¿Cómo definir y utilizar Bots de Einstein?

Para establecer el contexto de esta publicación de blog, primero debemos comprender cómo definir y utilizar Bots de Einstein en la organización de un cliente. Los siguientes pasos proporcionan una descripción general de alto nivel:

  1. Cree el bot: defina su bot de Einstein en Bot Builder. Este paso incluye la creación de todos los cuadros de diálogo, elementos, reglas, etc. del bot para que su nuevo bot sea funcional. Aquí también es donde definirá/entrenará su modelo de PNL de Einstein para usar las capacidades de PNL del bot. Puede encontrar todos los detalles necesarios en la documentación de introducción. El bot que definió en el Paso 1 es independiente del canal .

  1. Probar el bot: una vez que haya completado la fase de creación del bot, ahora puede activar y probar su bot de Einstein en la vista previa del bot. La vista previa del bot es un patio de recreo para que interactúes con el bot como lo haría un usuario final.
  2. Agregar canales: una vez que su Einstein Bot esté listo, es hora de llevarlo a sus clientes para el uso de producción real. Salesforce proporciona canales listos para usar, como web, SMS, WhatsApp y Facebook, y los bots de Einstein están disponibles para los usuarios finales solo a través de estos canales de Salesforce.

El siguiente diagrama del sistema muestra cómo interactúan los distintos sistemas al crear e implementar bots de Einstein.

Pero, ¿qué sucede si, como administrador de bots, necesita aprovechar los bots más allá de estos canales/conexiones de Salesforce? ¡Aquí es donde entra en juego la API de la plataforma Einstein Bots!

Más formas de integrarse con el Bot de Einstein

Como se discutió en la sección anterior, la única manera de integrar su Bot de Einstein en su infraestructura de interacción con el cliente es a través de los diversos canales de Salesforce. Esta era una limitación con versiones anteriores de Einstein Bots. Pero ahora, hemos lanzado la nueva API de la plataforma Einstein Bots, que elimina por completo esta limitación. Sus Bots de Einstein seguirán haciendo su increíble trabajo en sus canales actuales, pero ahora puede agregar sus canales personalizados e implementaciones de clientes.

¿Qué es la API de la plataforma Einstein Bots?

La API de la plataforma Einstein Bots es una API REST que permite la interacción con sus Bots de Einstein desde cualquier cliente. Es una verdadera solución de plataforma para exponer su Einstein Bot en cualquier entorno de interacción con el cliente. Por ejemplo, imagine un caso de uso en el que el cliente de participación del usuario final es una aplicación móvil React Native. Sin la API de la plataforma Einstein Bots, no hubiera sido posible integrar Einstein Bots con un cliente tan personalizado. Pero con la API de la plataforma Einstein Bots, ahora puede integrar fácilmente Einstein Bots con el cliente personalizado anterior. Puede encontrar más detalles sobre esto en la Guía del desarrollador .

El siguiente diagrama del sistema muestra cómo interactúan los distintos componentes, incluida la nueva API de la plataforma Einstein Bots, para ayudar a los clientes de Salesforce a entregar sus Einstein Bots a sus clientes.

Cómo usar la API

Comencemos con un ejemplo de código introductorio. Para usar la API, los pasos 1 y 2 descritos en la sección anterior "Cómo definir y usar Bots de Einstein" siguen siendo los mismos. Pero cuando llegue al Paso 3 (es decir, agregar conexiones/canales), elija la opción API como se muestra a continuación:


Cuando elija la conexión API, se le pedirá que complete los detalles de integración y un nombre de aplicación conectada de Salesforce, como se muestra a continuación. El nombre de la integración puede ser cualquier cadena que desee.

Algunas palabras sobre las aplicaciones conectadas de Salesforce

Una aplicación conectada de Salesforce es un marco utilizado para autorizar sistemas externos que interactúan con cualquier API de Salesforce. Con la API de la plataforma Einstein Bots, se utilizará una aplicación conectada para generar tokens de acceso de OAuth que deben incluirse en la solicitud externa como encabezados de autorización. La API de Einstein Bots, al recibir dicho encabezado de autorización, inspeccionará el token de acceso de OAuth entrante y determinará si la solicitud es válida o no. Puede encontrar más en la documentación de las aplicaciones conectadas . Para configurar una aplicación conectada para la API de Bots de Einstein específicamente, puede consultar la sección Requisitos previos de la Guía para desarrolladores de la API de Bot. Además, esta publicación de blog habla en detalle sobre cómo configurar una aplicación conectada para el flujo de portador de JWT y obtener un token de acceso de OAuth que se puede usar para hablar con la API de la plataforma Einstein Bots.

¡Hora de codificar!

Una vez que haya definido su bot de Einstein, configure la aplicación conectada de Salesforce habilitada para OAuth y la conecte al bot, estará listo para consumir la API de la plataforma de bots de Einstein. El siguiente fragmento de código muestra un ejemplo del uso de un servidor Python Flask para hablar con la API de Einstein Bots.

 registro de importación
solicitudes de importación
importar json
desde la aplicación importar aplicación
de solicitud de importación de matraz
desde app.auth importar get_oauth_access_token
desde app.constants import INIT_CHAT_URI, SEND_MESSAGES_URI, END_CHAT_URI, ORG_ID_HEADER_KEY, END_SESSION_HEADER_KEY @app.route("/inicio/<bot_id>", métodos=["POST"])
def inicializar(bot_id): request_url = get_request_url(INIT_CHAT_URI.format(bot_id)) respuesta = enviar (solicitud.json, solicitud_url) respuesta de retorno @app.route("/chat/<session_id>", métodos=["POST"])
chat def (sesión_id): request_url = get_request_url(SEND_MESSAGES_URI.format(session_id)) devolver enviar (request.json, request_url) @app.route("/end/<session_id>", métodos=["ELIMINAR"])
def end(session_id): request_url = get_request_url(END_CHAT_URI.format(session_id)) encabezados = get_headers() encabezados[END_SESSION_HEADER_KEY] = request.headers.get(END_SESSION_HEADER_KEY) respuesta = solicitudes.eliminar (solicitud_url, encabezados = encabezados) validar_respuesta(respuesta) devuelve json.loads(respuesta.texto) def enviar(datos, url): encabezados = get_headers() respuesta = solicitudes. publicación (url, encabezados = encabezados, datos = json. volcados (datos)) validar_respuesta(respuesta) devuelve json.loads(respuesta.texto) def validar_respuesta(respuesta): # verifique el código de estado si respuesta.código_estado != 200: aumentar ValueError("Código de respuesta no válido del servidor Bot. Error=" + respuesta.texto) def get_request_url(uri): devolver app.config.get("BOTS_SERVER_URL") + uri def get_headers(): token = get_oauth_access_token() orgId = app.config.get("ORG_ID") devolver { "Autorización": "Portador" + token, "Tipo de contenido":"aplicación/json", "Aceptar": "aplicación/json", ORG_ID_HEADER_KEY: orgId } si __nombre__ == "__principal__": aplicación.ejecutar()

NOTA: En cada implementación de ruta, agregamos explícitamente el encabezado de autorización. Para este encabezado, necesitamos el token de acceso de OAuth que se recupera en la función get_oauth_access_token . Consulte el repositorio de código para ver la implementación completa de esta función.

Las funciones init , chat y end corresponden a las tres API de Einstein Bot. Las estructuras de solicitud y respuesta para cada una de estas llamadas están muy bien documentadas en la Guía del cliente API, y las mismas se pueden usar con el servidor Python Flask anterior. Estas son algunas solicitudes de muestra realizadas al servidor de Python Flask:

Iniciar una sesión de chat:

 curl --ubicación --request POST 'http://127.0.0.1:5000/start/<id-bot>' --header 'Tipo de contenido: aplicación/json' --datos-sin procesar '{ "forceConfig": { "endpoint": "<ForceConfig Endpoint mostrado en el cuadro de diálogo Agregar conexión>" }, "clave de sesión externa": "UUID"
}'

Enviar mensajes en una sesión de chat existente:

 curl --ubicación --request POST 'http://127.0.0.1:5000/chat/<sessionId from the response of the Initiate Chat Session request>' --header 'Tipo de contenido: aplicación/json' --datos-sin procesar '{ "mensaje": { "teclee el texto", "texto": "Hola", "Id. de secuencia": 1 }
}'

Finalizar una sesión de chat:

 curl --ubicación --request DELETE 'http://127.0.0.1:5000/end/<sessionId from the response of the Iniciate Chat Session request>' --header 'Tipo de contenido: aplicación/json' --header 'X-Session-End-Razón: Solicitud de usuario'

¡Y eso es! ¡Acaba de hablar con su Einstein Bot a través de un cliente de Python personalizado!

¿Que sigue?

En las próximas publicaciones de esta serie, analizaremos casos específicos en detalle, incluido cómo manejar la inicialización de una sesión de bot con parámetros personalizados, así como escenarios de escalamiento, como un bot-to-case con la API de Einstein Bots Platform.

Referencias

Sobre el Autor

Makarand Bhonsle es ingeniero de software líder en Salesforce. Es el desarrollador principal de la API de la plataforma Einstein Bots.

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/05/introducing-the-einstein-bots-platform-api.html

Entradas recomendadas