Agente de Ventas Jitterbit
Descripción general
El Agente de Ventas Jitterbit (Agente de Ventas) es un agente de IA proporcionado a través de Jitterbit Marketplace que está destinado a habilitar el equipo de ventas interno de su organización. Realiza lo siguiente:
- Se conecta a NetSuite y Salesforce para obtener órdenes de venta, precios y datos de clientes en tiempo real utilizando Jitterbit Integration Studio.
- Se integra con Azure OpenAI para potenciar un chatbot inteligente de Agente de Ventas accesible a través de una API personalizada creada con Jitterbit API Manager.
Este documento explica la configuración y operación del agente. Primero cubre los requisitos previos, luego proporciona ejemplos de solicitudes para mostrar lo que el agente puede hacer, y finalmente ofrece pasos para instalar, configurar y operar el agente.
Requisitos previos
Para utilizar el Agente de Ventas, se requieren o asumen los siguientes componentes en el diseño del agente.
Componentes de Harmony
Debe tener una licencia de Jitterbit Harmony con acceso a los siguientes componentes:
- Jitterbit Integration Studio
- La herramienta Decision (Beta)
- Jitterbit API Manager
- Agente de Ventas Jitterbit adquirido como un complemento de licencia
- Jitterbit Cloud Datastore (opcional)
Recursos de Azure
Debe tener una suscripción de Microsoft Azure con permisos para crear y gestionar los siguientes recursos:
- Almacenamiento de Azure con un contenedor Blob para almacenar detalles de clientes.
- Azure AI Search con un servicio de búsqueda que se puede configurar con un índice y un indexador.
- Azure OpenAI con un modelo
gpt-4o
ogpt-4.1
desplegado.
Consejo
Para seleccionar niveles de precios basados en sus requisitos específicos y uso anticipado, consulte niveles de precios de Azure AI Search y precios de Azure OpenAI.
Endpoints compatibles
Los siguientes endpoints están incorporados en el diseño del agente, pero otros sistemas pueden ser acomodados modificando las configuraciones de endpoints y flujos de trabajo del proyecto:
- NetSuite: La fuente de formularios de pedidos de clientes.
- Salesforce: La fuente de tus cuentas de clientes y precios de productos.
- Slack: La interfaz de chat para interactuar con el agente.
Si deseas usar una aplicación diferente como interfaz de chat, se incluye un flujo de trabajo separado e instrucciones para una configuración de API genérica en este agente de IA.
Ejemplos de solicitudes
Aquí hay ejemplos de solicitudes 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 / detalles de licencias
- "¿Qué productos ha comprado Acme Corp?"
- "¿Cuántas 'Producto X' tiene licenciadas ByteTech GmbH?"
- "¿Puedes darme los detalles del pedido para AcmeCloud Ltd?"
- "¿Cuál es la duración de la suscripción para Zento Systems?"
Consulta de precios de productos o planes
- "¿Cuál es el precio de 'Producto X' en USD?"
- "¿Cuánto cuesta la suscripción Profesional?"
- "¿Qué plan de suscripción permite 10 entornos?"
- "¿Puedes calcular el costo para 15 'Producto X' y 4 'Producto Y'?"
Consultas sobre propietarios de cuentas
- "¿Quién gestiona Acme Corp?"
- "¿Qué clientes son propiedad de jsmith@abc.com?"
- "Muestra los clientes atendidos por David Brown en Texas."
- "Lista las 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:
- Descargar personalizaciones e instalar el proyecto de Integration Studio.
- Revisar los flujos de trabajo del proyecto.
- Crear recursos de Microsoft Azure.
- Preparar el Jitterbit Cloud Datastore.
- Configurar variables del proyecto.
- Probar conexiones.
- Desplegar el proyecto.
- Crear la API personalizada de Jitterbit.
- Crear la aplicación de Slack, probar la conexión de Slack y volver a desplegar el proyecto.
- Activar los flujos de trabajo del proyecto.
Descargar personalizaciones e instalar el proyecto
Sigue estos pasos para descargar archivos de personalización e instalar el proyecto de Integration Studio para el agente de IA:
-
Inicia sesión en el portal de Harmony en https://login.jitterbit.com y abre Marketplace.
-
Localiza el agente de IA llamado Jitterbit Sales Agent. Para localizar el agente, puedes usar la barra de búsqueda o, en el panel de Filtros bajo Tipo, seleccionar Agente de IA para limitar la visualización a los agentes de IA disponibles.
-
Haz clic en el enlace de Documentación 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.
-
Haz clic en Iniciar Proyecto para abrir un diálogo de configuración de dos pasos para descargar personalizaciones e importar el agente de IA como un proyecto de Integration Studio.
Nota
Si aún no has comprado el agente de IA, se mostrará Obtener este agente en su lugar. Haz clic en él para abrir un diálogo informativo, luego haz clic en Enviar para que un representante se comunique contigo sobre la compra del agente de IA.
-
En el paso de configuración 1, Descargar Personalizaciones, se proporcionan los siguientes archivos para facilitar la configuración del índice y el indexador en Azure AI Search y para crear la aplicación de Slack. Selecciona los archivos y haz clic en Descargar Archivos:
-
Archivos de definición JSON del índice y el 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 aplicación de Slack
slack_app_manifest.json
Consejo
El diálogo de configuración incluye una advertencia de no importar la plantilla antes de aplicar las personalizaciones del punto final. Esa advertencia no se aplica a este agente de IA y se puede ignorar. Sigue el orden recomendado de pasos en esta documentación.
Haz clic en Siguiente.
-
-
En el paso de configuración 2, Crear un Nuevo Proyecto, selecciona un entorno donde se creará el proyecto de Integration Studio, luego haz clic en Crear Proyecto.
-
Se mostrará un cuadro de diálogo de progreso. Una vez que indique que el proyecto ha sido creado, utiliza el enlace del cuadro de diálogo Ir a Integration Studio o abre el proyecto directamente desde la página de Proyectos de Integration Studio.
Revisar flujos de trabajo del proyecto
En el proyecto abierto de Integration Studio, revisa los flujos de trabajo junto con las descripciones a continuación para entender qué hacen. Las descripciones a continuación indican dónde podrías reemplazar el sistema modificando las configuraciones de punto final y los flujos de trabajo del proyecto.
-
Utility-Subir Formularios de Pedido de Clientes a Azure
Este flujo de trabajo automatiza el procesamiento de formularios de pedido al extraer detalles de NetSuite, subir documentos a Azure Blob Storage e indexarlos en el índice de búsqueda de Azure AI.
Este flujo de trabajo debe ejecutarse primero para cargar todos los datos de clientes activos, haciendo que los detalles del cliente estén disponibles para el agente de IA. La ejecución del flujo de trabajo se describe en Activar los flujos de trabajo del proyecto más adelante en esta página.
Si los datos de formularios de pedido 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 por aquellos de tu punto final.
-
Entrada Principal - Manejador de Solicitudes de API de Slack
Este flujo de trabajo gestiona las solicitudes entrantes del bot de Slack y verifica la autorización del usuario. Se activa a través de una API personalizada de Jitterbit cada vez que tu equipo de ventas interactúa con la interfaz de chat del bot de Slack (es decir, envía un mensaje de Slack a él). 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 utilizando Slack, este flujo de trabajo puede ser ignorado y no se activará. Para usar una interfaz de chat diferente para que tu equipo de ventas interactúe, utiliza el flujo de trabajo
Manejador de Solicitudes de API Genérico
, que también se activa a través de una API personalizada de Jitterbit. -
Main - Lógica de Herramientas del Agente de IA
Después de recibir la autorización del usuario a través de los flujos de trabajo
Main Entry - Slack API Request Handler
oGeneric API Request Handler
, este flujo de trabajo gestiona las solicitudes de llamada a funciones al modelo de lenguaje grande (LLM), tomando decisiones sobre qué herramienta ejecutar según la respuesta del LLM. Hay tres llamadas a herramientas principales:-
Customer_Order_Function: Esta herramienta aborda las consultas de los usuarios sobre formularios de pedidos de clientes al invocar la operación
Main - Get Customer Order Form Details
dentro del flujo de trabajoTool-Customer Order Details
. -
Pricing_Function: Esta herramienta aborda las consultas de los usuarios sobre precios de productos al invocar la operación
Main - Pricing Sheet
dentro del flujo de trabajoTool-Pricing Sheets
. -
Customer_Lookup_By_Location_Function: Esta herramienta aborda las consultas de los usuarios para obtener clientes por ubicación o propietario de la cuenta al invocar la operación
Main - Customer Lookup
dentro del flujo de trabajoTool - Customer Lookup
.
-
-
Tool-Customer Order Details
Este flujo de trabajo recupera los detalles del pedido del cliente desde NetSuite.
Para usar un endpoint diferente a NetSuite, crea una nueva operación para recuperar formularios de pedidos del sistema y asigna los resultados a la variable global
extractedContent
global variable. Luego, activa la nueva operación desde la operaciónMain - Get Customer Order Form Details
. -
Tool-Pricing Sheets
Este flujo de trabajo recupera los precios de productos desde Salesforce.
En la configuración de la actividad de consulta de Salesforce, la siguiente consulta recupera información sobre 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 diferentes objetos/campos, 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 endpoint diferente al de Salesforce, crea una nueva operación para recuperar los precios de los productos del sistema y asigna los resultados a la variable global `pricing_sheet`. Luego, activa 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 de Consulta de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-query-activity/), la siguiente consulta recupera información de cuentas de clientes. Si tu organización de Salesforce utiliza diferentes campos u objetos para los detalles del cliente, personaliza esta consulta en este flujo de trabajo según sea necesario:
```sql
SELECT Id,
BillingCity,
BillingCountry,
BillingState,
Name
FROM Account
WHERE Type = 'Customer'
```
Para usar un endpoint diferente al de 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 Cuentas**
Este flujo de trabajo recupera propietarios de cuentas de Salesforce.
En la configuración de la [actividad de Consulta de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-query-activity/), la siguiente consulta recupera propietarios de cuentas (nombre y correo electrónico) para todas las cuentas de tipo `Cliente` o `Socio`. Si tu organización de Salesforce utiliza diferentes tipos de cuentas o campos personalizados para clasificar cuentas, personaliza esta consulta en este flujo de trabajo según sea necesario:
```sql
SELECT OwnerId,
Owner.Email,
Owner.Name
FROM Account
WHERE Type IN ('Customer', 'Partner')
```
Para usar un endpoint diferente al de Salesforce, crea una nueva operación para recuperar propietarios de cuentas 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 gestiona la autorización de usuarios y la sesión. Utiliza [Jitterbit Cloud Datastore](/es/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 en consecuencia.
9. **Utilidad - Almacenamiento del Historial de Chat del Bot**
Este flujo de trabajo gestiona el almacenamiento del historial de chat del bot, lo cual es esencial para proporcionar contexto de memoria a los LLMs. Aprovecha Jitterbit Cloud Datastore para este propósito.
Para integrarse con otras soluciones de almacenamiento de datos para almacenar y recuperar el historial de chat, modifica las operaciones del flujo de trabajo en consecuencia.
10. **Manejador de Solicitudes API Genérico**
Este flujo de trabajo procesa solicitudes API HTTP de cualquier aplicación. Para integrarse con tus aplicaciones, crea una API personalizada de Jitterbit que active la operación `Manejador de Solicitudes API Genérico`. La URL de esta API puede ser utilizada por cualquier aplicación para enviar y recibir solicitudes.
La configuración de la API personalizada de Jitterbit se describe en [Crear la API personalizada de Jitterbit](#create-the-jitterbit-custom-api) más adelante en esta página.
### Crear recursos de Microsoft Azure {: #create-microsoft-azure-resources }
Crea los siguientes recursos de Microsoft Azure y retén la siguiente información para configurar el agente de IA. Para crear y gestionar estos recursos, debes tener una suscripción de Microsoft Azure con los [permisos](https://learn.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) apropiados.
#### Contenedor de Blob de Azure {: #azure-blob-container }
Debes [crear un contenedor de Blob de Azure](https://learn.microsoft.com/en-us/azure/storage/blobs/blob-containers-portal) para almacenar los detalles del cliente. Los datos del contenedor de Blob serán indexados en Azure AI Search utilizando un índice y un indexador.
Necesitarás la URL SAS del contenedor para usarla en la determinación de los valores de las [variables del proyecto de Almacenamiento de Blob de Azure](#azure-blob-storage). Para generar la URL SAS:
1. En el portal de Azure, navega a [Cuentas de almacenamiento](https://portal.azure.com/#browse/Microsoft.Storage%2FStorageAccounts) y abre la cuenta de almacenamiento específica.
2. Desde el menú de recursos bajo **Almacenamiento de datos**, selecciona **Contenedores** y abre el contenedor específico.
3. Desde el menú de recursos bajo **Configuración**, selecciona **Tokens de acceso compartido**.
4. Usa el menú de **Permisos** para verificar que la URL de la firma de acceso compartido (SAS) para este contenedor tenga un mínimo de permisos de **Lectura** y **Escritura**:

5. Haz clic en **Generar token y URL SAS**.
6. Copia la **URL SAS del Blob** que se muestra en la parte inferior.
7. Determina los valores de las variables del proyecto de Azure Blob Storage a partir de la URL SAS. La URL 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 y el indexador, también necesitarás la clave de cuenta de Azure Blob Storage. Para [ver las claves de acceso de la cuenta](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys):
1. En el portal de Azure, navega a [Cuentas de almacenamiento](https://portal.azure.com/#browse/Microsoft.Storage%2FStorageAccounts) y abre la cuenta de almacenamiento específica.
2. En el menú de recursos, bajo **Seguridad + redes**, selecciona **Claves de acceso**.
3. Haz clic en **Mostrar claves** para revelar la clave de acceso que se utilizará durante la configuración de [Azure AI Search](#azure-ai-search).

#### Servicio de búsqueda de Azure AI {: #azure-ai-search-service }
Debes [crear un servicio de búsqueda de Azure AI](https://learn.microsoft.com/en-us/azure/search/search-create-service-portal) y configurar su índice y indexador para procesar los datos del contenedor Blob.
Necesitarás la URL del servicio de búsqueda de Azure AI y la clave API para determinar los valores de las [variables del proyecto de Azure AI Search](#azure-ai-search):
- **URL:** Para obtener el valor que se utilizará para `azure_ai_search_url`, consulta la documentación de Azure [Obtener información del servicio](https://learn.microsoft.com/en-us/azure/search/search-get-started-rbac?pivots=rest#get-service-information).
- **Clave API:** Para obtener el valor que se utilizará para `azure_ai_search_api_key`, consulta la documentación de Azure [Configurar acceso basado en roles](https://learn.microsoft.com/en-us/azure/search/search-get-started-rbac?pivots=rest#configure-role-based-access).
Puedes utilizar los archivos de definición JSON incluidos en los archivos de personalización del agente de IA para generar el índice y el indexador, o puedes crearlos tú mismo.
Si utiliza los archivos de definición proporcionados, debe reemplazar los siguientes marcadores de posición con sus propios valores de configuración:
**Azure_AI_Search_Indexer_Definition.json**
| Marcador de posición | Descripción |
| ---------------------------------------- | ---------------------------------------- |
| `{{Su Nombre del Servicio de Búsqueda de Azure AI}}` | El nombre del servicio de búsqueda de Azure AI. |
**Azure_AI_Search_Datasource_Definition.json**
| Marcador de posición | Descripción |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `{{Su Nombre del Servicio de Búsqueda de Azure AI}}` | El nombre del servicio de búsqueda de Azure AI. |
| `{{Su Nombre de Cuenta de Blob de Azure}}` | El nombre de la cuenta de Blob de Azure. |
| `{{Su Clave de Cuenta de Blob de Azure}}` | La clave de acceso para la cuenta de almacenamiento de Blob de Azure, obtenida como se describe en [contenedor de Blob de Azure](#azure-blob-container) arriba. |
| `{{su_nombre_contenedor_blob_azure}}` | El nombre del contenedor de Blob de Azure. |
#### Recurso de Azure OpenAI {: #azure-openai-resource }
Debe [crear un recurso de Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/create-resource?pivots=web-portal) y desplegar un modelo `gpt-4o` o `gpt-4.1` a través del portal de Azure AI Foundry.
Necesitará el nombre del despliegue, la URL del endpoint de Azure OpenAI y la clave API para determinar los valores de las [variables del proyecto de Azure OpenAI](#azure-openai). Para encontrar estos valores:
1. En el portal de Azure AI Foundry, abra el recurso específico de OpenAI.
2. Los valores a utilizar 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:
{style="width: 1286px"}
3. En el menú de navegación bajo **Recursos compartidos**, selecciona **Despliegues**. Se muestra el nombre del despliegue (`Azure_OpenAI_Deployment_Name`).
### Preparar Jitterbit Cloud Datastore {: #prepare-jitterbit-cloud-datastore }
[Crea dos almacenes de claves](/es/management-console/cloud-datastore/#key-storages) en Jitterbit Cloud Datastore, `Bot_Authorized_Users` y `askjb_sales_q_and_a`, cuyos campos tienen los nombres y tipos listados en las tablas a continuación.
A medida que agregues campos personalizados, utiliza las tablas a continuación para determinar si cada uno debe ser activado como **Requerido** en la interfaz de usuario de Cloud Datastore. Los campos `AlternativeKey` y `Value` son campos predeterminados que no se pueden eliminar ni activar.
Después de agregar campos personalizados, [agrega un registro de almacén de claves](/es/management-console/cloud-datastore/#key-storage-registers) para cada usuario que estará autorizado para usar el bot agente de IA. Debes definir manualmente los valores marcados 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 {: #bot_authorized_users }
Este almacén 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 agente de IA.
| Nombre | Tipo | Requerido | Definición del valor | Descripción |
| ---------------- | ---- | --------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Key` | Texto| Sí | Ingresar 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. Este valor se ingresa manualmente. |
| `AlternativeKey` | Texto| No | Autocompletado | La sesión para el usuario se generará automáticamente durante la ejecución. No se requiere entrada manual. |
| `Value` | Texto| No | Ingresar 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. Este valor se ingresa manualmente. Aunque no está marcado como un campo requerido por defecto, proporcionar un valor es necesario para que el agente de IA funcione. |
#### askjb_sales_q_and_a {: #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. Se utiliza por la integración para almacenar el historial de preguntas y respuestas. Todos los datos se ingresan automáticamente durante la ejecución de la interacción.
| Nombre | Tipo | Requerido | Definición del valor | Descripción |
| ------------------------- | -------- | --------- | -------------------- | --------------------------------------------------------------------------------------------- |
| `Key` | Texto | Sí | Autocompletado | Especifica el identificador único asignado a un mensaje por el sistema. |
| `AlternativeKey` | Texto | No | Autocompletado | Especifica el identificador único asignado a una sesión de chat por el sistema. |
| `Value` | Texto | No | No utilizado | No utilizado. |
| `slackChannel` | Texto | Sí | Autocompletado | El ID del canal de Slack desde el cual se envía el mensaje. |
| `User` | Texto | Sí | Autocompletado | El nombre de usuario de Slack de la persona que envía el mensaje. |
| `FirstName` | Texto | No | Autocompletado | Primer nombre de la persona que envía el mensaje. |
| `LastName` | Texto | No | Autocompletado | Apellido de la persona que envía el mensaje. |
| `Email` | Texto | Sí | Autocompletado | Dirección de correo electrónico de la persona que envía el mensaje. |
| `MessageTimestampText` | Texto | Sí | Autocompletado | El texto de la marca de tiempo del mensaje. |
| `UserQuestion` | Texto Grande | Sí | Autocompletado | La pregunta o mensaje enviado por el usuario al agente de IA. |
| `AIAnswer` | Texto Grande | Sí | Autocompletado | La respuesta generada por el agente de IA a la pregunta del usuario. |
| `ai_reformulate_question` | Texto Grande | No | Autocompletado | La pregunta del usuario después de ser reformulada o parafraseada por la IA para mejorar la comprensión. |
### Configurar variables del proyecto {: #configure-project-variables }
En el proyecto de Integration Studio instalado anteriormente a través de Marketplace, se deben establecer valores para las siguientes [variables del proyecto](/es/integration-studio/design/variables/project/).
Esto se puede hacer utilizando el menú de acciones <span class="icon-more"></span> del proyecto para seleccionar **Variables del Proyecto** y abrir un panel en la parte inferior de la página donde se pueden revisar y establecer los valores.
#### Salesforce {: #salesforce }
| Nombre de la variable | Descripción |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SF_Login_URL` | **Servidor Host** en la [conexión de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-connection/#configure-a-salesforce-connection) |
| `SF_Password` | **Contraseña** en la [conexión de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-connection/#configure-a-salesforce-connection) |
| `SF_Security_Token` | **Token de seguridad** en la [conexión de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-connection/#configure-a-salesforce-connection) |
| `SF_User_Name` | **Nombre de usuario** en la [conexión de Salesforce](/es/integration-studio/design/connectors/salesforce/salesforce-connector-configuration/salesforce-connection/#configure-a-salesforce-connection) |
#### NetSuite {: #netsuite }
| Nombre de la variable | Descripción |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NetSuite_Account` | **Cuenta** en la [conexión de NetSuite](/es/integration-studio/design/connectors/netsuite/netsuite-connector-configuration/netsuite-connection/#configure-a-netsuite-connection) |
| `NetSuite_Consumer_Key` | **Clave de consumidor** en la [conexión de NetSuite](/es/integration-studio/design/connectors/netsuite/netsuite-connector-configuration/netsuite-connection/#configure-a-netsuite-connection) |
| `NetSuite_Consumer_Secret` | **Secreto de consumidor** en la [conexión de NetSuite](/es/integration-studio/design/connectors/netsuite/netsuite-connector-configuration/netsuite-connection/#configure-a-netsuite-connection) |
| `NetSuite_Base_URL` | URL base de NetSuite, como `https://{{NetSuite_Account}}.suitetalk.api.netsuite.com`. |
| `NetSuite_Token_Key` | **Clave de token** en la [conexión de NetSuite](/es/integration-studio/design/connectors/netsuite/netsuite-connector-configuration/netsuite-connection/#configure-a-netsuite-connection) |
| `NetSuite_Token_Secret` | **Secreto de token** en la [conexión de NetSuite](/es/integration-studio/design/connectors/netsuite/netsuite-connector-configuration/netsuite-connection/#configure-a-netsuite-connection) |
#### Almacenamiento de Blob de Azure {: #azure-blob-storage }
| Nombre de variable | Descripción |
| --------------------------------------- | ------------------------------------------------------------------------------------ |
| `Azure_Customer_Details_Container` | El nombre del contenedor de Blob de Azure para almacenar información del cliente de los formularios de pedido. |
| `azure_customer_detail_blob_sig` | Firma de URL SAS para `Azure_Customer_Details_Container`. |
| `azure_blob_base_url` | URL base del servicio de contenedor de Azure para `Azure_Customer_Details_Container`. |
!!! tip "Consejo"
Estos valores se pueden derivar de la URL SAS, que tiene el formato de `{{azure_blob_base_url}}`/`{{Azure_Customer_Details_Container}}`?`{{azure_customer_detail_blob_sig}}`.
#### Búsqueda de AI de Azure {: #azure-ai-search }
| Nombre de variable | Descripción |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `customer_search_index_name` | El nombre del índice de Azure que almacena información del cliente de los formularios de pedido. |
| `Azure_SalesOrders_Customer_Indexer` | El 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 AI de Azure. |
| `azure_ai_search_api_key` | Clave API para el servicio de búsqueda de AI de Azure. |
#### Azure OpenAI {: #azure-openai }
| Nombre de variable | Descripción |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Max_Output_Tokens` | El número máximo de tokens que el LLM puede generar en una respuesta. [GPT-4.1](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models?tabs=global-standard%2Cstandard-chat-completions#gpt-41-series) admite hasta 32768 tokens, mientras que [GPT-4o](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models?tabs=global-standard%2Cstandard-chat-completions#gpt-4o-and-gpt-4-turbo) admite hasta 16384. |
| `Azure_OpenAI_Deployment_Name` | El nombre de la implementación para LLM en Azure OpenAI. |
| `azure_openai_base_url` | URL base del servicio de Azure OpenAI. |
| `azure_openai_api_key` | Clave API para el servicio de Azure OpenAI. |
#### Slack {: #slack }
| Nombre de variable | Descripción |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `salesorder_slack_bot_token` | El token del bot de Slack que se obtiene después de [crear la aplicación de Slack](#create-the-slack-app), utilizado para el **token de acceso OAuth del usuario Bot** en la [conexión de Slack](/es/integration-studio/design/connectors/slack/connection/). |
!!! note "Nota"
La aplicación de Slack se crea en un paso posterior. Por ahora, puedes dejar esta variable en blanco.
#### Common {: #common }
| Nombre de variable | Descripción |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Authorized_User_Admin` | Nombre/correo electrónico del contacto que se muestra en la respuesta enviada al usuario cuando ocurre un error. |
| `Customer_LastOrder_DefaultDate` | La fecha predeterminada (`mm/dd/yyyy`) desde la cual se extraen los pedidos de NetSuite durante la primera ejecución o una ejecución histórica cuando `incrementalRun` está configurado como `false`. Por ejemplo: `06/01/2004`. |
| `Default_Last_Sync_Date` | Fecha de última sincronización predeterminada que se utilizará si no hay un valor en caché disponible. |
| `incrementalRun` | Cuando es `true`, solo se extraen pedidos incrementales (nuevos o actualizados) de NetSuite. Cuando es `false` o está en blanco, se recupera un historial completo de pedidos desde la fecha predeterminada. |
| `Only_Unexpired_Orders` | Cuando es `true`, solo se extraen los pedidos con `nextbilldate` mayor que la fecha de hoy de NetSuite. |
### Probar conexiones {: #test-connections }
[Prueba](/es/integration-studio/design/connectors/connector-basics/#connectorbasics-connection-testing) las configuraciones de los endpoints para verificar la conectividad utilizando los valores de las variables del proyecto definidas.
Esto se puede hacer desde la pestaña <span class="icon-new-connection"></span> **Endpoints y conectores del proyecto** en la paleta de componentes de diseño, pasando el cursor sobre cada endpoint y haciendo clic en <span class="icon-test"></span> **Probar**.
### Desplegar el proyecto {: #deploy-the-project }
[Despliega](/es/integration-studio/design/projects/deployment/) el proyecto de Integration Studio. Esto se puede hacer utilizando el menú de acciones <span class="icon-more"></span> del proyecto para seleccionar **Desplegar**.
### Crear la API personalizada de Jitterbit {: #create-the-jitterbit-custom-api }
[Crea una API personalizada](/es/api-manager/api-manager-reference/api-configuration/custom-api/) utilizando API Manager para uno de los siguientes:
- [Controlador de solicitudes de API de Slack bot](#create-the-slack-bot-api-request-handler): Requerido si se utiliza la notificación de Slack incluida en el diseño de este agente de IA.
- [Controlador de solicitudes de API genérico](#generic-api-request-handler): Opcional. Utiliza para manejar solicitudes de API de cualquier aplicación.
#### Crear el controlador de solicitudes de API de Slack bot {: #create-the-slack-bot-api-request-handler }
Esta API personalizada de Jitterbit activará la operación `Controlador de solicitudes de API de Slack Bot`. Configura y publica la API personalizada con los siguientes ajustes:
- **Servicio API:** `Controlador de solicitudes de API de Slack Bot`
- **Ruta:** `/`
- **Proyecto:** Selecciona el proyecto de Integration Studio creado a partir del `Agente de Ventas de Jitterbit` en Marketplace
- **Operación a activar:** `Controlador de solicitudes de API de Slack Bot`
- **Método:** `POST`
- **Tipo de respuesta:** `Variable del sistema`
Retén la URL del servicio de la API publicada para su uso en la creación de la aplicación de Slack. La URL del servicio se puede encontrar en el [panel de detalles de la API](/es/api-manager/api-manager-user-interface/apis/#api-details-drawer) en la pestaña **Servicios** pasando el cursor sobre la columna **Acciones** del servicio y haciendo clic en <span class="icon-copy"></span> **Copiar URL del servicio API**.
#### Controlador de solicitudes de API genérico {: #generic-api-request-handler }
Esta API personalizada de Jitterbit activará la operación `Generic API request Handler`. No es obligatorio. Crea esta API si estás utilizando 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 Integration Studio creado a partir del `Jitterbit Sales Agent` en Marketplace
- **Operación:** `Generic API request Handler`
- **Método:** `POST`
- **Tipo de respuesta:** `System Variable`
!!! tip "Consejo"
También puedes agregar un [perfil de seguridad](/es/api-manager/api-manager-user-interface/security-profiles/) para la autenticación.
``` title="Cuerpo de la solicitud"
{
"username": "abc@abc.com",
"sessionId": "123608",
"prompt": "Order Forms details for xyz"
}
{
"message": "Based on order forms, here are the complete order details: ...",
"status_code": 200
}
Crea la aplicación de Slack, prueba la conexión y vuelve a desplegar el proyecto
Para crear la interfaz de chat del Sales Agent en Slack, crea una aplicación de Slack utilizando el archivo de manifiesto de la aplicación de Slack proporcionado con los archivos de personalización de este agente de IA. O, crea una desde cero.
Si utilizas el archivo de manifiesto de la aplicación de Slack proporcionado (slack_app_manifest.json
), debes reemplazar los siguientes marcadores de posición con tus propios valores de configuración:
Marcador de posición | Descripción |
---|---|
{{Reemplazar con el nombre del bot de Slack}} |
El nombre que deseas que tenga tu bot de Slack, tal como se muestra a los usuarios. Hay dos lugares en el manifiesto donde debes reemplazar este valor. |
{{Reemplazar con la URL de la API de Jitterbit}} |
La URL del servicio de la API personalizada de Jitterbit que creaste en Crear el controlador de solicitudes de API del bot de Slack. |
Después de instalar la aplicación de Slack, obtén su token de bot.
Reabre la configuración de variables del proyecto e ingresa el token de bot para el valor de la variable del proyecto salesorder_slack_bot_token
.
Una vez que se haya configurado el token de bot, prueba la conexión de Slack y vuelve a desplegar el proyecto.
Activar los flujos de trabajo del proyecto
Para el cargador de datos inicial, 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 Ejecutar de la operación, que se muestra al pasar el cursor sobre la operación. Necesitarás ejecutar la operación nuevamente en el futuro si tus datos se actualizan.
Consejo
Puede que desees programar esta operación en un horario para obtener datos actualizados de manera regular. Esto se puede hacer desde el menú de acciones de la operación en Configuración > Horarios.
Los otros dos flujos de trabajo principales son activados por las API personalizadas de Jitterbit:
-
Main Entry - Slack API Request Handler
: Este flujo de trabajo se activa desde Slack a través de la API personalizadaSlack Bot API Request Handler
. Enviar un mensaje directo a la aplicación de Slack iniciará el disparador de la API personalizada. -
Generic API Request Handler
: Este flujo de trabajo se activa desde otra aplicación a través de la API personalizadaGeneric API request Handler
. Enviar una solicitud a la API configurada iniciará el disparador de la API personalizada.
Todos los demás flujos de trabajo son activados por otras operaciones y están en la parte posterior de los mencionados anteriormente. No están destinados a ejecutarse por sí solos.
Solución de problemas
Revisa los registros de API y los registros de operaciones para obtener información detallada sobre la solución de problemas.
Para asistencia adicional, contacta al soporte de Jitterbit.