Saltar al contenido

Agente de Ventas de Jitterbit

Descripción general

Jitterbit proporciona el Agente de Ventas a los clientes a través del Marketplace de Jitterbit. Este agente está diseñado para permitir que el equipo de Ventas interno de tu organización funcione de manera más eficiente. El agente utiliza la técnica de Generación Aumentada por Recuperación (RAG), que combina el razonamiento de LLM con acceso a herramientas externas y fuentes de datos. Realiza las siguientes funciones:

  • Se conecta a NetSuite y Salesforce para obtener órdenes de venta en tiempo real, precios y datos de clientes utilizando Jitterbit Studio.
  • Se integra con un LLM para potenciar un chatbot inteligente del Agente de Ventas accesible a través de una API personalizada creada con Jitterbit API Manager.

Este documento explica cómo configurar y operar este agente de IA. Cubre la arquitectura y los requisitos previos, ejemplos de indicaciones que muestran qué puede hacer el agente, y los pasos para instalar, configurar y operar el agente de IA.

Arquitectura del agente de IA

El siguiente diagrama muestra la arquitectura implementada en el Agente de Ventas:

--- config: themeVariables: lineColor: '#6b7280' edgeLabelBackground: '#f5f5f5' flowchart: curve: 'monotoneX' padding: 25 --- graph classDef default fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px SLACK_BOT(fab:fa-slack
Slack bot) GENERIC_UI_APP(
Generic UI app) JB_APIM_A((
Jitterbit API Manager
custom API)) JB_APIM_B((
Jitterbit API Manager
custom API)) MAIN_ENTRY(Main Entry - Slack API Request Handler workflow) GENERIC_API_RH(Generic API Request Handler workflow) MAIN(Main - AI Agent Tools Logic workflow) AUTH_UTIL@{ shape: delay, label: "Authorization utility" } AUTH_WF[Utility - User Authorization and Session workflow] HISTORY_CONTEXT_UTIL@{ shape: delay, label: "History context utility" } INSERT_QUERY_QA_HIST_WF[Utility - Bot Chat History Storage workflow] TOOLS_ROUTER_OP[Tools Router operation] DECISION@{ shape: diamond, label: "Identify which function is called based on LLM response" } CUSTOMER_LOOKUP_TOOL@{ shape: delay, label: "Customer lookup tool" } CUSTOMER_LIST_WF[Tool - Customer Lookup workflow] PRICING_TOOL@{ shape: delay, label: "Pricing tool" } PRICING_DETAILS_WF[Tool - Pricing Sheets workflow] ORDER_FORM_TOOL@{ shape: delay, label: "Order form tool" } ORDER_FORM_DETAILS_WF[Tool - Customer Order Details workflow] FUNCTION_RESPONSE_TO_OPENAI[Function response to Azure Open AI] FUNCTION_RESPONSE[Function response] subgraph BOUNDARY[**Sales agent architecture**] LLM_NAT_LANG_REPLY[LLM-crafted natural-language reply] AZURE_OPENAI[ Azure Open AI] subgraph CHATBOT_UI_APPS[Chatbot UI apps] SLACK_BOT GENERIC_UI_APP end subgraph JB_AI[ **Jitterbit Studio project**] JB_APIM_A JB_APIM_B MAIN_ENTRY GENERIC_API_RH MAIN DECISION TOOLS_ROUTER_OP subgraph GROUP2[ ] HISTORY_CONTEXT_UTIL AUTH_UTIL ORDER_FORM_TOOL PRICING_TOOL CUSTOMER_LOOKUP_TOOL end subgraph GROUP3[ ] CUSTOMER_LIST_WF PRICING_DETAILS_WF ORDER_FORM_DETAILS_WF AUTH_WF end subgraph GROUP4[ ] FUNCTION_RESPONSE --> FUNCTION_RESPONSE_TO_OPENAI FUNCTION_RESPONSE_TO_OPENAI -->|Store Q and A| INSERT_QUERY_QA_HIST_WF end end end SLACK_BOT --User question--> JB_APIM_A GENERIC_UI_APP -->|User question| JB_APIM_B JB_APIM_A --> MAIN_ENTRY --> MAIN JB_APIM_B --> GENERIC_API_RH --> MAIN MAIN --> HISTORY_CONTEXT_UTIL MAIN ----> AUTH_UTIL --> AUTH_WF MAIN --> DECISION --> TOOLS_ROUTER_OP HISTORY_CONTEXT_UTIL --> INSERT_QUERY_QA_HIST_WF TOOLS_ROUTER_OP --> ORDER_FORM_TOOL ORDER_FORM_TOOL --> ORDER_FORM_DETAILS_WF ORDER_FORM_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> PRICING_TOOL PRICING_TOOL --> PRICING_DETAILS_WF PRICING_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> CUSTOMER_LOOKUP_TOOL CUSTOMER_LOOKUP_TOOL --> CUSTOMER_LIST_WF CUSTOMER_LIST_WF --> FUNCTION_RESPONSE FUNCTION_RESPONSE_TO_OPENAI ---->|REST call| AZURE_OPENAI AZURE_OPENAI -->|Response| FUNCTION_RESPONSE_TO_OPENAI CHATBOT_UI_APPS --- LLM_NAT_LANG_REPLY LLM_NAT_LANG_REPLY --- FUNCTION_RESPONSE_TO_OPENAI classDef Clear fill:white, stroke:white, stroke-width:0px classDef Plain fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px classDef BoundaryStyle fill:white, stroke-width:0px, rx:15px, ry:15px class CHATBOT_UI_APPS,JB_AI Plain class GROUP2,GROUP3,GROUP4 Clear class BOUNDARY BoundaryStyle

