> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Qué es

> Las Tools son funciones reutilizables que ejecutan tareas específicas dentro de Jelou y devuelven un resultado, sin interactuar con el usuario.

Se usan dentro de los workflows para conectarse con servicios externos, hacer cálculos rápidos o automatizar acciones, ayudando a construir workflows más simples y mantenibles.

## Características

### Modo de ejecución

El modo depende de quién invoca la Tool:

* **Desde un workflow** (nodo Tool): la ejecución es **asíncrona**. El workflow se suspende, la Tool se ejecuta por separado y el workflow se reanuda cuando ella termina, con el resultado ya disponible en la variable de salida que configuraste. El mapeo de outputs y las rutas de éxito y error funcionan igual que antes.
* **Desde un Agente IA**: la ejecución es **síncrona**. El agente espera el resultado para incorporarlo a su respuesta.

En ambos casos la Tool no interactúa con el usuario: no hace preguntas ni espera respuestas mientras se ejecuta.

### Bloquear al usuario mientras corre la Tool

Como la ejecución desde un workflow es asíncrona, mientras la Tool trabaja el usuario queda libre: si escribe, su mensaje sale del workflow y lo atiende el router del proyecto. Si prefieres que espere, activa **Bloquear flujo** en el nodo Tool y configura un **Mensaje de espera**.

| Campo                 | Descripción                                                                                                                                                                              |
| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Bloquear flujo**    | Retiene al usuario en esta ejecución mientras la Tool corre. Desactivado por defecto, así que los nodos Tool que ya tienes se comportan igual que antes.                                 |
| **Mensaje de espera** | Texto que recibe el usuario cada vez que escribe mientras la Tool trabaja. Admite variables. Si lo dejas vacío, el bloqueo aplica igual y sus mensajes simplemente no reciben respuesta. |

Los mensajes que envía durante el bloqueo siempre se descartan: no entran al workflow, así que los nodos posteriores —incluido un Agente IA— no los ven. Solo reciben respuesta si configuraste un mensaje de espera.

El bloqueo se libera solo en cuanto la Tool termina, tanto por su ruta de éxito como por la de error, y el flujo continúa. Como respaldo tiene un tope de **5 minutos**: si la Tool tarda más, el usuario vuelve a conversar con el router y el workflow igual continúa cuando ella responde.

