Utilizando conteúdos dinâmicos em Power Automate

Como uma plataforma de Low/No Code, um dos principais objetivos do Power Automate é facilitar a vida do usuário, evitando a necessidade de programação para alcançar os resultados desejados. Uma das funcionalidades que proporciona essa facilidade de uso é o “conteúdo dinâmico” (dynamic content), que é basicamente uma forma rápida e intuitiva de acessar dados do trigger ou de ações anteriores em um fluxo.

Todos os fluxos precisam transferir dados de uma ação para outra, por isso, esse é o tipo de recurso com o qual o usuário do Power Automate precisará trabalhar diariamente. Neste post exploraremos como os conteúdos dinâmicos funcionam em um caso concreto, e como torná-los ainda mais poderosos ao utilizarmos Expressões (veja neste artigo em inglês como utilizar expressões em Power Automate).

Interagindo com outputs de ações em Power Automate

Durante a execução de um fluxo, triggers (gatilhos) e ações geram dados que você pode utilizar em fases posteriores do processo. Por exemplo, se o seu fluxo começa com o recebimento de um formulário do Microsoft Forms, você pode precisar acessar as respostas para cada uma pergunta nas ações seguintes.

Para visualizar os dados de triggers e ações, vá para a página “Meus fluxos” (destacada em amarelo) e selecione o fluxo desejado (neste post, “MS Flow – Serviços Médicos”, que está destacado em verde):

visão geral de fluxos em power automate

Na página de detalhes do fluxo, você encontrará uma lista de todas as execuções nos últimos 28 dias, mostrando suas datas, durações e status. Clique na data/hora desejada (destacada em amarelo), o que o levará para a página de “Execução do fluxo”, com informações detalhadas sobre o trigger e as ações:

visão geral do fluxo em power automate

Na página de execução do fluxo você encontrará o trigger (destacado em amarelo) e as ações (destacadas em azul). O trigger sempre estará no topo da estrutura do processo, uma vez que este é o evento que inicia um fluxo:

visão geral das ações de um fluxo em power automate

Neste cenário, o fluxo captura uma submissão do formulário, examina as respostas a cada uma das perguntas e insere uma linha em uma tabela do Excel com base nesses dados. Ao clicar em quaisquer das ações, você as expandirá e encontrará mais detalhes sobre os inputs e outputs. No nosso caso, ao clicar na ação “Get response details”, os outputs representam a resposta de cada pergunta no formulário (destacado em verde). Se você precisar trabalhar com as saídas brutas (raw outputs), pode acessá-las clicando no botão destacado em azul (se você não souber como trabalhar com saídas brutas, confira este artigo):

visão de ação expandida em fluxo em power automate

Os outputs acima são apresentados em um formato amigável (correspondendo à resposta de cada pergunta no Microsoft Forms), porém as referências lógicas a esses valores (id) podem não ser tão claros. Você pode acessar esses ids no painel de raw outputs, onde cada propriedade (destacada em amarelo) é uma referência lógica (nesse caso um número de identificação, ou id) correspondente às mesmas propriedades da imagem anterior (as perguntas do Microsoft Forms):

raw outputs em power automate

Para manipular qualquer um dos valores de saída, podemos usar conteúdos dinâmicos ou expressões. Os conteúdos dinâmicos geralmente são mais fáceis de ler por uma pessoa, operando como uma espécie de “alias”, enquanto as expressões utilizam a referência lógica de cada propriedade.

O que é o conteúdo dinâmico em Power Automate?

O conteúdo dinâmico oferece uma maneira simples de acessar os outputs de ações ou triggers. Ele fornece uma interface amigável, utilizando um apelido” para identificar cada propriedade, em vez de utilizar as complexas referências lógicas.

Por exemplo, seria muito mais simples para usuários se referirem ao e-mail do respondente do formulário por meio do rótulo “Endereço de e-mail”, em vez de utilizar o id da pergunta correspondente (que é “r8294b1a631834c889ca0e8cc41fcdec4”). Esse recurso torna o Power Automate uma excelente ferramenta para programadores não profissionais, permitindo que os usuários criem soluções poderosas de forma rápida e fácil. A adoção de conteúdos dinâmicos agiliza o processo de criação de fluxos e melhora a usabilidade geral.

Como utilizar conteúdos dinâmicos em Power Automate?

Para acessar a lista de conteúdos dinâmicos, basta clicar em um campo de input de qualquer ação (destacado em amarelo). Um pop-up aparecerá, exibindo o conteúdo disponível das ações anteriores. Note que as ações futuras (marcadas em vermelho) não podem ser acessadas nesta lista, pois o fluxo segue um processo linear.