Requisitos previos

Para utilizar el Agente de Ventas, se requieren los siguientes componentes o se asumen en el diseño del agente.

Componentes de Harmony

Debes tener una licencia de Jitterbit Harmony con acceso a los siguientes componentes:

Puntos de conexión compatibles

Los siguientes puntos de conexión se incorporan al diseño del agente, pero se pueden acomodar otros sistemas modificando las configuraciones de puntos de conexión y los flujos de trabajo del proyecto.

Modelo de lenguaje grande (LLM)

El agente de IA utiliza Azure OpenAI como proveedor de LLM. Para usar Azure OpenAI, debes tener una suscripción de Microsoft Azure con permisos para crear y gestionar Azure OpenAI con un modelo gpt-4o implementado.

Consejo

Para seleccionar niveles de precios según tus requisitos específicos y uso anticipado, consulta Precios de Azure OpenAI.

Interfaz de chat

El diseño del agente incorpora Slack como interfaz de chat para interactuar con el agente de IA.

NetSuite

El agente se conecta a NetSuite como fuente principal de formularios de pedidos de clientes. La integración permite que el agente recupere, actualice o valide datos de pedidos en tiempo real durante las interacciones del usuario.

Salesforce

El agente utiliza Salesforce para gestionar cuentas de clientes y precios de productos. Esta integración proporciona al agente los datos actuales necesarios para generar cotizaciones precisas y detalles de cuentas.

Ejemplos de indicaciones

Estos son ejemplos de indicaciones que el Agente de Ventas puede manejar con acceso a los datos apropiados:

Preguntas de búsqueda de clientes

  • "Muéstrame todos los clientes en California."
  • "¿Qué clientes están ubicados en Sídney?"

Preguntas sobre formularios de pedidos o detalles de licencias

  • "¿Qué productos ha comprado Acme Corp?"
  • "¿Cuántas unidades del 'Producto X' tiene licencia ByteTech GmbH?"
  • "¿Puedes darme los detalles del pedido de AcmeCloud Ltd?"
  • "¿Cuál es la duración de la suscripción de Zento Systems?"

Consultas sobre precios de productos o planes

  • "¿Cuál es el precio del 'Producto X' en USD?"
  • "¿Cuánto cuesta la suscripción Professional?"
  • "¿Qué plan de suscripción permite 10 entornos?"
  • "¿Puedes calcular el costo de 15 'Producto X' y 4 'Producto Y'?"

Consultas de propietarios de cuentas

  • "¿Quién gestiona Acme Corp?"
  • "¿Qué clientes son propiedad de jsmith@abc.com?"
  • "Muestra clientes manejados por David Brown en Texas."
  • "Enumera cuentas gestionadas por Grace en el Reino Unido."

Instalación, configuración y operación

Sigue estos pasos para instalar, configurar y operar este agente de IA:

  1. Descarga las personalizaciones e instala el proyecto.
  2. Crea recursos de Microsoft Azure.
  3. Crea la app de Slack.
  4. Prepara Jitterbit Cloud Datastore.
  5. Configura las variables del proyecto.
  6. Prueba las conexiones.
  7. Despliega el proyecto.
  8. Crea la API personalizada de Jitterbit.
  9. Revisa los flujos de trabajo del proyecto.
  10. Activa los flujos de trabajo del proyecto.

