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

# Teste seus workflows

> Teste seus workflows diretamente do canvas do Brain Studio com um painel que mostra a conversa, os nós executados e o detalhe de cada passo.

O Tester é o painel que se abre a partir do canvas para testar um workflow antes de publicá-lo. Você pode enviar mensagens como se fosse um usuário final, ver cada nó que é executado e inspecionar input, output e estado em qualquer passo do fluxo. Compartilha a mesma interface visual do [Debugger de produção](/pt/guias/primeiros-passos/execucoes-workflow), então aprender um é aprender o outro.

<Frame caption="Tester aberto sobre o canvas">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-overview-pt.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=d44a491225c5b5ab91080eba433eec66" alt="Painel do Tester com a conversa à esquerda e o canvas atrás" width="1440" height="900" data-path="assets/images/brain/tester-overview-pt.png" />
</Frame>

## Abrir o Tester

Na barra superior do canvas, clique em **Testar**. Um painel lateral se abrirá com o cabeçalho do workflow, a área de conversa e um campo para digitar mensagens.

<Note>
  Se o workflow nunca foi executado, a primeira mensagem que você enviar inicia uma nova sessão. Cada sessão consome uma execução (veja [Execuções de Workflow](/pt/guias/primeiros-passos/execucoes-workflow)).
</Note>

## Visão Mensagens e Visão Execução

O painel tem um toggle ao pé com dois modos:

| Modo          | O que mostra                                                                                                              |
| ------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Mensagens** | Apenas a conversa entre o bot e o usuário simulado. Útil para validar o fluxo conversacional sem distrações.              |
| **Execução**  | Conversa + indicadores de cada nó do workflow que foi executado (ícone, nome e estado). Útil para depurar lógica interna. |

<Frame caption="Toggle entre Mensagens e Execução">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-view-toggle-pt.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=deab033a08b643accba36d83fa843e19" alt="ViewModeToggle ao pé do painel" width="233" height="36" data-path="assets/images/brain/tester-view-toggle-pt.png" />
</Frame>

## Indicadores de nó

Na visão Execução, cada nó do workflow que roda durante o teste aparece como um pequeno cartão intercalado entre as mensagens. O cartão mostra:

* **Ícone do canvas** do nó (Start, HTTP, Código, AI Agent, Condicional, Tool, etc.)
* **Nome do nó** como está configurado no canvas
* **Estado** (verde para sucesso, vermelho para erro)

Quando vários nós são executados em sequência dentro da mesma execução, eles são agrupados em um único cartão com um rodapé (`N nós · Xms total`). Se o workflow chamar um sub-skill, os nós internos do sub-skill aparecem como um grupo separado para marcar a fronteira de execução.

<Frame caption="Indicadores de nó agrupados">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-node-indicators-pt.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=047faf25087be48290d5cc3d3b7ff31c" alt="Cartões de nós agrupados com ícone, nome e estado" width="446" height="622" data-path="assets/images/brain/tester-node-indicators-pt.png" />
</Frame>

## Painel de detalhe de nó

Ao clicar em qualquer indicador, abre-se um painel lateral redimensionável com toda a informação da execução do nó:

<AccordionGroup>
  <Accordion title="Input">
    O payload exato que entrou no nó.
  </Accordion>

  <Accordion title="Output">
    O que o nó retornou (response, mensagem gerada, resultado do condicional, etc.).
  </Accordion>

  <Accordion title="Estado inicial / Estado final">
    Snapshot de `$memory` e `$context` antes e depois da execução do nó.
  </Accordion>

  <Accordion title="Erros">
    Se o nó falhou, mensagem e stack trace.
  </Accordion>
</AccordionGroup>

### Copiar o path de um valor

Clique em qualquer key do JSON em `Estado inicial` ou `Estado final` para copiar o path completo em notação bracket para a área de transferência. Por exemplo, clicar na key `url` dentro de `finalState.tool` copia `finalState.tool.url`. Aparece um tooltip "Copiado ✓" como confirmação.

<Tip>
  O path copiado cola diretamente em qualquer campo de variable expression (`{{finalState.tool.url}}`) ou em um bug report sem precisar reconstruí-lo manualmente.
</Tip>

## Ações do painel de detalhe

Acima do input/output, o painel tem botões contextuais:

<Steps>
  <Step title="Ir ao nó">
    Centraliza o canvas atrás do Tester no nó correspondente. Aparece somente para nós do workflow ativo. Para nós internos de um sub-skill, o botão fica oculto porque o nó não vive neste canvas.
  </Step>

  <Step title="Debugar Tool">
    Aparece somente para nós do tipo Tool. Abre a execução interna do Tool com a lista completa dos nós que rodaram dentro, incluindo seus próprios input/output/erros.
  </Step>
</Steps>

## Bolhas interativas

As bolhas que em produção são interativas (botões, listas, CTAs) agora são clicáveis dentro do Tester. Você não precisa digitar manualmente a resposta para avançar o fluxo: clique no botão como o usuário final faria.

| Tipo de bolha         | Como simular                                                                                                                                  |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Respostas rápidas** | Botões em estilo pill abaixo da mensagem. Clicar envia o `payload.targetId` e avança ao nó destino.                                           |
| **Lista de opções**   | Cartões com título e descrição opcional. Clicar resolve a opção contra `node.configuration.messages[0].options` e avança pelo branch correto. |
| **CTA com URL**       | Botão com ícone de link externo. Clicar abre a URL em uma nova aba do navegador. Não avança o fluxo (igual ao WhatsApp).                      |
| **Carrossel**         | Cartões horizontais com imagem, título e descrição. O botão com URL abre o link em nova aba.                                                  |