A lista inclui a ação ou trigger relacionado (destacado em rosa), o display name (apelido) da propriedade vinculada ao conteúdo dinâmico (destacado em verde) e uma breve descrição (destacada em azul) sobre a propriedade:

menu de conteúdo dinâmico em power automate

Ao clicar em um conteúdo dinâmico, isto automaticamente popular o campo de input:

adicionando conteúdo dinâmico a input em power automate

Ao utilizar a ação “Adicionar linha em uma tabela”, que vem após “Obter detalhes da resposta” e “Listar linhas em uma tabela”, a lista de conteúdo dinâmico muda. Agora, ela incluirá conteúdos dinâmicos adicionais, classificados conforme a ação relativa àquele output. A ação “Listar linhas presentes em uma tabela” (destacada em azul) gera conteúdos dinâmicos destacados em verde, enquanto a ação “Obter detalhes da resposta” (destacada em amarelo) gera conteúdos dinâmicos destacados em rosa. Essa classificação facilita na localização do conteúdo dinâmico apropriado para seu fluxo:

lista de conteúdos dinâmicos em power automate

Se rolarmos para baixo na janela pop-up de conteúdo dinâmico, veremos muitas mais opções de conteúdo da ação “Obter detalhes da resposta”, correspondendo não apenas às respostas das perguntas do MS Form, mas também incluindo alguns metadados (como o endereço de e-mail do respondente e a data/hora da submissão):

conteúdo dinâmico de respostas a ms form em power automate

No exemplo abaixo, vamos inserir um novo registro em uma tabela do Excel a partir do o conteúdo dinâmico da resposta do MS Form (veja este artigo sobre como integrar tabelas de Excel e Power Automate, e este sobre como inserir e atualizar dados em tabelas). Graças ao trigger automatizado, cada submissão do Formulário inicializa o flux, capturando as respostas relevantes para preencher a tabela do Excel. Esse processo otimizado garante que os dados sejam coletados e organizados de forma eficiente em tempo real, tornando o fluxo de trabalho contínuo e gerando uma “solução sem cliques”.

inputs da ação add row into a table em power automate

Este é o resultado após popular a ação “Adicionar linha em uma tabela” e executar o fluxo por meio de uma submissão de formulário:

tabela de excel após fluxo de power automate

Como utilizar expressões em Power Automate?

Como mencionado anteriormente, embora o conteúdo dinâmico forneça uma maneira fácil de acessar dados usando apelidos, as expressões oferecem um método alternativo ao acessar diretamente as referências lógicas das propriedades. Mas por que alguém escolheria usar expressões em vez de conteúdo dinâmico no Power Automate?

Expressões são úteis quando os dados precisam de transformações antes de serem utilizados. Na seção anterior, incluímos valores da resposta do MS Form em uma tabela do Excel sem qualquer modificação, resultando em um formato estranho para a coluna “Use medical services for”, uma vez que os valores foram inseridos em um formato de array (para aprender mais sobre tipos de dados em Power Automate, veja este artigo em inglês). Para extrair apenas os valores das respostas sem aspas e colchetes, pode-se usar uma expressão, como uma fórmula do Excel, garantindo uma saída de dados mais limpa e estruturada.

Para utilizar expressões no Power Automate, basta clicar no campo input com o qual você deseja trabalhar (destacado em rosa). Isso abrirá o pop-up com a lista de conteúdos dinâmicos. Em seguida, alterne para a aba “Expressões” (destacada em amarelo) e digite suas expressões no campo “Fx” (destacado em verde). Embora haja uma lista de algumas expressões disponíveis (destacadas em azul), consultar a documentação oficial fornecerá um conjunto completo de expressões:

painel de expressões em power automate

Após inserir uma expressão, uma tooltip aparecerá, fornecendo instruções sobre o uso específico dessa expressão. Por exemplo, ao usar a expressão “replace()” (destacada em amarelo), serão exibidos os valores esperados dentro dela (destacados em verde), juntamente com breves descrições de cada um (destacadas em azul) e o output da expressão (destacado em rosa):

tooltip de expressão em power automate

Em resumo, a expressão “replace()” busca um texto específico dentro de uma string e o substitui por outro texto. No nosso caso, usamos essa expressão para encontrar aspas no campo “What do you use internet medical services for?” e substituí-las por strings vazias, consequentemente removendo as aspas. A sintaxe da expressão é simples: replace([texto_principal], [texto_antigo], [texto_novo]).