Descarga las personalizaciones e instala el proyecto

Sigue estos pasos para descargar archivos de personalización e instalar el proyecto de Studio:

  1. Inicia sesión en el portal de Harmony en https://login.jitterbit.com y abre Marketplace.

  2. Localiza el agente de IA denominado Jitterbit Sales Agent. Para encontrar el agente, puedes usar la barra de búsqueda o, en el panel Filtros bajo Tipo, selecciona AI Agent para limitar la visualización a los agentes de IA disponibles.

  3. Haz clic en el enlace Documentation del agente de IA para abrir su documentación en una pestaña separada. Mantén la pestaña abierta para consultarla después de iniciar el proyecto.

  4. Haz clic en Start Project para abrir un diálogo de configuración de dos pasos para descargar personalizaciones e importar el agente de IA como un proyecto de Studio.

    Nota

    Si aún no has comprado el agente de IA, se mostrará Get agent. Haz clic en él para abrir un diálogo informativo y luego haz clic en Submit para que un representante se comunique contigo sobre la compra del agente de IA.

  5. En el paso de configuración 1, Download Customizations, se proporcionan los siguientes archivos para facilitar la configuración del índice e indexador en Azure AI Search y crear la app de Slack. Selecciona los archivos y haz clic en Download Files:

    • Archivos de definición JSON de índice e indexador de Azure AI Search

      • Azure_AI_Search_Datasource_Definition.json
      • Azure_AI_Search_Index_Definition.json
      • Azure_AI_Search_Indexer_Definition.json
    • Archivo de manifiesto de la app de Slack

      • slack_app_manifest.json

    Sugerencia

    El diálogo de configuración incluye una advertencia para no importar la plantilla antes de aplicar personalizaciones de punto final. Esta advertencia no aplica a este agente de IA y se puede ignorar. Sigue el orden de pasos recomendado en esta documentación.

    Haz clic en Next.

  6. En el paso de configuración 2, Create a New Project, selecciona un environment donde deseas crear el proyecto de Studio y luego haz clic en Create Project.

  7. Se muestra un diálogo de progreso. Después de que indique que el proyecto se ha creado, usa el enlace del diálogo Go to Studio o abre el proyecto directamente desde la página Projects de Studio.

Crea recursos de Microsoft Azure

Crea los siguientes recursos de Microsoft Azure y conserva la siguiente información para configurar el agente de IA. Para crear y administrar estos recursos, debes tener una suscripción de Microsoft Azure con los permisos apropiados.

Contenedor de Azure Blob

Debes crear un contenedor de Azure Blob para almacenar los detalles de clientes. Los datos del contenedor de Blob se indexarán en Azure AI Search usando un índice e indexador.

Necesitarás la URL de SAS del contenedor para determinar los valores de las variables del proyecto de Azure Blob Storage. Para generar la URL de SAS:

  1. En Azure Portal, ve a Storage accounts y abre la cuenta de almacenamiento específica.
  2. Desde el menú de recursos bajo Data storage, selecciona Containers y abre el contenedor específico.
  3. Desde el menú de recursos bajo Settings, selecciona Shared access tokens.
  4. Usa el menú Permissions para verificar que la URL de firma de acceso compartido (SAS) de este contenedor tenga un mínimo de permisos de Read y Write:

Permisos de URL de SAS

  1. Haz clic en Generate SAS token and URL.
  2. Copia la Blob SAS URL que aparece en la parte inferior.
  3. Determina los valores de las variables del proyecto Azure Blob Storage desde la URL de SAS. La URL de SAS tiene el formato {{ azure_blob_base_url }}/{{ Azure_Customer_Details_Container }}?{{ azure_customer_detail_blob_sig }}.

Si utilizas los archivos de definición JSON incluidos en los archivos de personalización del agente de IA para generar el índice e indexador, también necesitarás la clave de la cuenta Azure Blob Storage. Para ver las claves de acceso de la cuenta:

  1. En Azure Portal, navega a Cuentas de almacenamiento y abre la cuenta de almacenamiento específica.
  2. Desde el menú de recursos en Security + networking, selecciona Access keys.
  3. Haz clic en Show keys para revelar la clave de acceso que usarás durante la configuración de Azure AI Search.

    Claves de la cuenta de almacenamiento

Servicio Azure AI Search

