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

# Entradas e referências

> Declare o que um Workflow recebe e passe valores das Entradas e das etapas anteriores para cada módulo

Um Workflow recebe **Entradas** e passa valores de etapa em etapa por meio de **referências**. Esta página cobre as duas coisas: como declarar uma Entrada, como apontar uma etapa para uma Entrada ou para a saída de uma etapa anterior, e o que cada etapa pode ver.

No exemplo desta seção, o Workflow tem duas Entradas, um arquivo `contract` e um texto `requester`, e a etapa Extract Data lê o contrato enquanto a etapa Approval Letter usa tanto os valores extraídos quanto o solicitante.

## Declarando Entradas

As Entradas ficam na seção **Entradas** do painel à direita, em **Criar**. Elas são as variáveis que o Workflow recebe em toda execução: de quem executa em Criar, de um Caso de Teste, de um App da Workstation ou da API.

**1. Crie uma variável**

Clique em **Criar Variável** na seção Entradas (ou em **Nova variável** no menu do painel). Dê um **Nome**: é assim que você vai se referir a ela em todas as etapas, então escolha algo curto e claro, como `contract`.

**2. Escolha o tipo**

O **Tipo** é **Texto** ou **Arquivo**. Uma Entrada de texto recebe conteúdo digitado; uma Entrada de arquivo recebe um ou mais arquivos enviados.

**3. Decida se é obrigatória**

Ative **Obrigatório** quando uma execução não pode acontecer sem essa Entrada. Entradas obrigatórias também são obrigatórias nos Casos de Teste, no App e nas chamadas de API.

**4. Para arquivos, escolha como a IA lê**

Uma Entrada de arquivo é **processada pelo parser** por padrão: o Tela extrai o texto e as etapas de IA recebem esse texto. Ative **Multimodal** para enviar o arquivo em si ao modelo, para que ele enxergue digitalizações, imagens, layout ou áudio. O tooltip do diálogo diz com todas as letras: habilitar multimodal desabilita a extração de dados padrão.

![Diálogo de variável com Nome, Obrigatório e Tipo](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/workflow/new-variable.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=68d7578b9ccc7da9f048af91faae5ee3)

Depois de declarada, cada Entrada aparece como um cartão na seção Entradas, onde você digita texto ou solta arquivos antes de clicar em **Executar**. Clique em um arquivo enviado para abri-lo em tela cheia. As Entradas podem ser renomeadas, editadas ou excluídas nos mesmos cartões; o menu do painel fica desabilitado enquanto uma execução está em andamento.