Para adicionar a resposta à pergunta “What do you use internet medical services for?” como “texto_principal” dentro da expressão, você tem duas opções: identificá-la pela referência lógica da propriedade ou inseri-la dinamicamente, o que é muito mais simples. Para fazer isso, posicione o cursor dentro dos parênteses da expressão, mude para a aba de conteúdo dinâmico (destacada em amarelo) e selecione a propriedade desejada (destacada em azul). Ao clicar, a expressão do conteúdo dinâmico será gerada automaticamente (destacada em verde):

conteúdo dinâmico em expressão em power automate

Para passar os outros parâmetros necessários para a expressão “replace()”, use aspas simples para encapsular tanto o texto a ser substituído (aspas duplas) quanto o texto que o substituirá (texto vazio). Para o texto a ser substituído, insira uma aspa dupla entre aspas simples (destacada em verde), e para o novo texto, use apenas duas aspas simples (destacadas em azul). Como ambos os valores são strings, eles precisam ser cercados por aspas simples, mesmo que consistam em aspas reais ou um texto vazio. Lembre-se de separar os parâmetros por vírgulas e colocá-los dentro dos parênteses (destacados em amarelo):

parâmetros em expressão em power automate

A expressão completa será assim:

detalhes de cada elemento de expressão em power automate
  • A expressão está destacada em rosa;
  • Os parênteses, que devem encapsular todos os parâmetros da expressão, estão destacados em vermelho;
  • O primeiro parâmetro (texto_principal, que corresponde à resposta ao MS Form) está destacado em amarelo. Apesar de o termos inserido via conteúdo dinâmico, no input de expressões ele é representado como a referência lógica;
  • As vírgulas, as quais separam cada parâmetro dentro da expressão, estão destacadas em azul escuro;
  • O segundo parâmetro (texto antigo a ser substituído) está destacado em verde;
  • O terceiro parâmetro (novo texto que substituirá o antigo) está destacado em azul claro.

Após executar o fluxo novamente, este é o resultado: as aspas desaparecerão do texto inserido na tabela (destacado em amarelo):

valor adicionado a tabela por fluxo com expressão em power automate

Em seguida, removeremos os colchetes. O processo continua semelhante, mas desta vez usaremos a primeira expressão “replace” como o parâmetro “main_text”. Sim, expressões podem ser inseridas como input dentro de outras expressões, o que é bastante comum na maioria dos casos.

Agora, a expressão ficará assim, e substituirá apenas o colchete de abertura “[“:

expressões aninhadas em power automate
  • A expressão está destacada em rosa;
  • Os parênteses, que devem envolver todos os parâmetros da expressão, estão destacados em vermelho;
  • O primeiro parâmetro (a expressão inteira usada anteriormente, que removeu as aspas) está destacado em amarelo;
  • As vírgulas, que devem separar cada parâmetro, estão destacadas em azul escuro;
  • O segundo parâmetro (o texto antigo que será substituído), está destacado em verde;
  • O terceiro parâmetro (o novo texto que substituirá o antigo), está destacado em azul claro.

Por fim, repetimos o mesmo processo mais uma vez para substituir o caractere “]“ por uma string vazia. Após executar o fluxo, este é o resultado (destacado em azul):

texto sem colchetes adicionado por expressão em power automate

Este já é um avanço em relação ao texto original da resposta. No entanto, podemos adicionar um passo final para incluir um espaço em branco entre a vírgula e “Medical”. Para isso, embora não precisemos substituir nenhum texto, podemos usar a função “replace()” para substituir o texto “,” por “, ” , adicionando um espaço em branco após a vírgula:

replace(replace(replace(replace(outputs(‘Get_response_details’)?[‘body/r421f6f7cb5894c18858de52bb9bf04df’], ‘”‘, ”), ‘[‘, ”), ‘]’, ”), ‘,’, ‘, ‘)

Essa é uma expressão complexa de ler, mas uma vez que você a divide em vários passos, torna-se mais fácil de entender. Você também pode aprender mais sobre como manipular textos em Power Automate neste artigo em inglês. Após rodar o fluxo mais uma vez, este é o resultado: um texto muito melhor do que o original:

texto formatado adicionado ao excel via power automate

Conclusão

Os conteúdos dinâmicos são uma das funcionalidades mais poderosas do Power Automate. Eles facilitam o uso da ferramenta, permitindo que pessoas sem um forte conhecimento em TI criem fluxos e otimizem processos.

Embora os conteúdos dinâmicos possam resolver uma grande parte dos problemas diários de negócios, às vezes precisamos ir um pouco além para alcançar melhores resultados, e é aí que as expressões entram em cena. O Power Automate oferece uma experiência semelhante às fórmulas do Excel, mantendo uma sintaxe parecida para as expressões e permitindo o uso de conteúdos dinâmicos dentro delas.

By Raphael Zaneti

Power Platform Developer