← Voltar para publicações Power Automate, automação de processos, Microsoft 365, Cara Core Informática

Automatizando Notificações com Power Automate: Uma Jornada de Correção e Otimização

Logo Cara Core Cara Core Informática 10 de dezembro de 2025
Tempo estimado de leitura: ~12 minutos

Introdução

Já imaginou ter um sistema que avisa automaticamente seus clientes quando uma proposta está parada há 7 ou 14 dias? Que envia notificações no Microsoft Teams, atualiza registros no SharePoint e ainda registra cada interação para auditoria futura? Parece complexo, mas é exatamente isso que o Power Automate pode fazer quando configurado corretamente.

Esta é a história de como corrigimos e otimizamos um fluxo crítico de notificações no Power Automate, transformando um sistema funcional mas problemático em uma solução robusta, confiável e pronta para escala.

Se você trabalha com automação de processos, integração de sistemas Microsoft ou simplesmente quer entender como resolver problemas complexos em fluxos do Power Automate, esta história é para você.

PARTE I: O Desafio - Quando a Automação Causa Mais Problemas

O Cenário Inicial

Tínhamos um fluxo do Power Automate rodando em produção que deveria:

  1. Monitorar propostas comerciais no SharePoint
  2. Detectar quando uma proposta ficava parada por 7 ou 14 dias sem atualização
  3. Enviar notificações automáticas ao responsável via Microsoft Teams
  4. Registrar a resposta do responsável de volta no SharePoint
  5. Atualizar o status da proposta quando necessário

Parece simples, certo? O problema era que o fluxo funcionava, mas com problemas críticos:

Era como ter um carro que funciona, mas que range, vibra e pode parar a qualquer momento no meio da estrada.

Por Que Isso Importa?

Imagine você é um gerente comercial. Você tem 50 propostas abertas e precisa saber quais delas estão paradas há muito tempo. O sistema deveria:

Mas e se os avisos chegarem com textos embaralhados? E se o sistema falhar justamente quando você mais precisa? E se cada atualização manual no fluxo causar instabilidade?

O custo é alto:

A Decisão Estratégica

Precisávamos não apenas corrigir os bugs visíveis, mas criar uma base sólida para:

  1. Estabilidade operacional: O fluxo não pode falhar
  2. Manutenibilidade: Alterações futuras devem ser seguras
  3. Observabilidade: Precisamos ver o que está acontecendo
  4. Escalabilidade: Deve funcionar com 10 ou 1000 propostas

PARTE II: A Anatomia do Problema - Entendendo o Fluxo

Como Funciona um Fluxo de Notificações?

Vamos desmistificar o Power Automate usando uma analogia simples:

Imagine uma fábrica com esteiras transportadoras:
  1. Trigger (Gatilho): Um novo item chega na esteira (item criado no SharePoint)
  2. Etapa 1 - Coleta de dados: Robôs coletam informações sobre o item
  3. Etapa 2 - Decisão: Um inspetor verifica condições (7 ou 14 dias? Status correto?)
  4. Etapa 3 - Ação: Se aprovado, envia notificação e atualiza registros
  5. Etapa 4 - Timeout: Se ninguém responder, encerra graciosamente

O Diagrama do Fluxo

Visão Geral da Arquitetura (Diagrama C4)

Para entender melhor como tudo funciona, veja o diagrama abaixo que mostra a arquitetura completa do sistema de notificações automatizadas:

Diagrama C4 da arquitetura do Power Automate - Sistema de Notificações
Figura 1: Arquitetura C4 do sistema de notificações automatizadas com Power Automate

Entendendo o Diagrama (Para Pessoas Leigas)

Este diagrama mostra como diferentes partes do sistema se comunicam. Imagine como se fosse um mapa de metrô, onde cada estação representa uma etapa do processo:

Verde - Pessoas (Usuários)
São as pessoas que usam o sistema: o gerente comercial que cuida das propostas e o administrador que gerencia o sistema.
Azul - Sistemas Microsoft (Automação)
São os componentes do Power Automate e Teams que fazem o trabalho automático: verificam prazos, enviam notificações, coletam respostas.
Laranja - Armazenamento (Dados)
É onde as informações ficam guardadas no SharePoint: listas de propostas e notificações.
Roxo - Ferramentas de Gestão (Python)
São scripts que ajudam a equipe técnica a atualizar o fluxo com segurança, sempre fazendo backup antes de qualquer mudança.
Cinza - Ciclo de Vida (Processo)
Mostra o caminho que uma proposta percorre desde sua criação até a resposta do cliente.