<Note>
  No aplica a las Tools que invoca un **Agente IA** —esa ejecución es síncrona y no suspende nada— ni a un nodo Tool que corre dentro de otra Tool: solo el workflow que conversa con el usuario puede retenerlo. Tampoco aplica en las pruebas desde el canvas ni cuando un operador toma la conversación. El nodo **Pausa** tiene la misma opción; consulta [Pausa](/guides/nodos/pausa#bloquear-el-flujo-durante-la-pausa).
</Note>

### Reutilizables entre workflows y proyectos

Una misma Tool puede usarse en múltiples Workflows y en cualquier proyecto dentro de la compañía.

### Publicación y uso interno

Pueden publicarse en el Marketplace (privadas por defecto) y consumirse desde cualquier proyecto activo.

### Versionamiento controlado

Cada cambio genera una nueva versión (v1, v2, v3), y puedes decidir qué versión usar en cada Flujo.

### Consumo externo opcional

Incluyen documentación API para uso externo y soporte para integración con MCP, cuando necesitas exponerlas fuera de Jelou.

### Tools nativas listas para usar

Además de crear tus propias Tools, Jelou ofrece Tools predefinidas que puedes usar directamente desde el nodo AI Agent.

### Composición de Tools

Puedes usar el nodo **Tool** dentro de otras Tools: anida lógica reutilizable con salvaguardas anti-recursión y trazabilidad completa. Consulta la guía de [Composición de Tools](/guides/tools/composicion).

## Tools nativas vs Tools personalizadas

**Tools nativas** son herramientas predefinidas disponibles dentro del nodo AI Agent. Se configuran en la sección **TOOLS** del nodo y permiten al Agente IA realizar acciones como buscar productos en el catálogo, transferir conversaciones a asesores, enviar mensajes interactivos, obtener fecha y hora actual, o calcular el día de la semana. Están listas para usar sin necesidad de crearlas.

**Tools personalizadas** son funciones que tú creas para necesidades específicas de tu negocio. Puedes construirlas usando nodos como API, Código o Datum, y luego publicarlas para reutilizarlas en otros proyectos. Son ideales cuando necesitas conectarte con servicios externos, realizar cálculos específicos o automatizar acciones que no están cubiertas por las Tools nativas.

## Casos de uso

Las Tools son ideales para:

### Integrar APIs y servicios externos

Conectar con sistemas de terceros, bases de datos o servicios web.

**Ejemplo:** Crear una Tool que consulta la API de Stripe para validar números de tarjeta sin guardarlos en tu Base de Datos.

### Realizar cálculos o transformaciones

Procesar datos, validar información o ejecutar operaciones matemáticas.

**Ejemplo:** Tool que calcula la elegibilidad de crédito según score + ingresos del cliente.

### Consultar y actualizar datos

Acceder a información almacenada o modificar registros.

### Ejecutar acciones específicas

Enviar notificaciones, generar reportes o realizar operaciones del sistema.

**Ejemplo:** Enviar una notificación cuando se completa un proceso. Una Tool se ejecuta al final de un flujo y envía una notificación por correo o WhatsApp al cliente confirmando que su solicitud fue recibida o aprobada (por ejemplo, una solicitud de crédito o una orden de compra).

## Tool vs Tool HTTPS

En Jelou existen dos tipos de Tools. Ambas ejecutan funciones automáticas, pero se usan en contextos distintos. La diferencia principal está en dónde se ejecutan y quién las consume.

| Aspecto             | Tool                                          | Tool HTTPS                                    |
| ------------------- | --------------------------------------------- | --------------------------------------------- |
| **Dónde se usa**    | Dentro de Jelou, en los workflows             | Desde cualquier servicio externo vía HTTP     |
| **Cómo se consume** | Directamente dentro de un Flujo               | Mediante llamadas API                         |
| **Seguridad**       | Manejo interno de la plataforma               | Requiere token de acceso                      |
| **Velocidad**       | Más rápido (ejecución interna)                | Puede tener latencia por la capa HTTP         |
| **Casos típicos**   | Datos internos, integraciones dentro de Jelou | Exponer funciones a otros sistemas o usar MCP |

### Regla práctica

✅ **Usa Tool** si la función vive y se ejecuta dentro de un flujo en Jelou

🌐 **Usa Tool HTTPS** si necesitas que algo externo la consuma

## Buenas prácticas

* **Nombres descriptivos**: Usa nombres claros que indiquen qué hace el Tool
* **Descripciones**: Agrega descripciones en inputs y outputs para facilitar el uso
* **Versionamiento consciente**: Publica nuevas versiones solo cuando hagas cambios significativos
* **Variables secretas**: Siempre marca como "secreto" cualquier información sensible (API keys, tokens, credenciales)
* **Manejo de errores**: Incluye validaciones y manejo de errores en tu Tool
* **Pruebas exhaustivas**: Prueba tu Tool con diferentes escenarios antes de publicarlo
* **Reutilización**: Diseña Tools genéricas que puedan usarse en múltiples contextos

## Errores comunes

* **No configurar variables de entorno**: Olvidar crear o configurar variables necesarias para autenticación
* **Usar valores hardcodeados**: Incluir API keys o credenciales directamente en el código en lugar de usar variables secretas
* **No validar inputs**: No verificar que los inputs tengan el formato o tipo correcto
* **Olvidar seleccionar la versión**: No elegir explícitamente la versión del Tool al usarlo en un Flujo
* **No probar antes de publicar**: Publicar un Tool sin verificar que funciona correctamente
* **Inventar IDs**: Usar IDs de equipos, operadores o recursos que no existen en la plataforma
* **No documentar cambios**: Publicar nuevas versiones sin documentar qué cambió y por qué

## Checklist de validación

Antes de publicar un Tool, verifica:

* El Tool tiene un nombre descriptivo y claro
* Todos los inputs están configurados con tipos y descripciones
* Los outputs están correctamente mapeados
* Las variables de entorno necesarias están creadas (y marcadas como secretas si aplica)
* El Tool ha sido probado con diferentes valores de entrada
* Se manejan correctamente los casos de error
* La documentación de inputs y outputs es clara
* No hay valores hardcodeados que deberían ser variables
* El Tool funciona correctamente cuando se consume desde un Flujo
* Si es Tool HTTPS, la documentación API está disponible y es correcta

## FAQ

<Accordion title="¿Puedo usar un Tool en múltiples Workflows?">
  Sí. Una vez publicado, un Tool puede usarse en cualquier Flujo de cualquier proyecto dentro de tu compañía. Las Tools son reutilizables a lo largo de toda la compañía.

  **Ejemplo:** Si creas un Tool 'calcular\_impuesto', puedes usarlo en 3 Workflows diferentes sin duplicar código.
</Accordion>

<Accordion title="¿Qué pasa si actualizo un Tool después de publicarlo?">
  Cuando publicas un Tool actualizado, se genera una nueva versión (v1, v2, v3, etc.). Los Workflows que ya usan versiones anteriores seguirán funcionando con esa versión. Puedes elegir qué versión usar en cada Flujo.
</Accordion>

<Accordion title="¿Cómo consumo un Tool desde un servicio externo?">
  Si tu Tool está publicado como Tool HTTPS, puedes acceder a la documentación API desde la sección del Tool. Allí encontrarás la URL, el token de seguridad y ejemplos de cómo consumirlo mediante HTTP. También puedes usar la integración MCP para que agentes de IA externos descubran y usen tu Tool automáticamente.
</Accordion>

<Accordion title="¿Las variables secretas son seguras?">
  Sí. Las variables marcadas como "secreto" están encriptadas y no son visibles para otros usuarios. Incluso cuando consumes un Tool HTTPS externamente, las variables secretas permanecen protegidas.
</Accordion>

<Accordion title="¿Qué nodos puedo usar en un Tool?">
  Los nodos soportados actualmente incluyen API, Código, Datum y el nodo **Tool** (para [componer Tools](/guides/tools/composicion)), entre otros. Consulta la sección de nodos en la documentación para ver la lista completa y sus características específicas.
</Accordion>

<Accordion title="¿Puedo ver el historial de versiones de un Tool?">
  Sí. En la documentación API del Tool, puedes ver todas las versiones publicadas y el historial de cambios. Esto te ayuda a entender qué cambió en cada versión y por qué.
</Accordion>

<Accordion title="¿Qué es MCP y cómo se relaciona con las Tools?">
  MCP (Model Context Protocol) es un protocolo para agentes de IA externos (no Jelou) que quieran descubrir y usar tus Tools.

  Al habilitar MCP, se genera una URL única que permite a estos agentes acceder a tus Tools publicadas y utilizarlas de forma autónoma.
</Accordion>