<Frame caption="Bolha de lista com opções clicáveis">
  <img src="https://mintcdn.com/jelouai/wRDmKJuKtAf5P_aE/assets/images/brain/tester-interactive-list-pt.png?fit=max&auto=format&n=wRDmKJuKtAf5P_aE&q=85&s=c2f7ad1222cb83cf27468a24c9255c82" alt="Lista numerada com três opções renderizadas como cartões" width="291" height="230" data-path="assets/images/brain/tester-interactive-list-pt.png" />
</Frame>

## Limitações

* **Compatibilidade parcial com alguns nós**: alguns nós não são totalmente compatíveis com o Tester e podem se comportar de forma diferente do que em produção. Quando o Tester detecta um desses nós no seu fluxo, exibe um aviso com a opção **Testar no WhatsApp** para um teste completo.
  <Frame caption="Aviso de nós incompatíveis no Tester">
    <img src="https://mintcdn.com/jelouai/Lrfxiyx0IxnbhjnM/assets/images/brain/tester-incompatible-nodes-pt.png?fit=max&auto=format&n=Lrfxiyx0IxnbhjnM&q=85&s=306f796dfd6092a5450f42887122cc30" alt="Aviso no Tester indicando compatibilidade parcial e sugerindo testar no WhatsApp" width="2704" height="1286" data-path="assets/images/brain/tester-incompatible-nodes-pt.png" />
  </Frame>
* **Nós internos de sub-skills**: o botão **Ir ao nó** não se aplica a nós que vivem em um canvas diferente do ativo. Para inspecioná-los, abra o sub-skill separadamente ou use **Debugar Tool** se o contêiner for um Tool.
* **Testes não afetam produção**: a sessão do Tester é independente do tráfego real. Conversas, variáveis e memória que você gera aqui não ficam registradas no [Debugger de produção](/pt/guias/primeiros-passos/execucoes-workflow) nem contam como conversas de usuários reais (contam sim como execuções para faturamento).
* **Uma sessão por vez**: se você fechar o Tester sem terminar uma conversa, a sessão é descartada. Na próxima vez que clicar em **Testar**, uma nova é iniciada.

## Casos de uso

<AccordionGroup>
  <Accordion title="Depurar uma API que falha em produção">
    Uma equipe de telco constrói um fluxo que valida faturas via API. A API responde de forma inconsistente e o fluxo cai em produção. Eles rodam o teste no Tester, clicam no nó HTTP que falha, veem o request e a response completos, e copiam o path do campo problemático para reportá-lo à equipe de backend, tudo sem sair do builder.
  </Accordion>

  <Accordion title="Validar lógica de um Condicional">
    Uma equipe de QA em retail valida fluxos de cobrança de assinaturas antes de cada release. Um branch do Condicional sempre dá problema porque a lógica de matching depende de strings com acentos. Rodam o teste, veem exatamente qual termo deu match no painel do nó Condicional, e corrigem sem escalar para a engenharia.
  </Accordion>

  <Accordion title="Validar a resposta de um AI Agent">
    Um product manager configura um AI Agent que pede nome e e-mail e os salva em `$memory.datosUsuarios`. Pelo Tester confirmam que o Estado final tem a estrutura correta (`{ nombre, correo }`), copiam o path `finalState.datosUsuarios.correo` e o usam no próximo nó de texto sem reconstruí-lo manualmente.
  </Accordion>

  <Accordion title="Testar um sub-skill a partir do fluxo pai">
    Um workflow pai chama um sub-skill de validação de identidade. No Tester veem o sub-skill renderizado como um grupo separado de indicadores. Clicam no nó Tool dentro do sub-skill e usam **Debugar Tool** para inspecionar a execução interna do Tool sem abrir o sub-skill em outra aba.
  </Accordion>

  <Accordion title="Simular uma conversa com botões">
    Um builder constrói um fluxo com um nó Botões que oferece três opções. Em vez de digitar "1", "2" ou "3" manualmente como fazia antes, clica diretamente no botão dentro do Tester e o fluxo avança ao nó destino correto, igual ao que o usuário final fará no WhatsApp.
  </Accordion>
</AccordionGroup>

## Artigos relacionados

<CardGroup cols={2}>
  <Card title="Sua primeira skill" icon="flag" href="/pt/guias/primeiros-passos/seu-primeiro-workflow">
    Construa seu primeiro workflow passo a passo e teste-o no Tester.
  </Card>

  <Card title="Execuções de workflow" icon="play" href="/pt/guias/primeiros-passos/execucoes-workflow">
    Como as execuções são contadas e seu impacto no faturamento.
  </Card>

  <Card title="Compartilhar link de testes" icon="share" href="/pt/guias/primeiros-passos/compartilhar-link-testes">
    Gere um link público ou sessão privada por WhatsApp para que sua equipe teste o workflow.
  </Card>

  <Card title="Publicar versões" icon="rocket" href="/pt/guias/primeiros-passos/publicar-versoes">
    Quando o fluxo estiver pronto no Tester, publique uma versão para produção.
  </Card>
</CardGroup>