Debes crear un servicio Azure AI Search y configurar su índice e indexador para procesar los datos del contenedor Blob.

Necesitarás la URL y la clave de API del servicio Azure AI Search para determinar los valores de las variables del proyecto Azure AI Search:

  • URL: Para obtener el valor a usar en azure_ai_search_url, consulta la documentación de Azure Get service information.
  • Clave de API: Para obtener el valor a usar en azure_ai_search_api_key, consulta la documentación de Azure Configure role-based access.

Puedes usar los archivos de definición JSON incluidos en los archivos de personalización del agente de IA para generar el índice e indexador, o puedes crearlos tú mismo.

Si utilizas los archivos de definición proporcionados, debes reemplazar los siguientes marcadores de posición con tus propios valores de configuración:

Azure_AI_Search_Indexer_Definition.json

Marcador de posición Descripción
{{Your Azure AI Search Service Name}} El nombre del servicio Azure AI Search.

Azure_AI_Search_Datasource_Definition.json

Marcador de posición Descripción
{{Your Azure AI Search Service Name}} El nombre del servicio Azure AI Search.
{{Your Azure Blob Account Name}} El nombre de la cuenta Azure Blob.
{{Your Azure Blob Account Key}} La clave de acceso de la cuenta Azure Blob Storage, obtenida como se describe en Contenedor Azure Blob arriba.
{{your_azure_blob_container_name}} El nombre del contenedor Azure Blob.

Recurso Azure OpenAI

Debes crear un recurso Azure OpenAI e implementar un modelo gpt-4o o gpt-4.1 a través del portal Azure AI Foundry.

Necesitarás el nombre de la implementación, la URL del punto de conexión de Azure OpenAI y la clave de API para determinar los valores de las variables del proyecto Azure OpenAI. Para encontrar estos valores:

  1. En el portal de Azure AI Foundry, abre el recurso específico de OpenAI.
  2. Los valores que se usan para la URL del endpoint (azure_openai_base_url) y la clave API (azure_openai_api_key) se muestran en la página de inicio del recurso:

    Clave y URL de AI Foundry

  3. En el menú de navegación bajo Recursos compartidos, selecciona Implementaciones. Se muestra el nombre de la implementación (Azure_OpenAI_Deployment_Name).

Crear la aplicación de Slack

Para crear la interfaz de chat del Agente de Ventas en Slack, sigue estos pasos:

  1. Crea una aplicación de Slack usando el archivo de manifiesto de la aplicación de Slack (slack_app_manifest.json) que se proporciona con los archivos de personalización del agente de IA. Como alternativa, crea la aplicación desde cero.

  2. Si usas el archivo de manifiesto proporcionado, reemplaza los siguientes marcadores de posición con tus propios valores de configuración:

    Marcador de posición Descripción
    {{Replace with Slack bot name}} El nombre que deseas que tenga tu bot de Slack, como se muestra a los usuarios. Reemplaza este valor en dos lugares del manifiesto.
    {{Replace with Jitterbit API URL}} La URL del servicio de la API personalizada de Jitterbit que creaste en Crear la API personalizada de Jitterbit.
  3. Instala la aplicación en tu espacio de trabajo de Slack.

  4. Obtén el token del bot (para el campo Bot User OAuth Token de la conexión de Slack) e ingresa su valor para la variable de proyecto slack_bot_oauth_user_token.

  5. Configura la variable de proyecto slack_channel_name con el canal donde se deben enviar las notificaciones.

  6. Ingresa el valor del token del bot para la variable de proyecto slack_bot_oauth_user_token y el nombre del canal para la variable de proyecto slack_channel_name. Configurarás estos en el siguiente paso.

Preparar Jitterbit Cloud Datastore

Crea dos almacenamientos de claves en Jitterbit Cloud Datastore, Bot_Authorized_Users y askjb_sales_q_and_a. Los campos Key, AlternativeKey y Value están presentes de forma predeterminada. Agrega los campos personalizados que tienen los nombres y tipos que se enumeran en las tablas a continuación.

Después de agregar campos personalizados, agrega un registro de almacenamiento de claves para cada usuario que estará autorizado para usar el bot del agente de IA. Debes definir manualmente los valores que se marcan en las tablas a continuación. Puedes dejar en blanco los valores de los campos cuyos valores se completan automáticamente o no se utilizan.

Bot_Authorized_Users

