Referência · Power Automate · Lógica

coalesce e empty

coalesce devolve o primeiro valor que não é nulo; empty diz se um texto, lista ou objeto está vazio. Os dois são a base de qualquer tratamento de campo opcional, e a diferença entre "nulo" e "vazio" é onde mora a maioria dos erros.

Sintaxe

coalesce(valor1, valor2, …)   empty(valor)

Exemplos testados

Cada resultado abaixo é o que o Power Automate devolveu ao executar a expressão em um fluxo de teste (sem conectores e sem dados reais), em 02/11/2026. Um teste automático do Me Ajuda Flow confere que o texto desta página é idêntico ao valor registrado nessa execução.
ExpressãoResultado
coalesce(outputs('Dados')?['apelido'], outputs('Dados')?['nome'], 'Cliente')
apelido nulo: usa o nome
Ana
coalesce('', 'x')
texto vazio NÃO é nulo: coalesce devolve ''
(texto vazio)
coalesce(outputs('Dados')?['apelido'], outputs('Dados')?['naoExiste'])
tudo nulo: devolve nulo
null
empty(outputs('Dados')?['apelido'])
nulo conta como vazio
true
if(empty(outputs('Dados')?['obs']), 'Sem observação', outputs('Dados')?['obs'])
com obs = texto vazio
Sem observação
empty(' ')
só espaços NÃO é vazio
false
empty(json('[]'))
lista vazia
true
outputs('Dados')?['pedido']?['naoExiste']?['x']
caminho que não existe devolve nulo
null

Quando usar

Use coalesce para valores padrão encadeados (apelido, depois nome, depois "Cliente") e empty dentro de um if para decidir o que fazer com campos opcionais. O padrão mais seguro para um campo que pode chegar nulo ou como texto vazio é if(empty(x), padrão, x), que trata os dois casos. Se o campo ainda puder ter só espaços, passe o texto por trim antes, desde que ele nunca seja nulo. Use o acesso seguro com ? em toda leitura de campo que possa não existir, para o fluxo receber nulo em vez de falhar. E teste sempre os três casos: campo preenchido, campo vazio e campo ausente.

Armadilhas

Perguntas frequentes

Como preencher um valor padrão quando o campo está vazio?

if(empty(x), 'padrão', x) trata nulo, texto vazio e lista vazia.

O ? evita erro de campo inexistente?

Sim: x?['campo'] devolve nulo quando o campo não existe, em vez de derrubar o fluxo.

Funções relacionadas

Ferramentas para testar

Fonte oficial