Como Ler o Diagrama - Passo a Passo

  1. Início: O gerente comercial cria uma nova proposta no SharePoint
  2. Monitoramento: O sistema verifica automaticamente se a proposta está parada há 7 ou 14 dias
  3. Notificação: Se estiver parada, o Power Automate envia uma mensagem no Microsoft Teams
  4. Interação: O gerente recebe a notificação no celular ou computador e responde
  5. Atualização: A resposta é automaticamente registrada no SharePoint
  6. Segurança: Toda alteração no fluxo é feita com backup automático para proteção
Analogia do Mundo Real:
Pense neste sistema como um assistente pessoal que: É como ter alguém dedicado apenas a garantir que nenhuma oportunidade de negócio seja perdida por esquecimento!

Fluxo Técnico Detalhado

Para quem deseja ver os detalhes técnicos da implementação:

Trigger (SharePoint Notifications)
  └─> Obter item (Notifications)
       └─> Obter item relacionado (Leads)
            ├─> [SE status=9 E propostaEnviada7dias=Sim]
            │     ├─> Enviar e-mail (7 dias)
            │     ├─> Microsoft Teams: Pergunta ao responsável
            │     ├─> Obter perfil do usuário (O365)
            │     ├─> Compor comentário formatado
            │     ├─> Salvar em variável (varComentario)
            │     ├─> Atualizar SharePoint (Leads) - comentário
            │     └─> Atualizar SharePoint (Notifications) - resposta
            │        (Timeout após 3 dias: Terminate Succeeded)
            │
            └─> [SE status=9 E propostaEnviada14dias=Sim]
                  ├─> Enviar e-mail (14 dias)
                  ├─> Microsoft Teams: Pergunta ao responsável
                  ├─> Obter perfil do usuário (O365)
                  ├─> Compor comentário formatado
                  ├─> Salvar em variável (varComentario)
                  ├─> Atualizar SharePoint (Leads) - comentário + status
                  └─> Atualizar SharePoint (Notifications) - resposta
                     (Timeout após 3 dias: Terminate Succeeded)

Os Problemas Identificados

Problema 1: HTML Duplicado

<!-- O que era gravado no SharePoint: -->
<p><p>Comentário do usuário</p></p>

<!-- O que deveria ser: -->
<p>Comentário do usuário</p>

Problema 2: Conexões Múltiplas

Problema 3: Publicação via API Falha

Para Executivos e Leigos:
Imagine que você envia uma mensagem, mas ela chega com cada palavra repetida duas vezes (Problema 1). Ou pense em ter duas chaves para a mesma porta, mas ninguém sabe qual usar (Problema 2). E ainda, quando você tenta atualizar o sistema, ele simplesmente não aceita suas mudanças porque está "falando um idioma diferente" (Problema 3). Era exatamente isso que acontecia: mensagens confusas, caminhos duplicados e impossibilidade de fazer melhorias com segurança.

PARTE III: A Solução - Correção Cirúrgica e Segura

Princípios da Correção

Adotamos uma abordagem conservadora e incremental:

Ação 1: Padronização do Comentário

Antes:

// A variável recebia HTML com wrapper duplicado
varComentario = "<p>" + outputs('Compose_comentario') + "</p>"

Depois:

// Remove wrapper externo, mantém apenas conteúdo
varComentario = outputs('Compose_comentario')
Para Executivos e Leigos:
Pense em enviar uma carta. Antes, estávamos colocando a carta dentro de um envelope, e depois colocando esse envelope dentro de outro envelope. Quando chegava no destinatário, ele via dois envelopes em vez de um, ficando confuso. A solução foi simples: usar apenas um envelope. Agora a mensagem chega limpa, direta e legível. É como remover embalagens desnecessárias de um produto - fica mais simples e funcional.
Resultado:

Ação 2: Normalização de Conexões