Este almacenamiento de claves contiene la lista de usuarios autorizados y sus sesiones. Debes ingresar manualmente las direcciones de correo electrónico de los usuarios que están autorizados para acceder al bot del agente de IA. No se requieren campos personalizados.

Nombre del campo Tipo Descripción
Key Texto Ingresa manualmente. La dirección de correo electrónico del usuario autorizado para interactuar con el agente de IA a través del bot de Slack.
AlternativeKey Texto Se completa automáticamente. La sesión del usuario, generada durante la ejecución. No se requiere entrada manual.
Value Texto Ingresa manualmente. La dirección de correo electrónico del usuario autorizado para interactuar con el agente de IA a través del bot de Slack. Proporcionar un valor es obligatorio para que el agente de IA funcione.

askjb_sales_q_and_a

Este almacenamiento de claves retiene el historial de chat de un bot para proporcionar contexto de memoria para el LLM. La integración lo usa para almacenar el historial de preguntas y respuestas. Todos los datos se ingresan automáticamente durante la ejecución de la interacción. Agrega los siguientes campos personalizados:

Nombre del campo Tipo Descripción
Key Texto Se completa automáticamente. Especifica el identificador único asignado a un mensaje por el sistema.
AlternativeKey Texto Se completa automáticamente. Especifica el identificador único asignado a una sesión de chat por el sistema.
Value Texto No se usa.
slackChannel Texto Se completa automáticamente. El ID del canal de Slack desde el cual se envía el mensaje.
User Texto Se completa automáticamente. El nombre de usuario de Slack del usuario que envía el mensaje.
FirstName Texto Se completa automáticamente. El nombre del usuario que envía el mensaje.
LastName Texto Se completa automáticamente. El apellido del usuario que envía el mensaje.
Email Texto Se completa automáticamente. La dirección de correo electrónico del usuario que envía el mensaje.
MessageTimestampText Texto Se completa automáticamente. El texto de marca de tiempo del mensaje.
UserQuestion Texto grande Se completa automáticamente. La pregunta o el mensaje que el usuario envía al agente de IA.
AIAnswer Texto grande Se completa automáticamente. La respuesta generada por el agente de IA a la pregunta del usuario.
ai_reformulate_question Texto grande Se completa automáticamente. La pregunta del usuario después de ser reformulada o replanteada por la IA para mejorar la comprensión.

Configurar variables de proyecto

En el proyecto de Studio instalado anteriormente a través de Marketplace, debes establecer valores para las siguientes variables de proyecto.

Para configurar variables de proyecto, utiliza el menú de acciones del proyecto para seleccionar Variables de Proyecto. Esto abre un panel en la parte inferior de la página donde puedes revisar y establecer los valores.

Salesforce

Nombre de variable Descripción
SF_Login_URL Server Host en la conexión de Salesforce
SF_Password Password en la conexión de Salesforce
SF_Security_Token Security token en la conexión de Salesforce
SF_User_Name Username en la conexión de Salesforce

NetSuite

Nombre de variable Descripción
NetSuite_Account Account en la conexión de NetSuite
NetSuite_Consumer_Key Consumer key en la conexión de NetSuite
NetSuite_Consumer_Secret Consumer secret en la conexión de NetSuite
NetSuite_Base_URL URL base de NetSuite, como https://{{NetSuite_Account}}.suitetalk.api.netsuite.com.
NetSuite_Token_Key Token key en la conexión de NetSuite
NetSuite_Token_Secret Token secret en la conexión de NetSuite

Azure Blob Storage

Nombre de variable Descripción
Azure_Customer_Details_Container El nombre del contenedor de Azure Blob para almacenar información de clientes de formularios de pedidos.
azure_customer_detail_blob_sig Firma de URL de SAS para Azure_Customer_Details_Container.
azure_blob_base_url URL base del servicio de contenedor de Azure para Azure_Customer_Details_Container.

Consejo

Estos valores se pueden obtener de la URL de SAS, que tiene el formato {{azure_blob_base_url}}/{{Azure_Customer_Details_Container}}?{{azure_customer_detail_blob_sig}}.

Nombre de variable Descripción
customer_search_index_name Nombre del índice de Azure que almacena la información de clientes de los formularios de pedidos.
Azure_SalesOrders_Customer_Indexer Nombre del indexador de Azure que indexa datos de Azure_Customer_Details_Container al índice customer_search_index_name.
azure_ai_search_url URL base del servicio de búsqueda de Azure AI.
azure_ai_search_api_key Clave de API para el servicio de Azure AI Search.