> [!TIP]
>
> Escolha **parser** para PDFs de texto, arquivos Word e planilhas: é mais barato e dá ao modelo um texto limpo. Escolha **Multimodal** para documentos digitalizados, fotos, formulários cujo layout importa e áudio. Veja [Formatos de arquivo suportados](https://docs.tela.com/pt/supported-file-formats.md) para o que o parser aceita.

### Regras para nomes

Nomes de etapas e nomes de Entradas compartilham o mesmo espaço. O editor se recusa a salvar quando:

* duas etapas têm o mesmo nome, ou duas Entradas têm o mesmo nome;
* uma etapa e uma Entrada têm o mesmo nome;
* uma etapa ou uma Entrada está sem nome.

Renomeie uma delas e salve de novo. Etapas novas nascem como *Etapa Sem Título*, então dê nome a cada etapa assim que a adicionar; o nome é o que você vai ver no menu `@`, nos resultados e no código.

## Referenciando Entradas e etapas anteriores

Em qualquer lugar em que um módulo aceita um valor (o prompt de um Módulo de IA, o arquivo de um Dividir, um placeholder de um Document Templater, uma variável de um Canvas Existente), digite `@` para abrir o menu de referências.

![Menu @ dentro do prompt de um Módulo de IA, listando as Entradas do workflow](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/workflow/at-menu.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=2f05530528da9ee4ea7907487641dba1)

O menu tem dois grupos:

* **Variáveis do workflow**: as Entradas que você declarou.
* **Saídas Esperadas**: as saídas das etapas anteriores a esta, identificadas pelo nome e pelo número da etapa. Uma etapa com Formato de Saída se expande em seus atributos, então você pode escolher `Extract Data › total_value` em vez da saída inteira. Atributos aninhados se expandem do mesmo jeito. Use o campo de busca para filtrar por nome e **Selecionar tudo** para inserir todos os atributos de uma etapa.

Escolher um item insere um chip no campo. No exemplo, o prompt de **Extract Data** contém `@contract`, e a etapa **Approval Letter** mapeia o placeholder `{counterparty}` para `@Extract Data › counterparty` e `{requester}` para `@requester`.

### Parser, Multimodal, JSON, Texto ou Original

Cada chip indica como o valor é usado (o rótulo **usado como**): **Parser**, **Multimodal**, **JSON**, **Texto** ou **Original**. O padrão depende do campo e do valor:

| Valor | Padrão | Outras opções que vale conhecer |
| - | - | - |
| Entrada de texto ou saída de texto | inserido como texto | — |
| Arquivo (Entrada ou saída de Dividir, Recortar ou Gerar Documento) em um prompt de IA | **Parser**: o texto extraído do arquivo | **Multimodal**: anexa o arquivo em si para o modelo olhar |
| Saída estruturada (objeto ou lista) em um prompt de IA | **Parser**: uma representação dos campos em texto, pensada para a IA | **JSON** |
| Número ou sim/não em um prompt de IA | **Texto** | — |
| Um arquivo ou lista em um campo que espera arquivo ou lista (Dividir, Recortar, Mapear) | **Original**: o valor é passado como está | — |

A regra geral: quando o **campo inteiro** é uma única referência, o valor mantém o tipo (um arquivo continua arquivo, uma lista continua lista). Quando a referência está **dentro de um texto**, ela vira texto no formato escolhido.

> [!WARNING]
>
> Em um Módulo de IA, uma Entrada de arquivo só chega ao modelo como anexo quando a referência é usada como **Multimodal**. Com **Parser** o modelo recebe o texto extraído. Para digitalizações e imagens, escolha Multimodal; senão o modelo recebe pouco ou nada para ler, e a etapa ainda assim termina com campos vazios e sem erro.

### Valores aninhados e listas

Quando uma etapa anterior devolveu um objeto, escolha no menu o atributo de que você precisa em vez do objeto inteiro. Para listas, uma referência à lista é o que um **Mapear** percorre, e dentro do Mapear você se refere a um item por vez pela **Variável de Map** (veja [Dividir, Recortar e Mapear](https://docs.tela.com/pt/workflow/documents-split-crop-map.md#mapear)).

Em **Execução de Código** e em uma Condição no modo código você não usa `@`. Os valores chegam em um objeto `input` cujas chaves são os nomes das Entradas e das etapas: `input["contract"]`, `input["Extract Data"].total_value`. Veja [Execução de Código](https://docs.tela.com/pt/workflow/code-execution.md#o-que-chega-em-input).

## O que uma etapa pode ver

Uma etapa pode referenciar:

* todas as Entradas do Workflow;
* a saída de todas as etapas **anteriores a ela no seu próprio caminho**. Dentro de um caminho de Condição, isso inclui as etapas antes da Condição mais as etapas anteriores do mesmo caminho. Dentro de um Mapear, isso inclui as etapas antes do Mapear mais as etapas anteriores dentro do Mapear e a Variável de Map.

Ela não pode referenciar etapas posteriores, etapas de outro caminho, nem etapas dentro de um Mapear a partir de fora dele (de fora, você referencia a etapa Mapear em si ou uma etapa interna e recebe a lista de resultados, um por item).

O menu `@` só lista o que está disponível naquela etapa, então, se você não vê uma etapa no menu, ela não está acessível a partir dali.

> [!NOTE]
>
> Depois que um **Conectar** junta dois caminhos, as etapas após a junção rodam qualquer que tenha sido o caminho seguido. Um valor produzido por uma etapa do caminho que não foi seguido não está disponível naquela execução. Faça as etapas após uma junção dependerem de valores produzidos antes da Condição, ou adicione uma etapa em comum depois que os caminhos se juntam e faça ela ler o valor do caminho que rodou.

## Entradas quando o Workflow roda em outro lugar

As Entradas que você declara são exatamente o que cada lugar de execução pede:

* **Testar**: cada Caso de Teste preenche todas as Entradas, e dá para soltar arquivos para criar casos automaticamente.
* **App da Workstation**: cada entrada que o seu time envia vira uma tarefa; veja a [nota sobre uma variável por App](https://docs.tela.com/pt/workstation/creating-apps.md#criando-um-app).
* **API**: envie as Entradas como `variables`, com texto ou [arquivos](https://docs.tela.com/pt/completion-api/variables-and-files.md).

> [!NOTE]
>
> Para desenvolvedores: no Workflow salvo, uma referência é uma URI, `{{input://<input-id>}}` para uma Entrada e `{{step://<step-id>?path=<atributo>}}` para a saída de uma etapa, com um `format` opcional (`raw`, `string`, `json`, `ai-xml`). Os chips do editor são essas URIs. Entradas são referenciadas por ID, então renomear uma Entrada não quebra as referências.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.