Agente de Contactos CRM de Jitterbit
Descripción general
Jitterbit proporciona el Agente de Contactos CRM a clientes a través del Marketplace de Jitterbit. Este agente utiliza inteligencia artificial para gestionar registros de contactos en sistemas CRM como Salesforce a través de una interfaz conversacional, ayudando a los equipos de ventas a encontrar, crear y actualizar contactos de manera más eficiente. El agente usa la técnica de Generación Aumentada por Recuperación (RAG, por sus siglas en inglés), que combina el razonamiento de LLM con acceso a herramientas y fuentes de datos externas.
El agente recibe solicitudes en lenguaje natural a través de Slack y determina la intención del usuario utilizando Azure OpenAI. En función de cada solicitud, el agente busca contactos existentes en Salesforce, recupera datos de contactos de ZoomInfo, y realiza operaciones de creación o actualización en Salesforce previa aprobación del usuario. El agente mantiene el historial de conversación en Jitterbit Cloud Datastore para proporcionar respuestas contextualizadas durante una sesión.
El agente realiza las siguientes tareas:
- Recibe solicitudes en lenguaje natural de usuarios a través de Slack.
- Utiliza Azure OpenAI para extraer el nombre de la cuenta y determinar la intención de cada solicitud.
- Busca contactos existentes en Salesforce asociados a la cuenta especificada.
- Consulta ZoomInfo para obtener datos de contactos aún no presentes en Salesforce, incluyendo títulos de puesto, números telefónicos y direcciones de correo electrónico.
- Compara registros de contactos en Salesforce con datos de ZoomInfo para identificar información desactualizada o faltante.
- Presenta listados de contactos y recomendaciones de actualización al usuario en Slack para su aprobación antes de realizar cambios en Salesforce.
- Crea o actualiza registros de contactos en Salesforce previa aprobación del usuario.
- Almacena el historial de conversación en Cloud Datastore para mantener contexto entre mensajes dentro de una ventana de sesión de 30 minutos.
- Envía notificaciones de Slack a un canal de alertas de ventas configurado cuando se identifica que un contacto ya no trabaja en la empresa.
Este documento explica cómo configurar y operar este agente de IA. Cubre la arquitectura y los requisitos previos, proporciona orientación sobre cómo interactuar con el agente, y detalla los pasos para instalar, configurar y operar el agente de IA.
Arquitectura del agente de IA
Este agente de IA gestiona contactos de Salesforce a través de una interfaz conversacional de Slack. Una interacción típica sigue estos pasos:
- Un usuario envía un mensaje en lenguaje natural al Agente de Contactos CRM a través de Slack.
- El agente recupera el historial de conversación de Cloud Datastore para mantener el contexto de la sesión, luego llama a Azure OpenAI para extraer el nombre de la cuenta de la solicitud.
- El agente consulta Salesforce para validar el nombre de la cuenta y recuperar el ID de cuenta de Salesforce.
- El agente llama a Azure OpenAI una segunda vez, con herramientas disponibles, para determinar la intención del usuario y seleccionar la herramienta apropiada para ejecutar.
- La herramienta seleccionada consulta Salesforce y ZoomInfo según sea necesario para reunir datos de contactos.
- Para operaciones que crean o actualizan contactos, el agente presenta un resumen al usuario en Slack y espera aprobación antes de tomar medidas en Salesforce.
- El agente llama a Azure OpenAI sin herramientas para formatear la respuesta final utilizando un aviso específico del contexto, luego publica la respuesta de regreso al usuario en Slack.
- El historial de conversación se guarda en Cloud Datastore para usarlo en mensajes posteriores dentro de la misma sesión.
Diagrama de flujo de trabajo
El siguiente diagrama muestra el flujo de trabajo principal de manejo de solicitudes para el Agente de Contactos CRM.
Jitterbit
CRM Contact Agent" } SLK[fab:fa-slack
Slack] SF[fab:fa-salesforce
Salesforce] ZI[ZoomInfo API] AZR[Azure OpenAI REST call] AZM@{ shape: hex, label: "Azure OpenAI model" } CD@{ shape: hex, label: "fas:fa-database
Cloud Datastore" } SLK -->|1. User request| JSP JSP <-->|2. Session history| CD JSP <-->|3. Account lookup| SF JSP -->|4. Conversation and prompt| AZR AZR --> AZM AZM --> AZR AZR -->|5. Intent + tool selection| JSP JSP <-->|6. Contact data| SF JSP <-->|7. Contact data| ZI JSP -->|8. Response| SLK
Requisitos previos
Necesita los siguientes componentes para utilizar este agente de IA.
Componentes de Harmony
Debe contar con una licencia de Jitterbit Harmony con acceso a los siguientes componentes:
- Jitterbit Studio.
- Jitterbit Cloud Datastore para almacenar el historial de conversación y datos de contactos en preparación.
- Agente de Contactos CRM de Jitterbit adquirido como complemento de licencia.
Puntos de conexión compatibles
El agente de IA se conecta a los siguientes puntos de conexión. Puedes adaptar otros sistemas modificando las configuraciones de puntos de conexión y 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 un recurso de Azure OpenAI con un modelo implementado.
Consejo
Para información sobre precios, consulta la página de precios de Azure OpenAI.
Sistema CRM
El agente consulta y actualiza registros de contactos en Salesforce. Para usar Salesforce, debes tener una cuenta de Salesforce con acceso a API y permisos para leer y escribir registros de contactos.
Proveedor de datos de contactos
El agente recupera datos de contactos de ZoomInfo para complementar los registros existentes de Salesforce. Para usar ZoomInfo, debes tener una cuenta de ZoomInfo con credenciales de acceso a API.
Plataforma de mensajería
El agente utiliza Slack como su interfaz de conversación y canal de notificaciones. Para usar Slack, debes tener un espacio de trabajo de Slack con una aplicación de Slack configurada para recibir y responder mensajes. Para obtener instrucciones detalladas sobre cómo crear una aplicación de Slack, consulta Crear una aplicación de Slack.
Indicaciones del agente
El Agente de Contactos CRM recibe todas las solicitudes como mensajes en lenguaje natural enviados a la aplicación de Slack. Esta sección describe las reglas para indicaciones efectivas y proporciona indicaciones de ejemplo.
Directrices de indicaciones
Sigue estas directrices al enviar mensajes al agente:
-
Incluye el nombre de la cuenta en cada indicación. El LLM intenta inferir el nombre de la cuenta del historial de conversación (borrado cada 30 minutos), pero incluirlo explícitamente en cada mensaje produce resultados más confiables.
-
Para crear contactos nuevos, primero debes pedirle al agente que los encuentre utilizando una indicación de Contactos nuevos. El agente presenta una lista de contactos para aprobación antes de crear registros en Salesforce.
-
Para actualizar contactos existentes, primero debes ejecutar una verificación de actualización utilizando una indicación de Higiene de datos y actualizaciones. El agente presenta recomendaciones de actualización para tu aprobación antes de escribir cambios en Salesforce.
Indicaciones de ejemplo
Las siguientes indicaciones de ejemplo muestran los tipos de indicaciones que el agente puede manejar. Reemplaza {Account Name} con el nombre de la cuenta de Salesforce y {list of roles} con una lista separada por comas de títulos de trabajo relevantes.
Contactos nuevos
Usa estas indicaciones para encontrar y crear contactos nuevos para una cuenta usando datos de ZoomInfo:
Indicaciones
Find New Contacts for Account - {Account Name}Find New Contacts for Account - {Account Name}, only include contacts with roles related to {list of roles}Create new contacts for account - {Account Name}
Higiene de datos y actualizaciones
Usa estas indicaciones para identificar datos de contactos desactualizados o faltantes y aplicar actualizaciones:
Indicaciones
Run a hygiene check for Account - {Account Name}Run an update for existing contacts for account - {Account Name}
Contactos existentes
Usa estas indicaciones para buscar e informar sobre contactos que ya están en Salesforce:
Indicaciones
Find Existing Contacts for Account - {Account Name}Find last 3 contacts created for Account - {Account Name}When was the last time we spoke with a contact from {Account Name}Flag contacts with no activity in Salesforce for account {Account Name}Find any duplicate contacts for account - {Account Name}Find contacts missing titles, emails, phone numbers for account - {Account Name}Compare Salesforce contacts against ZoomInfo for account - {Account Name}Locate a contact for account {Account Name} that we usually reach out to
Indicadores especiales de acceso
Los siguientes indicadores requieren acceso de nivel administrador, tal como se configura en el script set.user.roles. Estas operaciones consumen créditos de ZoomInfo de tu asignación de cuenta:
Indicadores
Run an enriched hygiene check for Account - {Account Name}Enrich missing phone numbers for account - {Account Name}
Instalación, configuración y operación
Sigue estos pasos para instalar, configurar y operar este agente de IA:
- Descargar e instalar el proyecto
- Crear recursos de Microsoft Azure
- Crear la aplicación de Slack
- Verificar la URL de solicitud de Slack
- Configurar Cloud Datastore
- Configurar variables del proyecto
- Probar conexiones
- Implementar el proyecto
- Actualizar la API personalizada de Jitterbit
- Revisar los flujos de trabajo del proyecto
- Activar los flujos de trabajo del proyecto
Para obtener orientación sobre solución de problemas, consulta Solución de problemas.
Descargar e instalar el proyecto
Sigue estos pasos para instalar el proyecto de 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 CRM Contact Agent. Para localizar el agente, usa la barra de búsqueda o, en el panel Filters, bajo Type, selecciona AI Agent para limitar la visualización a agentes de IA.
-
Haz clic en el enlace Documentation del agente 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 Start Project para abrir un diálogo de configuración de dos pasos.
Nota
Si aún no has comprado el agente de IA, se mostrará Get agent en su lugar. 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.
-
En el paso de configuración 1, Download Customizations, descarga los archivos de configuración proporcionados.
-
Haz clic en Next.
-
En el paso de configuración 2, Create a New Project, selecciona un entorno donde se creará el proyecto de Studio y luego haz clic en Create Project.
-
Después de que el diálogo de progreso 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.
Crear recursos de Microsoft Azure
Crea los siguientes recursos de Microsoft Azure y anota la 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.
Debes crear un recurso de Azure OpenAI e implementar un modelo a través del portal de Azure AI Foundry.
Anota el nombre de la implementación, la URL del punto de conexión y la clave de API. Introduce estos valores cuando configures las variables del proyecto.
Para encontrar estos valores, sigue estos pasos:
-
En el portal de Azure AI Foundry, abre el recurso específico de OpenAI.
-
En la página de destino del recurso, copia la URL del punto de conexión (para la variable de proyecto
Openai.token) y la clave de API. -
En el menú de navegación bajo Shared resources, selecciona Deployments. Copia el nombre de la implementación (para la variable de proyecto
Openai.model).
Crear la aplicación de Slack
Para habilitar la interfaz de Slack del agente, sigue estos pasos:
-
Crea una aplicación de Slack e instálala en tu área de trabajo de Slack.
-
Obtén el token del bot y consérvalo para la variable de proyecto
Slack.token. -
Identifica el canal de Slack donde el agente responderá a los mensajes de los usuarios y consérvalo para la variable de proyecto
Slack.channel. -
Identifica el canal de Slack designado para recibir notificaciones de ejecutivos de cuenta y guárdalo en la variable de proyecto
salesforce.sales.alerts.channel.
Verifica la URL de solicitud de Slack
Después de crear la aplicación de Slack, debes pasar un desafío de verificación de URL de Slack en la página Event Subscriptions. El proyecto incluye una operación llamada Slack Enable para manejar esta verificación. Para pasar el desafío, implementa el proyecto y crea una API personalizada temporal que apunte a la operación Slack Enable. Una vez que se verifique la URL, completa los pasos de configuración restantes y luego actualiza la API para apuntar al controlador de solicitudes final.
Sigue estos pasos para verificar la URL de solicitud de Slack:
-
Implementa el proyecto de Studio. Para implementar el proyecto, usa el menú de acciones del proyecto y selecciona Deploy.
-
Crea una API personalizada para la operación Slack Enable usando estas configuraciones:
Configuración Valor Nombre del servicio slackApiRequestHandlerOperación Slack Enable Ruta /slackApiRequestHandlerMétodo POSTTipo de respuesta System VariableDespués de configurar el servicio, publica la API personalizada.
-
Copia la URL del servicio de API. Para encontrar la URL del servicio, ve al panel de detalles de API en la pestaña Services, coloca el cursor sobre la columna Actions del servicio y haz clic en Copy API service URL.
-
En la configuración de tu aplicación de Slack, navega a Features > Event Subscriptions y habilita los eventos. Pega la URL del servicio de API en el campo Request URL. Slack envía un desafío de verificación y un mensaje de éxito confirma que la URL se verificó. Haz clic en Save Changes.
-
Continúa con los pasos de configuración restantes. Después de completarlos, actualiza la API personalizada para apuntar a la operación Receiver - Slack API request handler en Update the Jitterbit custom API.
Configura Cloud Datastore
El agente usa tres almacenamientos de claves de Cloud Datastore para gestionar el historial de conversaciones y los datos de contactos en preparación:
| Almacenamiento de claves | Propósito |
|---|---|
| Slack agent AI | Almacena el historial de conversaciones para cada usuario de Slack. |
| Contact cache | Prepara datos de contacto cuando un usuario aprueba una acción de creación o actualización. |
| LLM token cost | Registra el uso de tokens para cada llamada de API de Azure OpenAI. |
Para cada almacenamiento de claves, sigue estos pasos:
- Crea el almacenamiento de claves con el nombre y los campos personalizados especificados a continuación. Los campos
Key,AlternativeKeyyValueestán presentes de forma predeterminada. - En la pestaña Components del proyecto de Studio bajo Endpoints, ubica cada actividad de Cloud Datastore asociada con ese almacenamiento. Cada actividad tiene el prefijo del nombre del almacenamiento de claves (por ejemplo,
CONTACT CACHE - Delete Items Cache CDS). Haz doble clic para abrirla, asigna el nombre del almacenamiento y guarda.
Slack agent AI
Crea un almacenamiento de claves llamado Slack agent AI. Añade los siguientes campos personalizados:
| Nombre del campo | Tipo | Descripción |
|---|---|---|
Key |
Texto | Se completa automáticamente. El identificador de sesión de conversación para el usuario de Slack. |
AlternativeKey |
Texto | No se usa. |
Value |
Texto | No se usa. |
system_content_big |
Texto grande | El contenido del indicador del sistema de LLM para la conversación. |
created_on |
Texto | Se completa automáticamente. La marca de tiempo cuando se creó el registro del historial de conversaciones. |
slack_channel_id |
Texto | El ID del canal de Slack asociado con la conversación. |
user_content |
Texto | El contenido del mensaje del usuario. |
Usa este almacenamiento para todas las actividades de Cloud Datastore con el prefijo SLACK AGENT AI.
Caché de contactos
Crea un almacenamiento de clave denominado Caché de contactos. Agrega los siguientes campos personalizados:
| Nombre del campo | Tipo | Descripción |
|---|---|---|
Key |
Texto | Se completa automáticamente. El ID de cuenta de Salesforce asociado a los datos de contacto preparados. |
AlternativeKey |
Texto | No se usa. |
Value |
Texto | No se usa. |
create_or_update |
Texto | Indica si los datos preparados corresponden a una acción de creación o actualización de contacto. |
jsonbody |
Texto grande | Los datos de contacto sin procesar recuperados de ZoomInfo o Salesforce, en formato JSON. |
contactbody |
Texto grande | La lista de contactos estructurada que se presenta al usuario para su aprobación. |
Utiliza este almacenamiento para todas las actividades de Cloud Datastore prefijadas con CONTACT CACHE.
Costo de tokens de LLM
Crea un almacenamiento de clave denominado Costo de tokens de LLM. Agrega los siguientes campos personalizados:
| Nombre del campo | Tipo | Descripción |
|---|---|---|
Key |
Texto | Se completa automáticamente. Un identificador para la llamada a la API de Azure OpenAI. |
AlternativeKey |
Texto | No se usa. |
Value |
Texto | No se usa. |
total_tokens |
Texto | El número total de tokens utilizados en la llamada a la API. |
prompt_tokens |
Texto | El número de tokens utilizados en el prompt. |
completion_tokens |
Texto | El número de tokens utilizados en la finalización. |
createdDate |
Texto | Se completa automáticamente. La marca de tiempo del momento en que se creó el registro de uso de tokens. |
content |
Texto grande | El contenido de la llamada a la API, registrado para el seguimiento del uso de tokens. |
Utiliza este almacenamiento para todas las actividades de Cloud Datastore prefijadas con LLM TOKEN COST.
Configura variables del proyecto
En el proyecto de Studio instalado desde Marketplace, establece valores para las siguientes variables del proyecto.
Para configurar variables del proyecto, utiliza el menú de acciones del proyecto y selecciona Variables del proyecto para abrir el panel de configuración.
ZoomInfo
| Nombre de la variable | Descripción |
|---|---|
zoom.username |
Nombre de usuario de la cuenta de la API de ZoomInfo. |
zoom.password |
Contraseña de la cuenta de la API de ZoomInfo. |
Salesforce
| Nombre de la variable | Descripción |
|---|---|
salesforce.username |
Nombre de usuario de la instancia de Salesforce. |
salesforce.url |
URL de la instancia de Salesforce. |
salesforce.token |
Token de seguridad de la cuenta de Salesforce. |
salesforce.password |
Contraseña de la instancia de Salesforce. |
salesforce.sales.alerts.channel |
Canal de Slack que recibe notificaciones cuando un contacto vinculado a una cuenta de Salesforce ya no trabaja en la empresa. |
Slack
| Nombre de la variable | Descripción |
|---|---|
slack.token |
El token de bot de Slack obtenido después de crear la aplicación de Slack, utilizado para el campo Bot User OAuth Token de la conexión de Slack. |
slack.channel |
Canal de Slack donde el agente escucha y responde a mensajes de usuarios. |
slack.bot.userId |
El ID de usuario del bot de Slack. Se usa para filtrar las propias llamadas a la API del bot de los registros de eventos de Slack. |
Azure OpenAI
| Nombre de variable | Descripción |
|---|---|
openai.token |
Clave de API utilizada para autenticar solicitudes al servicio Azure OpenAI. |
openai.temperature |
Controla la aleatoriedad de la salida del modelo. Establece el valor en 1 al usar el modelo o4-mini. De lo contrario, usa un valor de 0.5 o inferior para respuestas más consistentes. |
openai.model |
Nombre de implementación del modelo Azure OpenAI a utilizar. |
Cloud Datastore
| Nombre de variable | Descripción |
|---|---|
clouddatastore.token |
Token de autenticación de Cloud Datastore, obtenido desde la página Tokens de acceso de la consola de administración. |
Configuración de conversación
| Nombre de variable | Descripción |
|---|---|
cleanup.historytime |
Duración en segundos que se retiene el historial de conversación antes de la limpieza. El valor predeterminado es 1800 (30 minutos). Valores más largos envían más contexto al LLM por solicitud. |
Probar conexiones
Prueba las configuraciones del endpoint para verificar la conectividad usando los valores de variable de proyecto definidos.
Para probar conexiones, ve a la paleta de componentes de diseño pestaña Endpoints de proyecto y conectores, pasa el cursor sobre cada endpoint y haz clic en Prueba.
Implementar el proyecto
Implementa el proyecto de Studio.
Para implementar el proyecto, usa el menú acciones del proyecto y selecciona Implementar.
Actualizar la API personalizada de Jitterbit
Actualiza la API personalizada creada en Verifica la URL de solicitud de Slack para usar la operación Receiver - Slack API request handler en el flujo de trabajo Main Entry - Slack API Request Handler.
Actualiza estas configuraciones para el servicio:
| Configuración | Valor |
|---|---|
| Nombre del servicio | slackApiRequestHandler |
| Operación | Receiver - Slack API request handler |
| Ruta | /slackApiRequestHandler |
| Método | POST |
| Tipo de respuesta | System Variable |
Después de actualizar el servicio, publica la API personalizada.
Consejo
También puedes añadir un perfil de seguridad para autenticación.
Revisar flujos de trabajo del proyecto
El proyecto de Studio contiene 18 flujos de trabajo que implementan la funcionalidad del Agente de Contactos de CRM, organizados en cinco grupos funcionales.
Punto de entrada
| Flujo de trabajo | Descripción |
|---|---|
| Main Entry - Slack API Request Handler | Recibe mensajes entrantes de Slack e inicia el script del controlador principal. |
Entrada Principal - Controlador de Solicitudes de API de Slack
Este flujo de trabajo recibe mensajes de Slack y ejecuta el script del controlador principal (controller.receiver.async). El controlador orquesta el proceso completo de manejo de solicitudes: recupera el historial de conversaciones de Cloud Datastore, llama a Azure OpenAI para extraer el nombre de la cuenta y determinar la intención, enruta la solicitud a la herramienta apropiada, formatea la respuesta del LLM y publica el resultado de vuelta al usuario de Slack.
Integraciones de API
| Flujo de trabajo | Descripción |
|---|---|
| API - Controlador de Slack | Maneja todas las interacciones de API de Slack, incluido el envío de mensajes y la eliminación de indicadores de escritura. |
| API - Azure Open AI | Contiene ambos tipos de llamadas de API de Azure OpenAI: con herramientas para detección de intención y sin herramientas para formateo de respuestas. |
| API - Zoom Info | Aloja operaciones de API de ZoomInfo para búsqueda de contactos, autenticación y recuperación de datos de contactos. |
API - Controlador de Slack
Este flujo de trabajo contiene todas las operaciones de API de Slack utilizadas por el agente, incluidas consultas del perfil de Slack del usuario, envío de un indicador de "escribiendo...", envío de la respuesta final y eliminación del indicador de escritura después de que se envía la respuesta.
API - Azure Open AI
Este flujo de trabajo contiene dos tipos de llamadas de API de Azure OpenAI:
- Open AI - Prompt HTTP Con Herramientas: Envía una solicitud a Azure OpenAI con una lista de herramientas disponibles. Esta llamada se utiliza para extraer el nombre de la cuenta del mensaje del usuario y para determinar la intención de la solicitud.
- Open AI - Prompt HTTP Sin Herramientas: Envía una solicitud a Azure OpenAI sin herramientas, después de que la herramienta seleccionada haya recopilado todos los datos necesarios. Esta llamada genera la respuesta final lista para Slack utilizando un mensaje específico del contexto.
Las dos llamadas utilizan historiales de conversación separados. La llamada de determinación de intención utiliza historial específico de cuenta, mientras que la llamada de extracción de nombre de cuenta utiliza historial completo de conversación. Esta separación mantiene el contexto enviado al LLM enfocado y reduce el uso innecesario de tokens.
API - Zoom Info
Este flujo de trabajo aloja todas las operaciones de API de ZoomInfo. Las operaciones se organizan por tipo de dato en lugar de por herramienta, lo que las hace reutilizables en múltiples herramientas. Todas las operaciones de ZoomInfo requieren establecer la variable de proyecto core.zoom.resource en un valor válido. Los valores válidos a partir de marzo de 2026 son contact, authenticate, enrich_contact y scoop.
El script core. Load Zoom API Resource centraliza todas las URL base de API y objetos web, lo que facilita cambiar a un proveedor de datos de contactos diferente si es necesario. Todas las llamadas de datos de contactos comparten la actividad POST estándar de ZoomInfo. La llamada de autenticación utiliza una actividad separada.
Memoria y estado
| Flujo de trabajo | Descripción |
|---|---|
| Memoria - Cloud Datastore | Gestiona operaciones de lectura y escritura de Cloud Datastore para historial de conversaciones y datos de contactos en etapa. |
| Controlador de Limpieza de Conversaciones | Elimina el historial de conversaciones anterior al umbral de cleanup.historytime configurado. |
| Administrador de Tareas Programadas | Gestiona operaciones configuradas para ejecutarse en una programación. |
Memoria - Cloud Datastore
Este flujo de trabajo gestiona cuatro tipos de operaciones de Cloud Datastore distribuidas en tres almacenamientos de Cloud Datastore:
- Get Account Specific Slack History: Recupera el historial de conversación para una cuenta específica de Salesforce, proporcionando al LLM un contexto enfocado relevante para la solicitud actual.
- Get Master Slack History: Recupera el historial de conversación completo del usuario de Slack. El agente utiliza esto solo al llamar al LLM para extraer el nombre de la cuenta.
- Cache Last Message Controller: Almacena datos de contacto justo antes de que se apruebe una acción de creación o actualización. El agente indexa los datos mediante una combinación del ID de usuario de Slack e ID de cuenta de Salesforce, asegurando que se haga referencia a la lista de contactos correcta cuando el usuario aprueba una acción. Si la clave almacenada en la caché no coincide con la cuenta a la que se hace referencia actualmente, el agente reporta una discrepancia y no continúa.
- Store Token Costs to Cache: Registra el uso de tokens de cada llamada de API de Azure OpenAI para revisión del cliente e informes de costos.
Conversation Cleanup Controller
Este flujo de trabajo elimina el historial de conversación que excede el umbral cleanup.historytime. Cuando el LLM recibe más datos conversacionales de los que puede procesar efectivamente, puede ser incapaz de determinar la intención de la solicitud actual. En este caso, el agente reduce la ventana de historial a 10 minutos y pide al usuario que reenvíe el mensaje.
Scheduler Task Manager
Este flujo de trabajo gestiona cualquier operación configurada para ejecutarse en cronogramas de operaciones.
Dos operaciones tienen requisitos de programación específicos:
-
Conversation Cleanup Controller: Programar para ejecutarse al menos cada 5 minutos. Esto controla qué tan cercanamente la retención real coincide con el umbral
cleanup.historytime. Con menor frecuencia de ejecución, el historial puede permanecer más tiempo más allá del límite configurado. -
Account Executive Notifications: Programar para ejecutarse una vez al día. La consulta predeterminada está limitada a los datos de ese día, por lo que ejecutarla más de una vez devuelve duplicados.
Para configurar una programación, abre el menú de acciones de la operación y selecciona Settings > Schedules.
Utilities
| Workflow | Description |
|---|---|
| Utility Tools | Contiene scripts de utilidad reutilizables para búsquedas de cuentas de Salesforce y verificación de comunicaciones por correo electrónico. |
| Tools Supervisor | Dirige solicitudes al flujo de trabajo de herramienta apropiado según la intención devuelta por Azure OpenAI. |
Utility Tools
Este flujo de trabajo contiene scripts de utilidad reutilizables que se pueden llamar en múltiples flujos de trabajo de herramientas:
Utility- Get Account id from Salesforce: Busca un ID de cuenta de Salesforce por nombre de cuenta.Utility- Check for Email COMs by Name: Busca en Salesforce conversaciones por correo electrónico por nombre de contacto y dominio. Requiere que un nombre de contacto y dominio se establezcan como argumentos antes de que se llame al script.Utility- Get Number of Contacts for SF Account: Devuelve el número de contactos asociados con una cuenta de Salesforce. Esta utilidad no está actualmente en uso.Utility- Check Empty Email Contacts: Itera a través de un diccionario de contactos que no tienen dirección de correo electrónico en Salesforce y llama a la verificación de comunicaciones por correo electrónico para cada uno, buscando cualquier actividad de correo electrónico relacionada.
Tools Supervisor
Este flujo de trabajo lee el valor de intención devuelto por Azure OpenAI (almacenado en la variable de proyecto openai.response.route) y utiliza una declaración de caso para dirigir la solicitud al flujo de trabajo de herramienta apropiado. Si se encuentra un nombre de cuenta pero no se puede determinar ruta (típicamente debido a un historial de conversación largo), el agente limpia el historial y pide al usuario que reenvíe el mensaje.
Herramientas del agente
| Flujo de trabajo | Descripción |
|---|---|
| Buscar contacto existente | Obtiene todos los contactos de una cuenta de Salesforce especificada. |
| Buscar contactos nuevos | Consulta ZoomInfo para buscar contactos que aún no estén en Salesforce y cruza referencias los resultados con registros existentes. |
| Confirmar creación de contacto | Presenta una lista de contactos nuevos al usuario en Slack para su aprobación antes de crear registros en Salesforce. |
| Ejecutar creación de contacto | Crea registros de contacto aprobados en Salesforce mediante una operación de upsert basada en la dirección de correo electrónico. |
| Verificación de higiene | Compara registros de contactos de Salesforce con datos de ZoomInfo para identificar discrepancias de títulos e información faltante. |
| Verificación de higiene enriquecida | Realiza una comparación detallada de registros de contactos de Salesforce y ZoomInfo para administradores. Este flujo consume créditos de ZoomInfo. |
| Notificaciones de ejecutivos de cuentas | Envía notificaciones de Slack al canal de alertas de ventas cuando se identifica que un contacto ya no trabaja en la empresa. |
| Confirmar actualización de contacto | Presenta recomendaciones de actualización de contacto al usuario en Slack para su aprobación antes de aplicar cambios en Salesforce. |
| Ejecutar actualización de contacto | Aplica las actualizaciones de contacto aprobadas en Salesforce e informa del éxito o fracaso al usuario. |
Buscar contacto existente
Este flujo de trabajo obtiene todos los contactos de una cuenta especificada desde Salesforce. El nombre del script es search_existing_contact - controller. El flujo de trabajo almacena los datos de contacto en salesforce.response.body, los escribe en $tool.response para procesamiento por LLM y configura la verificación de respuesta en master_prompt.
Buscar contactos nuevos
Este flujo de trabajo obtiene datos de contactos de ZoomInfo para una cuenta especificada. El nombre del script es search_new_contact Controller. El flujo de trabajo realiza una llamada a la API de ZoomInfo por cada puesto laboral configurado en la variable de proyecto $zoom.query_jobTitle. Limita esta variable a cuatro o cinco roles para mantener tiempos de respuesta aceptables.
El flujo de trabajo primero ejecuta una búsqueda abierta sin filtros de rol para obtener una lista de contactos sin restricciones, luego realiza llamadas específicas por rol. El flujo de trabajo asigna resultados a un esquema JSON compartido (contactdata.json) utilizado en otras herramientas. El flujo de trabajo cruza referencias cada contacto nuevo contra Salesforce para verificar si ya existe en la cuenta. La herramienta también verifica la actividad de correo electrónico de los contactos encontrados a través de ZoomInfo utilizando la utilidad Utility- Check Empty Email Contacts.
Confirmar creación de contacto
Este flujo de trabajo obtiene la lista de contactos almacenada por el flujo de trabajo Buscar contactos nuevos desde la clave de almacenamiento Cloud Datastore Caché de contactos y la envía a Azure OpenAI con un mensaje confirm_create_contact. El LLM deduce direcciones de correo electrónico a partir de los datos disponibles de Salesforce y presenta una lista de contactos estructurada al usuario en Slack, solicitando aprobación antes de crear registros. El flujo de trabajo almacena los datos de contacto aprobados nuevamente en la caché de contactos para usar en el flujo de trabajo Ejecutar creación de contacto.
Ejecutar Creación de Contacto
Este flujo de trabajo recupera la lista de contactos aprobados desde la clave de almacenamiento Cloud Datastore Contact cache y compara el ID de cuenta de Salesforce en la clave de caché con la cuenta actualmente referenciada en la conversación. Si los IDs coinciden, el flujo de trabajo crea registros de contacto en Salesforce usando una operación de upsert basada en la dirección de correo electrónico. Si hay un desajuste, el agente notifica al usuario y no procede con la creación.
Verificación de Higiene
Este flujo de trabajo recupera todos los contactos de una cuenta de Salesforce, luego consulta ZoomInfo para cada contacto a fin de identificar desajustes de título o información faltante. El flujo de trabajo añade contactos sin una dirección de correo electrónico en Salesforce a un diccionario y los verifica para detectar actividad de correo electrónico usando la utilidad Utility- Check Empty Email Contacts. El flujo de trabajo almacena datos tanto de Salesforce como de ZoomInfo en $tool.response y establece la verificación de respuesta en hygiene_check.
Verificación de Higiene Enriquecida
Este flujo de trabajo funciona de manera similar al flujo de trabajo de Verificación de Higiene pero está restringido a administradores, tal como se configura en el script set.user.roles. Este flujo de trabajo consume créditos de ZoomInfo de tu asignación de cuenta. Este flujo de trabajo establece la verificación de respuesta en enriched_hygiene_check.
Notificaciones a Ejecutivos de Cuenta
Este flujo de trabajo envía una notificación de Slack al canal configurado en salesforce.sales.alerts.channel cuando el agente identifica un contacto asociado a una cuenta de Salesforce conocida que ya no trabaja en esa empresa.
Confirmar Actualización de Contacto
Este flujo de trabajo recupera todos los contactos de la cuenta de Salesforce especificada y consulta ZoomInfo para cada contacto a fin de verificar si el título ha cambiado. También verifica en Salesforce la actividad de correo electrónico asociada a cada contacto. En función de estas verificaciones, una transformación asigna a cada contacto una de tres acciones recomendadas: recommend_update, recommend_donotupdate o recommend_delete. El agente presenta estas recomendaciones al usuario para su aprobación antes de tomar cualquier acción. Ten en cuenta que el Agente de Contacto CRM no elimina contactos de Salesforce; la acción recommend_delete indica al usuario que un contacto podría necesitar ser removido.
Ejecutar Actualización de Contacto
Este flujo de trabajo recupera los datos de actualización aprobados desde la clave de almacenamiento Cloud Datastore Contact cache, verifica que la cuenta referenciada coincida con el ID de cuenta almacenado en la clave de caché, luego aplica las actualizaciones aprobadas a los registros de contacto de Salesforce. El flujo de trabajo reporta el éxito o fallo de cada actualización al usuario en Slack.
Activar los flujos de trabajo del proyecto
El Agente de Contacto CRM se activa mediante mensajes entrantes de la aplicación de Slack conectada al flujo de trabajo Main Entry - Slack API Request Handler. No necesitas ejecutar manualmente una operación para iniciar el agente; la aplicación de Slack se encarga de activarlo automáticamente cuando los usuarios envían mensajes.
El flujo de trabajo Scheduler Task Manager soporta calendarios de operación para cualquier operación que elijas ejecutar de manera recurrente. Para configurar un calendario, abre el menú de acciones de la operación y selecciona Settings > Schedules.
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 con Soporte de Jitterbit.