Azure OpenAI

Nombre de variable Descripción
Max_Output_Tokens Número máximo de tokens que el LLM puede generar en una respuesta. GPT-4.1 admite hasta 32768 tokens, mientras que GPT-4o admite hasta 16384.
Azure_OpenAI_Deployment_Name Nombre de la implementación del LLM en Azure OpenAI.
azure_openai_base_url URL base del servicio de Azure OpenAI.
azure_openai_api_key Clave de API para el servicio de Azure OpenAI.

Slack

Nombre de variable Descripción
salesorder_slack_bot_token Token del bot de Slack que se obtiene después de crear la aplicación de Slack, utilizado para el token de acceso OAuth del usuario bot en la conexión de Slack.

Nota

La aplicación de Slack se crea en un paso posterior. Por ahora, puedes dejar esta variable en blanco.

Común

Nombre de variable Descripción
Authorized_User_Admin Nombre de contacto/correo electrónico que aparece en la respuesta enviada al usuario cuando ocurre un error.
Customer_LastOrder_DefaultDate La fecha predeterminada (mm/dd/yyyy) desde la cual se extraen órdenes de NetSuite durante la primera ejecución o una ejecución histórica cuando incrementalRun se establece en false. Por ejemplo: 06/01/2004.
Default_Last_Sync_Date Fecha de última sincronización predeterminada que se utilizará si el valor en caché no está disponible.
incrementalRun Cuando es true, solo se extraen órdenes incrementales (nuevas o actualizadas) de NetSuite. Cuando es false o está en blanco, se recupera un historial completo de órdenes desde la fecha predeterminada.
Only_Unexpired_Orders Cuando es true, solo se extraerán de NetSuite las órdenes con nextbilldate mayor a la fecha de hoy.

Probar conexiones

Prueba las configuraciones de extremo para verificar la conectividad usando los valores de variables de proyecto definidos.

Para probar las conexiones, ve a la pestaña Extremos de proyecto y conectores de la paleta de componentes de diseño, pasa el cursor sobre cada extremo y haz clic en Probar.

Implementar el proyecto

Implementa el proyecto de Studio.

Para implementar el proyecto, usa el menú acciones del proyecto para seleccionar Implementar.

Crear la API personalizada de Jitterbit

Crea una API personalizada usando API Manager para uno de los siguientes:

Crear el controlador de solicitudes de API del bot de Slack

Esta API personalizada de Jitterbit activará la operación Slack Bot API Request Handler. Configura y publica la API personalizada con los siguientes ajustes:

  • Servicio de API: Slack Bot API Request Handler
  • Ruta: /
  • Proyecto: Selecciona el proyecto de Studio creado desde Jitterbit Sales Agent en Marketplace
  • Operación a activar: Slack Bot API Request Handler
  • Método: POST
  • Tipo de respuesta: System Variable

Conserva la URL del servicio de la API publicada para usarla al crear la aplicación de Slack. La URL del servicio se encuentra en el panel de detalles de API en la pestaña Servicios pasando el cursor sobre la columna Acciones del servicio y haciendo clic en Copiar URL del servicio de API.

Controlador de solicitudes de API genérico

Esta API personalizada de Jitterbit activará la operación Generic API request Handler. No es requerida. Crea esta API si usas otras aplicaciones para procesar solicitudes de API HTTP. Configura y publica la API personalizada con los siguientes ajustes:

  • Nombre del servicio: Generic API request Handler
  • Proyecto: Selecciona el proyecto de Studio creado desde Jitterbit Sales Agent en Marketplace
  • Operación: Generic API request Handler
  • Método: POST
  • Tipo de respuesta: System Variable

Consejo

También se puede agregar un perfil de seguridad para la autenticación.

Cuerpo de la solicitud
{
    "username": "abc@abc.com",
    "sessionId": "123608",
    "prompt": "Order Forms details for xyz"
}
Respuesta
{
   "message": "Based on order forms, here are the complete order details: ...",
   "status_code": 200
}

Revisar flujos de trabajo del proyecto

