---
title: Transformar texto (template)
description: Monte textos dinâmicos com variáveis e lógica usando a linguagem de templates Jinja2.
---

# Transformar texto (template)  ·  `template_transform`

<NoCard kind="template_transform" categoria="Dados" />

<Secao icon="info">Para que serve</Secao>

Pensa numa carta de formulário onde você preenche o nome, o endereço e o valor — e o texto inteiro é gerado automaticamente. O Transformar texto (template) faz o mesmo com dados do seu fluxo: você escreve um modelo com "espaços reservados" e ele preenche tudo na hora, gerando o texto final pronto para usar.

<Secao icon="clock">Quando usar</Secao>

- Montar mensagens personalizadas com nome, data, valor e outros dados do cliente
- Formatar um JSON ou XML antes de enviar para uma API externa
- Criar resumos combinando respostas de vários nós anteriores
- Transformar dados de um formato para outro (ex.: data ISO → "dia/mês/ano")
- Aplicar lógica condicional dentro do texto (mostrar uma parte só se uma variável tiver valor)

---

<Secao icon="list-checks">Passo a passo</Secao>

<Passos>
  <Passo>Arraste o nó **Transformar texto (template)** para o canvas.<br/><Captura legenda="Paleta de nós aberta no canvas do Flow Builder, com as categorias disponíveis para localizar e arrastar o nó desejado" src="/img/flowbuilder-paleta-aberta.png" /></Passo>
  <Passo>No editor de template, escreva seu modelo usando a sintaxe **Jinja2** — uma linguagem simples e amplamente usada para montar textos com variáveis e condições, parecida com preencher um formulário com regras.</Passo>
  <Passo>Use <code v-pre>{{ variavel }}</code> para inserir valores e <code v-pre>{% if %}...{% endif %}</code> para condições.</Passo>
  <Passo>Visualize o resultado clicando em **Pré-visualizar** (se disponível) ou rode um teste rápido.</Passo>
  <Passo>A saída do template fica disponível como <code v-pre>{{nome_do_no.output}}</code> para os próximos nós.</Passo>
</Passos>

---

<Secao icon="sliders-horizontal">Campos</Secao>

| Campo | O que faz |
|-------|-----------|
| **Template** | O modelo de texto em sintaxe Jinja2 |
| **Variáveis de entrada** | Valores do fluxo que você quer usar dentro do template |
| **Nome da saída** | Como a string gerada ficará acessível nos nós seguintes |

---

## Sintaxe Jinja2 — o essencial

| Sintaxe | Para que serve |
|---------|---------------|
| <code v-pre>{{ valor }}</code> | Inserir o conteúdo de uma variável |
| <code v-pre>{% if condicao %}...{% endif %}</code> | Bloco condicional |
| <code v-pre>{% for item in lista %}...{% endfor %}</code> | Repetir para cada item de uma lista |
| <code v-pre>{{ valor \| upper }}</code> | Filtros — `upper`, `lower`, `trim`, `default('texto padrão')` |
| <code v-pre>{# comentário #}</code> | Comentário (não aparece na saída) |

---

<Secao icon="circle-check">Exemplo</Secao>

Template para montar uma mensagem de confirmação de consulta:

```jinja2
Olá, {{ contact.name }}!

Sua consulta está confirmada para *{{ data_consulta }}* às *{{ hora_consulta }}*.

{% if valor_consulta %}
O valor é R$ {{ valor_consulta }}.
{% else %}
O valor será informado pelo advogado.
{% endif %}

Qualquer dúvida, é só responder aqui. 😊
```

<Dica>

O Jinja2 tem muitos filtros úteis. Use <code v-pre>{{ nome | title }}</code> para colocar a primeira letra em maiúscula, ou <code v-pre>{{ valor | default('não informado') }}</code> para evitar que a variável apareça vazia.

</Dica>

<Cuidado>

Erros de sintaxe no template (como esquecer um <code v-pre>{% endif %}</code>) fazem o nó falhar em execução. Teste sempre com o teste rápido (single-run) antes de publicar o fluxo — veja [Testar e Publicar](/guia/flow-builder/testar-e-publicar).

</Cuidado>

---

## Saiba mais

- [Testar e Publicar](/guia/flow-builder/testar-e-publicar) — rode um teste rápido antes de publicar o fluxo
