Expressões e variáveis
Expressões são pequenas fórmulas que deixam seus campos dinâmicos: em vez de um texto fixo, o valor é calculado na hora, com base no que o usuário digitou, em parâmetros da URL ou nos dados do usuário logado.
Se você já usou fórmulas no Excel, a ideia é a mesma — só que a "célula" aqui é outro componente da sua página.
Sintaxe básica
Tudo que estiver entre chaves duplas {{ ... }} é avaliado como expressão. O resto
do texto fica literal:
Olá, {{ $form.Nome }}! Seja bem-vindo.
Se o campo Nome contém "Maria", o resultado é:
Olá, Maria! Seja bem-vindo.
Você pode misturar quanto texto e quantas expressões quiser na mesma frase:
Total: {{ $form.Quantidade * $form.Preco }} reais
Se Quantidade for 3 e Preço for 10, o resultado é:
Total: 30 reais
Onde você pode usar expressões
O campo de expressão aparece em vários lugares do editor:
- No campo "Expressão" de um componente (aba Config) — o resultado vira o valor exibido daquele componente. É assim que se cria um "campo calculado" ou um texto que se atualiza sozinho.
- No valor padrão de um campo.
- Nos campos de uma automação — URL, cabeçalhos e corpo de uma requisição
HTTP, por exemplo, aceitam
{{ }}.
Variáveis disponíveis
Uma variável sempre começa com $ e tem o formato $origem.chave. Existem três
origens:
$form — valores da própria página
Referencia o valor de outro componente da página. Use o rótulo (o nome que aparece no componente):
{{ $form.Nome_do_Cliente }}
No formato com ponto, espaços viram sublinhado (Nome do Cliente → Nome_do_Cliente)
e acentos funcionam normalmente ({{ $form.Usuário }}).
Mas hífens (-) atrapalham, porque o - é o sinal de subtração. Para rótulos
com hífen, espaço ou qualquer caractere especial, use colchetes com aspas:
{{ $form["Terça-feira"] }}
{{ $form["Data de Nascimento"] }}
Além do valor simples, o $form consegue "entrar" em dados estruturados:
-
Coluna de uma tabela (componente de banco/HTTP com linha selecionada):
{{ $form.Tabela_de_Produtos.nome }} -
Célula de uma planilha (endereço no estilo
A1):{{ $form.Minha_Planilha.B2 }}
$args — parâmetros da URL
Qualquer valor passado na URL do link público vira uma variável $args. Por
exemplo, ao abrir:
/p/SEU_TOKEN?cliente=Acme&plano=premium
você pode usar:
{{ $args.cliente }} → Acme
{{ $args.plano }} → premium
Ótimo para pré-preencher um workflow a partir de um link personalizado.
$user — dados do usuário logado
Disponível apenas quando o workflow exige login. Traz informações do perfil de quem está usando:
| Variável | O que contém |
|---|---|
$user.name | Nome do usuário |
$user.username | Login/usuário |
$user.playerId | ID do player |
$user.personId | ID da pessoa |
$user.tenantId | ID do tenant (empresa) |
$user.workgroupNames | Nomes dos workgroups (separados por vírgula) |
$user.workgroupIds | IDs dos workgroups |
$user.firstWorkgroupName | Nome do primeiro workgroup |
$user.firstWorkgroupId | ID do primeiro workgroup |
Se o workflow não exige login, todas as variáveis $user ficam vazias.
Operadores
| Tipo | Operadores | Exemplo |
|---|---|---|
| Aritméticos | + - * / % | {{ $form.Preco * 2 }} |
| Comparação | == != > < >= <= | {{ $form.Idade >= 18 }} |
| Lógicos | && (e) || (ou) ! (não) | {{ $form.Ativo && $form.Pago }} |
| Condicional | condição ? valorSeVerdadeiro : valorSeFalso | {{ $form.Idade >= 18 ? "Maior" : "Menor" }} |
Você pode agrupar com parênteses para controlar a ordem:
{{ ($form.A + $form.B) * $form.C }}
Se os dois lados forem números, o + soma. Se algum lado for texto, ele
junta (concatena):
{{ 2 + 3 }} → 5
{{ $form.Nome + " Silva" }} → Maria Silva
Para garantir uma soma, certifique-se de que os dois campos são numéricos.
- Comparações
==e!=comparam como texto:1 == "1"é verdadeiro. - Divisão ou resto por zero retorna
0(não dá erro nem "infinito"). ><>=<=comparam como número.
Funções
As funções não diferenciam maiúsculas de minúsculas (IF e if funcionam igual).
| Função | O que faz | Exemplo | Resultado |
|---|---|---|---|
IF(cond, a, b) | Retorna a se a condição for verdadeira, senão b | IF($form.Idade >= 18, "OK", "Bloqueado") | OK |
UPPER(texto) | Converte para MAIÚSCULAS | UPPER("maria") | MARIA |
LOWER(texto) | Converte para minúsculas | LOWER("MARIA") | maria |
LEN(texto) | Conta os caracteres | LEN("abc") | 3 |
ABS(número) | Valor absoluto (sem sinal) | ABS(-7) | 7 |
ROUND(número, casas) | Arredonda para N casas decimais (padrão 0) | ROUND(3.14159, 2) | 3.14 |
CONCAT(a, b, ...) | Junta vários valores como texto | CONCAT($form.Nome, " - ", $form.Cidade) | Maria - Recife |
NOW() | Data/hora atual | NOW() | 1719856800000 |
NOW() retorna o instante atual em milissegundos (um número grande), e não uma
data formatada como 01/07/2026. Por enquanto não há função de formatação de data
no editor — use NOW() para comparar ou calcular tempos, não para exibir uma data
bonita.
Recálculo automático
Um campo com expressão se atualiza sozinho sempre que um dos campos que ele
referencia muda. Se o Preço ou a Quantidade mudam, um campo Total com a
expressão {{ $form.Preco * $form.Quantidade }} recalcula na hora.
Se o campo A depende do B e o B depende do A, o editor detecta esse "laço" e simplesmente ignora o recálculo, em vez de travar. Evite montar dependências circulares.
Diferente dos campos comuns, um componente de banco de dados roda sua consulta uma única vez, no momento em que a página abre. Isso muda duas coisas na prática:
- Dentro da consulta, referencie os campos com
$+ o nome do campo: por exemplo,$Cliente_ID— um único$, sem as chaves{{ }}. (Dica: digite$na caixa de SQL para ver a lista de campos.) - Não dá para usar um campo da mesma página: como a consulta roda assim que a
página abre, um campo que o usuário ainda vai preencher ali estará vazio — e a
consulta não retorna nada. Para alimentar a consulta, use um
$args(parâmetro da URL) ou um valor vindo de uma página anterior.
Erros comuns (leia antes de pedir ajuda 😉)
Escrever {{ Nome }} não pega o valor do campo Nome — o editor trata palavras
soltas como texto literal e o resultado vira a própria palavra "Nome". O certo
é sempre {{ $form.Nome }}.
Se uma expressão tem um erro (um parêntese que não fecha, aspas faltando, etc.), o campo inteiro fica vazio — não aparece mensagem de erro na tela. Se um campo "sumiu", quase sempre é uma expressão quebrada. Revise as chaves, parênteses e aspas.
- Referência que não existe (campo apagado ou nome errado) resulta em texto vazio, não em erro.
- Chaves simples não funcionam: é sempre
{{ }}(duplas), nunca{ }.
Exemplos prontos para copiar
Saudação personalizada:
Olá, {{ $form.Nome }}! Que bom te ver.
Total de um pedido:
{{ $form.Quantidade * $form.Preco_Unitario }}
Mensagem condicional:
{{ $form.Idade >= 18 ? "Acesso liberado" : "Acesso apenas para maiores de 18" }}
Juntar nome e sobrenome em maiúsculas:
{{ UPPER(CONCAT($form.Nome, " ", $form.Sobrenome)) }}
Usar um dado da URL como padrão:
{{ $args.cliente }}