Problema identificado:

{
  "PatchItem_Leads": {
    "connection": "shared_sharepointonline"
  },
  "PatchItem_Notifications": {
    "connection": "shared_sharepointonline_1"  // ← Inconsistente
  }
}

Solução aplicada:

{
  "PatchItem_Leads": {
    "connection": "shared_sharepointonline"
  },
  "PatchItem_Notifications": {
    "connection": "shared_sharepointonline"  // ← Unificado
  }
}
Para Executivos e Leigos:
Imagine que sua empresa tem duas entradas: uma pela frente e outra pelos fundos. Antes, alguns funcionários entravam pela frente e outros pelos fundos, sem razão específica. Isso causava confusão no controle de acesso. Agora, todos entram pela mesma porta principal. Ficou mais simples, mais seguro e mais fácil de gerenciar. No sistema, isso significa que todas as operações usam o mesmo "cartão de acesso" para falar com o SharePoint, eliminando duplicação e pontos de falha.
Resultado:

Ação 3: Publicação Confiável via API

Criamos um script Python (publish_flow_patch.py) que:

  1. Autentica via Azure CLI ou MSAL
  2. Faz backup automático do fluxo original
  3. Aplica patches cirúrgicos apenas nas ações necessárias
  4. Usa método PATCH em vez de PUT (compatibilidade)
  5. Preserva connectionReferences (evita quebra de conexões)
  6. Valida antes de aplicar (modo dry-run disponível)

Exemplo de uso:

# Dry-run para validar mudanças
python publish_flow_patch.py \
  --env-id "Default-00000000-0000-0000-0000-000000000000" \
  --flow-name "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  --recipient-upn "responsavel@suaempresa.com" \
  --dry-run \
  --backup flow-backup.json

# Aplicar mudanças reais
python publish_flow_patch.py \
  --env-id "Default-00000000-0000-0000-0000-000000000000" \
  --flow-name "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  --recipient-upn "responsavel@suaempresa.com"
Para Executivos e Leigos:
Pense neste script como um "assistente de segurança" para fazer mudanças no sistema. Antes de realmente aplicar qualquer alteração, ele faz um "ensaio" (dry-run) - como quando você testa uma nova rota antes de usá-la no dia do compromisso importante. Além disso, ele sempre tira uma "foto" (backup) do sistema antes de mexer em qualquer coisa. É como ter um botão "desfazer" profissional: se algo der errado, podemos voltar ao estado anterior em segundos. Isso transforma mudanças arriscadas em operações seguras e controláveis.

Ação 4: Tratamento de Status com Fallback

Problema: No branch de 14 dias, precisávamos atualizar o status para "Aguardando Cliente" (código 11), mas o schema nem sempre expunha item/status/Value corretamente.

Solução:

// Fallback seguro
if (exists(item.status.Value)) {
  status = item.status.Value
} else {
  status = "11"  // Código direto para "Aguardando Cliente"
}
Para Executivos e Leigos:
Imagine que você pede uma informação ao assistente, mas às vezes ele não consegue responder porque o dado não está no formato esperado. Antes, o sistema simplesmente parava e dava erro. Agora, criamos um "plano B": se o assistente não encontrar a informação no lugar esperado, ele usa um valor padrão seguro. É como quando você pergunta "que horas são?" e a pessoa não tem relógio, mas sabe que é "mais ou menos meio-dia" pelo sol. Melhor uma resposta aproximada e segura do que nenhuma resposta.
Resultado:

PARTE IV: Resultados e Aprendizados

Resultados Quantitativos

Antes da correção:
  • Taxa de falha: ~15% das execuções
  • Tempo de troubleshooting: 2-3 horas por incidente
  • Comentários ilegíveis: 100% dos registros
Depois da correção:
  • Taxa de falha: <2% (erros externos apenas)
  • Tempo de troubleshooting: 15-20 minutos
  • Comentários ilegíveis: 0%
  • Publicações: 100% de sucesso com backup automático

Resultados Qualitativos

  1. Confiança operacional: O time agora confia no fluxo
  2. Manutenibilidade: Alterações futuras são seguras e rastreáveis
  3. Observabilidade: Logs e diagnósticos claros
  4. Escalabilidade: Pronto para crescer com a empresa