En el proyecto Studio abierto, revisa los flujos de trabajo junto con las descripciones que aparecen a continuación para entender qué hacen. Las descripciones a continuación indican dónde podrías reemplazar el sistema modificando las configuraciones de puntos finales y los flujos de trabajo del proyecto.

  1. Utility-Upload Customer Order Forms to Azure

    Este flujo de trabajo automatiza el procesamiento de formularios de pedidos extrayendo detalles de NetSuite, subiendo documentos a Azure Blob Storage e indexándolos en el índice de Azure AI Search.

    Este flujo de trabajo debe ejecutarse primero para cargar todos los datos activos de clientes, poniendo los detalles del cliente disponibles para el agente de IA. La ejecución del flujo de trabajo se describe en Desencadenar los flujos de trabajo del proyecto más adelante en esta página.

    Si los datos del formulario de pedidos de clientes de tu organización están en un sistema diferente a NetSuite, debes modificar las operaciones del flujo de trabajo para reemplazar los componentes específicos de NetSuite con los de tu punto final.

  2. Main Entry - Slack API Request Handler

    Este flujo de trabajo gestiona las solicitudes entrantes del bot de Slack y verifica la autorización del usuario. Se desencadena a través de una API personalizada de Jitterbit cada vez que tu equipo de Ventas interactúa con la interfaz de usuario del chat del bot de Slack (es decir, envía un mensaje de Slack a este). La configuración de la API personalizada de Jitterbit se describe en Crear la API personalizada de Jitterbit más adelante en esta página.

    Si no estás usando Slack, este flujo de trabajo se puede ignorar y no se desencadenará. Para usar una interfaz de chat diferente con la que tu equipo de Ventas pueda interactuar, utiliza el flujo de trabajo Generic API Request Handler, también desencadenado a través de una API personalizada de Jitterbit.

  3. Main - AI Agent Tools Logic

    Después de recibir la autorización del usuario desde cualquiera de los flujos de trabajo Main Entry - Slack API Request Handler o Generic API Request Handler, este flujo de trabajo gestiona solicitudes de llamadas de funciones al modelo de lenguaje grande (LLM), tomando decisiones sobre qué herramienta ejecutar en función de la respuesta del LLM. Hay tres llamadas principales de herramientas:

    1. Customer_Order_Function: Esta herramienta responde consultas de usuarios sobre formularios de pedidos de clientes invocando la operación Main - Get Customer Order Form Details dentro del flujo de trabajo Tool-Customer Order Details.

    2. Pricing_Function: Esta herramienta responde consultas de usuarios sobre precios de productos invocando la operación Main - Pricing Sheet dentro del flujo de trabajo Tool-Pricing Sheets.

    3. Customer_Lookup_By_Location_Function: Esta herramienta responde consultas de usuarios para obtener clientes por ubicación o propietario de cuenta invocando la operación Main - Customer Lookup dentro del flujo de trabajo Tool - Customer Lookup.

  4. Tool-Customer Order Details

    Este flujo de trabajo recupera detalles de pedidos de clientes de NetSuite.

    Para usar un punto final diferente a NetSuite, crea una nueva operación para recuperar formularios de pedidos del sistema y asigna los resultados a la variable global extractedContent. Luego desencadena la nueva operación desde la operación Main - Get Customer Order Form Details.

  5. Tool-Pricing Sheets

    Este flujo de trabajo recupera precios de productos de Salesforce.

    En la configuración de la actividad Salesforce Query, la siguiente consulta recupera información de precios de productos por agente. Si tu organización de Salesforce no utiliza estos objetos y campos, o si la información de precios de productos se almacena en objetos/campos diferentes, este flujo de trabajo no funcionará correctamente. En ese caso, el agente no podrá responder preguntas sobre precios. Personaliza la consulta en este flujo de trabajo para alinearla con el modelo de datos de tu organización de Salesforce:

    SELECT Product2.Description,
           Product2.Family,
           Product2.ProductCode,
           CurrencyIsoCode,
           Name,
           UnitPrice,
           Pricebook2.Name,
           Id
    FROM   PricebookEntry
    WHERE  IsDeleted = false
           AND IsArchived = false
           AND IsActive = true
           AND Pricebook2.IsActive = true
           AND Pricebook2.IsDeleted = false
           AND Pricebook2.IsArchived = false
           AND Product2.IsActive = true
           AND Product2.IsDeleted = false
           AND Product2.IsArchived = false
           AND CurrencyIsoCode = '{{ currencycode }}'
    ORDER BY Name
    

    Para usar un punto final diferente a Salesforce, crea una nueva operación para recuperar precios de productos del sistema y asigna los resultados a la variable global pricing_sheet. Luego desencadena la nueva operación desde la operación Main - Pricing Sheet.

  6. Herramienta - Búsqueda de Clientes

    Este flujo de trabajo recupera clientes de Salesforce.

    En la configuración de la actividad Salesforce Query, la siguiente consulta recupera la información de cuenta del cliente. Si tu organización de Salesforce utiliza campos u objetos diferentes para los detalles del cliente, personaliza esta consulta en este flujo de trabajo según sea necesario:

    SELECT Id,
           BillingCity,
           BillingCountry,
           BillingState,
           Name
    FROM   Account
    WHERE  Type = 'Customer'
    

    Para utilizar un extremo diferente a Salesforce, crea una nueva operación para recuperar clientes del sistema y asigna los resultados a la variable global extractedContent. Luego, activa la nueva operación desde la operación Main - Customer Lookup.

  7. Utilidad - Obtener Todos los Propietarios de Cuenta

    Este flujo de trabajo recupera los propietarios de cuenta de Salesforce.

    En la configuración de la actividad Salesforce Query, la siguiente consulta recupera los propietarios de cuenta (nombre y correo electrónico) de todas las cuentas de tipo Customer o Partner. Si tu organización de Salesforce utiliza tipos de cuenta diferentes o campos personalizados para clasificar cuentas, personaliza esta consulta en este flujo de trabajo según sea necesario:

    SELECT OwnerId,
           Owner.Email,
           Owner.Name
    FROM   Account
    WHERE  Type IN ('Customer', 'Partner')
    

    Para utilizar un extremo diferente a Salesforce, crea una nueva operación para recuperar propietarios de cuenta del sistema y asigna los resultados a la variable Account_Owner_List. Luego, activa la nueva operación desde la operación Main - Get Owner List.

  8. Utilidad - Autorización de Usuario y Sesión

    Este flujo de trabajo administra la autorización del usuario y la sesión. Utiliza Jitterbit Cloud Datastore para mantener una lista de usuarios autorizados y sus sesiones activas.

    Para configurar este flujo de trabajo con un almacén de datos alternativo o un mecanismo de autorización para gestionar el acceso y las sesiones de los usuarios, modifica las operaciones del flujo de trabajo según sea necesario.

  9. Utilidad - Almacenamiento de Historial de Chat del Bot

    Este flujo de trabajo administra el almacenamiento del historial de chat del bot, que es esencial para proporcionar contexto de memoria a los LLMs. Para esto, aprovecha Jitterbit Cloud Datastore.

    Para integrar con otras soluciones de almacenamiento de datos para guardar y recuperar el historial de chat, modifica las operaciones del flujo de trabajo según sea necesario.

  10. Controlador de Solicitudes de API Genéricas

    Este flujo de trabajo procesa solicitudes HTTP de API desde cualquier aplicación. Para integrar con tus aplicaciones, crea una API personalizada de Jitterbit que active la operación Generic API request Handler. Luego, cualquier aplicación puede utilizar la URL de esta API para enviar y recibir solicitudes.

    La configuración de la API personalizada de Jitterbit se describe en Crear la API personalizada de Jitterbit más adelante en esta página.

