> ## 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.

# Prueba tus workflows

> Prueba tus workflows directamente desde el canvas de Brain Studio con un panel que muestra la conversación, los nodos ejecutados y el detalle de cada paso.

El Tester es el panel que se abre desde el canvas para probar un workflow antes de publicarlo. Te permite enviar mensajes como si fueras un usuario final, ver cada nodo que se ejecuta, e inspeccionar input, output y estado de cualquier paso del flujo. Comparte la misma interfaz visual que el [Debugger de producción](/guides/getting-started/ejecuciones-workflow), así que aprender uno es aprender el otro.

<Frame caption="Tester abierto sobre el canvas">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-overview-es.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=17e0a5548f294893604ea39d9152f7bd" alt="Panel del Tester con la conversación a la izquierda y el canvas detrás" width="1440" height="900" data-path="assets/images/brain/tester-overview-es.png" />
</Frame>

## Abrir el Tester

En la barra superior del canvas, haz clic en **Probar**. Se abrirá un panel lateral con el header del workflow, el área de conversación y un campo para escribir mensajes.

<Note>
  Si el workflow nunca se ejecutó, el primer mensaje que envíes inicia una sesión nueva. Cada sesión consume una ejecución (ver [Ejecuciones de Workflow](/guides/getting-started/ejecuciones-workflow)).
</Note>

## Vista Mensajes y Vista Ejecución

El panel tiene un toggle al pie con dos modos:

| Modo          | Qué muestra                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **Mensajes**  | Solo la conversación entre el bot y el usuario simulado. Útil para validar el flujo conversacional sin distracciones.           |
| **Ejecución** | Conversación + indicadores de cada nodo del workflow que se ejecutó (ícono, nombre y estado). Útil para depurar lógica interna. |

<Frame caption="Toggle entre Mensajes y Ejecución">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-view-toggle-es.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=21972f7f5125e7fd318b0b23d132bcde" alt="ViewModeToggle al pie del panel" width="223" height="36" data-path="assets/images/brain/tester-view-toggle-es.png" />
</Frame>

## Indicadores de nodo

En la vista Ejecución, cada nodo del workflow que corre durante la prueba aparece como una pequeña tarjeta intercalada entre los mensajes. La tarjeta muestra:

* **Ícono del canvas** del nodo (Start, HTTP, Código, AI Agent, Condicional, Tool, etc.)
* **Nombre del nodo** tal como está configurado en el canvas
* **Estado** (verde para éxito, rojo para error)

Cuando varios nodos se ejecutan en secuencia dentro de la misma ejecución, se agrupan en una sola tarjeta con un footer (`N nodos · Xms total`). Si el workflow llama a un sub-skill, los nodos internos del sub-skill aparecen como un grupo aparte para marcar la frontera de ejecución.

<Frame caption="Indicadores de nodo agrupados">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-node-indicators-es.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=077c5b1568044ced60ffdbcf9629bfa1" alt="Tarjetas de nodos agrupadas con ícono, nombre y estado" width="446" height="622" data-path="assets/images/brain/tester-node-indicators-es.png" />
</Frame>

## Panel de detalle de nodo

Al hacer clic sobre cualquier indicador, se abre un panel lateral redimensionable con toda la información de la ejecución del nodo:

<AccordionGroup>
  <Accordion title="Input">
    El payload exacto que entró al nodo.
  </Accordion>

  <Accordion title="Output">
    Lo que el nodo retornó (response, mensaje generado, resultado del condicional, etc.).
  </Accordion>

  <Accordion title="Estado inicial / Estado final">
    Snapshot de `$memory` y `$context` antes y después de la ejecución del nodo.
  </Accordion>

  <Accordion title="Errores">
    Si el nodo falló, mensaje y stack trace.
  </Accordion>
</AccordionGroup>

### Copiar el path de un valor

Haz clic sobre cualquier key del JSON en `Estado inicial` o `Estado final` para copiar el path completo en notación bracket al portapapeles. Por ejemplo, click sobre la key `url` dentro de `finalState.tool` copia `finalState.tool.url`. Aparece un tooltip "Copiado ✓" como confirmación.

<Tip>
  El path copiado se pega directo en cualquier campo de variable expression (`{{finalState.tool.url}}`) o en un bug report sin tener que reconstruirlo a mano.
</Tip>

## Acciones del panel de detalle

Encima del input/output, el panel tiene botones contextuales:

<Steps>
  <Step title="Ir al nodo">
    Centra el canvas detrás del Tester en el nodo correspondiente. Solo aparece para nodos del workflow activo. Para nodos internos de un sub-skill, el botón se oculta porque el nodo no vive en este canvas.
  </Step>

  <Step title="Debuggear Tool">
    Solo aparece para nodos de tipo Tool. Abre la ejecución interna del Tool con el listado completo de los nodos que corrieron dentro, incluyendo sus propios input/output/errores.
  </Step>
</Steps>

## Burbujas interactivas

Las burbujas que en producción son interactivas (botones, listas, CTAs) ahora son clickeables dentro del Tester. No tienes que escribir manualmente la respuesta para avanzar el flujo: haz clic en el botón como lo haría el usuario final.