Aprendizados-Chave

1. Preserve o que funciona
2. Backup é sagrado
3. API do Power Automate tem peculiaridades
4. Teste em camadas
5. Documentação é investimento

PARTE V: Próximos Passos - Evoluindo a Solução

Resiliência Nativa

Implementar Scopes com Try/Catch:

Try:
  ├─> Enviar notificação Teams
  ├─> Obter resposta usuário
  └─> Atualizar SharePoint
Catch:
  ├─> Log erro em lista auxiliar
  ├─> Enviar alerta para TI
  └─> Tentar ação compensatória

Benefícios:

Observabilidade Avançada

Adicionar logging estruturado:

Métricas sugeridas:

Validações Defensivas

Guardrails antes de ações críticas:

IF (usuário.email existe) E (usuário.email contém "@")
  ENTÃO enviar Teams
SENÃO
  Log erro + notificar admin

IF (item.status é válido) E (item.responsavel não está vazio)
  ENTÃO processar
SENÃO
  Log erro + skip item

Automação de Testes

Criar "Test Harness":

  1. Script que cria item de teste no SharePoint
  2. Aguarda execução do fluxo (polling)
  3. Valida resultado esperado
  4. Limpa dados de teste
  5. Gera relatório de conformidade

PARTE VI: Lições para Outros Projetos

1. Automação Não é "Set and Forget"

Mito: "Criei o fluxo, agora ele roda sozinho para sempre"

Realidade: Automação exige:

2. Ferramentas Certas Fazem Diferença

Investimentos que valeram a pena:

3. Integração Entre Ferramentas Microsoft

Ecossistema Microsoft 365:

Lição: Maximize o que o ecossistema oferece, mas tenha plano B para cada dependência crítica.

4. Governança de Fluxos

Checklist de governança:

Conclusão

Automatizar processos com Power Automate é como construir pontes: parece simples à distância, mas os detalhes de engenharia fazem toda a diferença entre uma estrutura que resiste ao tempo e uma que cai no primeiro vento forte.

Nossa jornada de correção do fluxo de notificações nos ensinou que:

  1. Diagnóstico preciso é mais importante que agir rápido
  2. Mudanças incrementais são mais seguras que reescritas completas
  3. Backup e rollback são seus melhores amigos
  4. Documentação é investimento, não custo
  5. Testes estruturados evitam surpresas em produção
O que começou como uma correção de bugs se tornou uma base sólida para automações futuras.

Para Reflexão

Perguntas para sua organização:

Se você respondeu "não" para qualquer uma dessas perguntas, talvez seja hora de revisar sua estratégia de automação.


Glossário - Entendendo os Termos Técnicos

Se você não é da área de tecnologia, este glossário vai ajudar a entender os termos usados ao longo do artigo:

API (Interface de Programação de Aplicações)
É como um "garçom" que leva pedidos entre programas. Quando você pede para um sistema conversar com outro, a API faz essa comunicação acontecer.
Backup
Cópia de segurança. Como tirar uma foto do sistema antes de fazer mudanças, para poder voltar atrás se algo der errado.
Branch (Ramificação)
Caminho alternativo no fluxo. Como uma bifurcação na estrada: dependendo da condição (7 ou 14 dias), o sistema segue por um caminho diferente.
Cloud (Nuvem)
Servidores na internet onde os programas e dados ficam guardados. Você acessa de qualquer lugar, como seu e-mail no celular.
Diagrama C4
Tipo especial de desenho que mostra como os sistemas se comunicam. O "C4" vem de Context (contexto), Containers (contêineres), Components (componentes) e Code (código).
Dry-run (Execução de teste)
Simular uma ação sem realmente executá-la. Como ensaiar uma apresentação antes do dia oficial.
Fluxo (Flow)
Sequência automática de ações. Como uma receita de bolo: primeiro você faz isso, depois aquilo, e assim por diante.
HTML (Linguagem de Marcação de Hipertexto)
Linguagem usada para criar páginas web. As "tags" HTML (como <p>) dizem ao navegador como mostrar o texto.
JSON (Notação de Objetos JavaScript)
Formato de texto usado para guardar e trocar informações entre sistemas. É como uma lista organizada com nomes e valores.
Low-Code (Baixo Código)
Plataforma onde você cria automações usando principalmente interface visual (clicar e arrastar), em vez de escrever muito código.
Microsoft 365
Pacote de ferramentas da Microsoft que inclui Outlook, Teams, SharePoint, OneDrive, entre outros. Usado por empresas para trabalho colaborativo.
PATCH (Método HTTP)
Comando usado para atualizar apenas partes específicas de um sistema, sem mexer no resto. Como consertar só um pneu furado, sem trocar o carro inteiro.
Power Automate
Ferramenta da Microsoft que cria automações: "quando isso acontecer, faça aquilo automaticamente". Como configurar seu celular para silenciar à noite.
Power Platform
Conjunto de ferramentas da Microsoft para criar aplicativos, automações e relatórios sem ser programador: Power Apps, Power Automate, Power BI.
Python
Linguagem de programação popular e fácil de aprender. Usada para criar scripts (pequenos programas) que automatizam tarefas.
Rollback
Voltar atrás, desfazer uma mudança. Como o "Ctrl+Z" que você usa no Word, mas para sistemas inteiros.
RPA (Automação Robótica de Processos)
"Robôs" de software que executam tarefas repetitivas que humanos faziam manualmente, como copiar dados de um sistema para outro.
Schema (Esquema)
Estrutura que define como os dados devem ser organizados. Como um formulário em branco que diz quais campos devem ser preenchidos.
Script
Pequeno programa que automatiza tarefas. Como uma macro no Excel, mas pode fazer coisas mais complexas.
SharePoint
Sistema da Microsoft para guardar e compartilhar arquivos e listas na empresa. Como um "Google Drive empresarial" com superpoderes.
Timeout (Tempo Esgotado)
Prazo máximo de espera. Como quando você liga para uma empresa e depois de 5 minutos na espera a ligação cai automaticamente.
Trigger (Gatilho)
Evento que inicia uma automação. Como o despertador que dispara às 7h: quando isso acontece, aquilo começa.
Try/Catch (Tentar/Capturar)
Estratégia de programação: "tenta fazer isso; se der erro, faz aquilo". Como ter um plano B sempre pronto.
UPN (Nome Principal do Usuário)
Seu e-mail de login corporativo, como joao.silva@empresa.com. Identifica você unicamente na empresa.
WAR (Arquivo Web)
Pacote que contém um aplicativo web completo pronto para ser instalado em um servidor. Como um arquivo .zip de um programa.
Workflow (Fluxo de Trabalho)
Sequência de etapas em um processo de negócio. Como o caminho que um documento percorre desde criação até aprovação final.
Para Executivos e Leigos:
Este glossário é como um "dicionário de viagem" para o mundo da tecnologia. Cada termo técnico foi traduzido para linguagem do dia a dia usando analogias familiares. Se você entender esses conceitos básicos, conseguirá acompanhar conversas técnicas com sua equipe de TI e tomar decisões mais informadas sobre investimentos em automação. Lembre-se: tecnologia complexa pode ser explicada de forma simples - basta usar as metáforas certas!

Dica de Leitura

Se encontrar outro termo que não conhece, tente entender pelo contexto. Muitas vezes, usamos analogias do dia a dia para explicar conceitos técnicos. Por exemplo:


Recursos Adicionais

Scripts e Ferramentas: Documentação Técnica: Ferramentas Utilizadas:

Sobre a Cara Core Informática

Cara Core Informática é especializada em desenvolvimento de soluções empresariais robustas, integração de sistemas e automação de processos. Nossa abordagem combina engenharia de software sólida com profundo conhecimento do ecossistema Microsoft 365.

Serviços relacionados:

Hashtags

#PowerAutomate #Microsoft365 #SharePoint #Teams #Automação #RPA #LowCode #Python #Integração #CaraCoreInformática

Contato

Gostou do conteúdo?
Siga para mais arquitetura prática e automação de processos digitais.
Seguir no LinkedIn

Artigo técnico | 10 de dezembro de 2025 | Power Automate v1.0
© 2025 Cara Core Informática. Todos os direitos reservados.