Activar los flujos de trabajo del proyecto

Para la carga inicial de datos, ejecuta la operación en el primer flujo de trabajo, Utility-Upload Customer Order Forms to Azure. Esto se puede hacer utilizando la opción Run que se muestra al pasar el mouse sobre la operación. Necesitarás ejecutar la operación nuevamente en el futuro si tus datos se actualizan.

Consejo

Tal vez quieras poner esta operación en un cronograma para obtener datos actualizados de forma regular. Esto se puede hacer desde el menú acciones de la operación en Settings > Schedules.

Los otros dos flujos de trabajo principales se activan mediante las APIs personalizadas de Jitterbit:

  • Main Entry - Slack API Request Handler: Este flujo de trabajo se activa desde Slack mediante la API personalizada Slack Bot API Request Handler. Enviar un mensaje directo a la aplicación de Slack iniciará el activador de API personalizado.

  • Generic API Request Handler: Este flujo de trabajo se activa desde otra aplicación mediante la API personalizada Generic API request Handler. Enviar una solicitud a la API configurada iniciará el activador de API personalizado.

Todos los demás flujos de trabajo se activan mediante otras operaciones y son consecuencia de los mencionados anteriormente. No se pretende que se ejecuten por sí solos.

Solución de problemas

Si encuentras problemas, revisa los siguientes registros para obtener información detallada de solución de problemas:

Para obtener asistencia adicional, contacta al soporte de Jitterbit.