Sua primeira expressão no Power Automate
Expressões transformam dados dentro do fluxo: juntam textos, decidem entre dois valores, tratam campos vazios e formatam datas. Este guia explica a estrutura, mostra os exemplos que você mais vai usar e ensina a testar sem medo.
O que é uma expressão
Uma expressão é uma instrução que o Power Automate calcula durante a execução do fluxo. Em vez de usar sempre um valor fixo, você monta o resultado a partir dos dados que chegaram: o nome de quem preencheu um formulário, o status de um item, a data de hoje.
Toda expressão é feita de funções (concat, if, utcNow), de valores (textos entre aspas simples, números) e de referências a dados do fluxo (triggerBody(), body('Nome_da_ação')).
Onde digitar
- Clique no campo de uma ação em que você quer usar a expressão.
- No painel que abre, escolha a aba Expressão (ícone fx), em vez de Conteúdo dinâmico.
- Cole ou digite a expressão sem o
@do começo e confirme com OK.
Antes de colar, você pode conferir a sua expressão no verificador: ele aponta aspas e parênteses errados e sugere o nome certo de uma função.
As quatro regras de sintaxe que evitam 90% dos erros
- Texto fica entre aspas simples:
'Aprovado'. Aspas duplas dão erro. Uma aspa simples dentro do texto se escreve duas vezes:'it''s'. - Funções usam parênteses e vírgulas:
nomeDaFuncao(argumento1, argumento2). Cada parêntese aberto precisa de um fechado. - O
?antes do colchete é um acesso seguro:triggerBody()?['nome']devolve vazio se o campo não existir, em vez de derrubar o fluxo. - Funções podem ser aninhadas: o resultado de uma serve de argumento para outra, e a conta é feita de dentro para fora.
Exemplo 1: juntar textos
concat('Olá, ', triggerBody()?['nome'])
concat junta textos. triggerBody()?['nome'] lê a propriedade nome do que disparou o fluxo. Se o nome for "Ana", o resultado é Olá, Ana.
Exemplo 2: decidir entre dois valores
if(equals(triggerBody()?['status'], 'Aprovado'), 'Sim', 'Não')
Primeiro o equals compara dois valores e devolve verdadeiro ou falso. Depois o if escolhe o segundo argumento (quando verdadeiro) ou o terceiro (quando falso).
Exemplo 3: lidar com campo vazio
Campos opcionais chegam vazios com frequência. Duas funções resolvem:
coalesce(triggerBody()?['apelido'], triggerBody()?['nome'], 'Cliente')
coalesce devolve o primeiro valor que não for nulo. Aqui: o apelido, se existir; senão o nome; senão a palavra "Cliente".
if(empty(triggerBody()?['observacao']), 'Sem observação', triggerBody()?['observacao'])
empty diz se o texto, a lista ou o objeto está vazio. Um texto vazio e um valor nulo são coisas diferentes para o fluxo.
coalesce: ele só pula valores nulos. Testado no Power Automate: coalesce('', 'x') devolve o texto vazio, e não o x. Se o apelido puder chegar como texto vazio, trate com empty:if(empty(triggerBody()?['apelido']), triggerBody()?['nome'], triggerBody()?['apelido'])
Exemplo 4: formatar datas
formatDateTime(utcNow(), 'dd/MM/yyyy HH:mm')
utcNow() devolve a data e a hora atuais em UTC, não no horário de Brasília. Para o horário local:
convertTimeZone(utcNow(), 'UTC', 'E. South America Standard Time', 'dd/MM/yyyy HH:mm')
MM maiúsculo é mês e mm minúsculo é minuto. HH é hora em 24 horas. Trocar maiúsculas por minúsculas é um dos erros mais comuns. Veja mais no conversor de datas.Olá, Ana (concat), Sim (if com equals), Ana (coalesce com apelido nulo), Sem observação (empty), 02/11/2026 08:05:09 (formatDateTime) e 02/11/2026 08:30 (convertTimeZone de 11:30 UTC para Brasília). Veja a referência de funções.Funções que você vai usar toda semana
| Para... | Use |
|---|---|
| Juntar textos | concat |
| Trocar parte de um texto | replace |
| Pegar um pedaço do texto | substring (a primeira posição é 0) |
| Dividir texto em lista | split |
| Juntar lista em texto | join |
| Contar itens ou caracteres | length |
| Somar dias a uma data | addDays |
| Tirar espaços das pontas | trim |
Como testar com segurança
- Crie um fluxo de teste separado do fluxo de produção.
- Use dados fictícios que representem os casos reais, inclusive o campo vazio.
- Depois de rodar, abra o histórico de execução e veja as Entradas e as Saídas da ação que usa a expressão.
- Teste os casos de borda: campo ausente, vazio, com espaços, com acento e com valor muito longo.
- Só então aplique no fluxo definitivo.
Erros que todo mundo comete
- Escrever o nome errado de uma ação:
body('Obter_item')precisa do nome exato da ação, com sublinhado no lugar dos espaços. - Assumir que a data está em horário local quando está em UTC.
- Converter texto decimal em inteiro:
int('3.14')e tambémint(float('3.14'))dão erro (testado no Power Automate). Useint(formatNumber(float('3.14'), 'F0')), que arredonda, ou calcule com inteiros desde o início. Outra armadilha:float('1,5')devolve15(a vírgula é descartada, sem erro). - Dividir dois inteiros esperando decimal:
div(75, 200)devolve 0. - Comparar textos sem saber a regra de maiúsculas:
equalsecontainsdiferenciam,startsWith,endsWitheindexOfnão. - Copiar uma expressão da internet sem trocar o nome do campo pelo seu.
Para continuar, veja como dividir um valor em parcelas sem perder centavos e como gerar um código sequencial.