| Tipo de burbuja        | Cómo se simula                                                                                                                                     |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Respuestas rápidas** | Botones tipo pill bajo el mensaje. Click envía el `payload.targetId` y avanza al nodo destino.                                                     |
| **Lista de opciones**  | Cards con título y descripción opcional. Click resuelve la opción contra `node.configuration.messages[0].options` y avanza por el branch correcto. |
| **CTA con URL**        | Botón con ícono de enlace externo. Click abre la URL en una pestaña nueva del navegador. No avanza el flujo (igual que en WhatsApp).               |
| **Carrusel**           | Tarjetas horizontales con imagen, título y descripción. El botón con URL abre el link en pestaña nueva.                                            |

<Frame caption="Burbuja de lista con opciones clickeables">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-interactive-list-es.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=6b0df93e7b14e454e1650f84b6ac4ce7" alt="Lista numerada con tres opciones renderizadas como cards" width="291" height="230" data-path="assets/images/brain/tester-interactive-list-es.png" />
</Frame>

## Limitaciones

* **Compatibilidad parcial con algunos nodos**: algunos nodos no son totalmente compatibles con el Tester y pueden comportarse diferente a como lo harían en producción. Cuando el Tester detecta uno de estos nodos en tu flujo, muestra un aviso con la opción **Probar en WhatsApp** para una prueba completa.
  <Frame caption="Aviso de nodos no compatibles en el Tester">
    <img src="https://mintcdn.com/jelouai/Lrfxiyx0IxnbhjnM/assets/images/brain/tester-incompatible-nodes-es.png?fit=max&auto=format&n=Lrfxiyx0IxnbhjnM&q=85&s=1454bb1bcd749bdf7a3110204954c477" alt="Aviso en el Tester que indica compatibilidad parcial y sugiere probar en WhatsApp" width="2704" height="1288" data-path="assets/images/brain/tester-incompatible-nodes-es.png" />
  </Frame>
* **Nodos internos de sub-skills**: el botón **Ir al nodo** no aplica a nodos que viven en un canvas distinto al activo. Para inspeccionarlos, abre el sub-skill por separado o usa **Debuggear Tool** si el contenedor es un Tool.
* **Pruebas no afectan producción**: la sesión del Tester es independiente del tráfico real. Las conversaciones, variables y memoria que generas aquí no quedan registradas en el [Debugger de producción](/guides/getting-started/ejecuciones-workflow) ni se contabilizan como conversaciones de usuarios reales (sí cuentan como ejecuciones para facturación).
* **Una sesión a la vez**: si cierras el Tester sin terminar una conversación, la sesión se descarta. La próxima vez que hagas clic en **Probar** se inicia una nueva.

## Casos de uso

<AccordionGroup>
  <Accordion title="Depurar una API que falla en producción">
    Un equipo de telco arma un flujo que valida facturas vía API. La API responde inconsistente y el flujo cae en producción. Ejecuta la prueba en el Tester, hace clic en el nodo HTTP que falla, ve el request y la response completos, y copia el path del campo problemático para reportarlo al equipo de backend, todo sin salir del builder.
  </Accordion>

  <Accordion title="Validar lógica de un Condicional">
    Un equipo de QA en retail valida flujos de cobro de suscripciones antes de cada release. Una rama del Condicional siempre da problemas porque la lógica de matching depende de strings con tildes. Ejecutan la prueba, ven exactamente qué término hizo match en el panel del nodo Condicional, y corrigen sin escalar al equipo técnico.
  </Accordion>

  <Accordion title="Validar la respuesta de un AI Agent">
    Un product manager configura un AI Agent que pide nombre y correo y los guarda en `$memory.datosUsuarios`. Desde el Tester confirma que el Estado final contiene la estructura correcta (`{ nombre, correo }`), copia el path `finalState.datosUsuarios.correo` y lo usa en el siguiente nodo de texto sin reconstruirlo a mano.
  </Accordion>

  <Accordion title="Probar un sub-skill desde el flujo padre">
    Un workflow padre llama a un sub-skill de validación de identidad. En el Tester ven que el sub-skill aparece como un grupo aparte de indicadores. Hacen clic en el nodo Tool dentro del sub-skill y usan **Debuggear Tool** para inspeccionar la ejecución interna del Tool sin abrir el sub-skill por separado.
  </Accordion>

  <Accordion title="Simular una conversación con botones">
    Un builder construye un flujo con un nodo Botones que ofrece tres opciones. En vez de escribir manualmente "1", "2" o "3" como hacía antes, hace clic directo en el botón dentro del Tester y el flujo avanza al nodo destino correcto, igual que como lo hará el usuario final en WhatsApp.
  </Accordion>
</AccordionGroup>

## Artículos relacionados

<CardGroup cols={2}>
  <Card title="Tu primer workflow" icon="flag" href="/guides/getting-started/tu-primer-workflow">
    Construye tu primer workflow paso a paso y pruébalo desde el Tester.
  </Card>

  <Card title="Ejecuciones de workflow" icon="play" href="/guides/getting-started/ejecuciones-workflow">
    Cómo se cuentan las ejecuciones y su impacto en facturación.
  </Card>

  <Card title="Compartir enlace de pruebas" icon="share" href="/guides/getting-started/compartir-link-pruebas">
    Genera un enlace público o sesión privada por WhatsApp para que tu equipo pruebe el workflow.
  </Card>

  <Card title="Publicar versiones" icon="rocket" href="/guides/getting-started/publicar-versiones">
    Cuando el flujo está listo en el Tester, publica una versión para producción.
  </Card>
</CardGroup>
