Dynamics do Zero ao PRO · Lição 21 de 48 · Módulo 3

LIÇÃO 21Atualização em Massa via Fluxo Agendado

Casos "Em Espera" que ficam semanas sem resposta do cliente bagunçam os relatórios e o dashboard. Este fluxo roda toda segunda-feira de manhã, encontra esses casos parados e atualiza o status automaticamente — mantendo a base limpa sem trabalho manual.

🎯

Resultado desta lição

Ao final, você terá um fluxo que roda toda segunda-feira às 8h, encontra casos "Em Espera" há mais de 7 dias e cancela automaticamente aqueles sem resposta — com nota no Timeline explicando o motivo.

Casos "Em Espera" acumulam sem controle

Quando um agente coloca um caso "Em Espera" aguardando retorno do cliente, esse caso some do radar. Sem um processo de follow-up, ele fica em espera para sempre — distorcendo métricas, inflando o número de casos ativos e dificultando relatórios reais.

A solução profissional é uma política clara: caso em espera há mais de 7 dias sem resposta é cancelado automaticamente, com nota explicativa no Timeline. O cliente recebe um e-mail informando que pode reabrir quando quiser.

Regra de negócio que vamos automatizar:
SE caso está com Status Reason = "On Hold"
E a última modificação foi há mais de 7 dias
ENTÃO cancelar o caso e notificar o cliente

Passo a passo

  1. Crie o Scheduled flow semanal

    → make.powerautomate.com → + Create → Scheduled cloud flow
    Flow name: Dynamics — Limpeza Semanal de Casos em Espera
    Starting: próxima segunda-feira
    Repeat every: 1 Week
    On these days: Monday

    Nas configurações avançadas do trigger de recorrência, defina o horário:

    At these hours: 8
    At these minutes: 0
    Fuso horário: O Power Automate usa UTC por padrão. Se seu time trabalha em horário de Brasília (UTC-3), configure o horário como 11 (UTC) para que rode às 8h no Brasil.
  2. Liste os casos em espera há mais de 7 dias

    → + New step → List rows (Dataverse)
    Table name: Cases
    Filter rows (OData):
    statecode eq 0 and statuscode eq 2 and modifiedon lt @{addDays(utcNow(), -7)}

    Decodificando o filtro: statecode eq 0 = caso ativo, statuscode eq 2 = Status Reason = "On Hold", modifiedon lt addDays(utcNow(), -7) = não foi modificado nos últimos 7 dias.

    Confirme o valor de statuscode: O valor numérico do Status Reason "On Hold" pode variar entre implementações. No Dynamics padrão é 2, mas customizações podem mudar isso. Verifique no Dataverse: tabela Case → coluna statuscode → veja o valor numérico da opção "On Hold".
  3. Inicialize variável de contador

    Initialize variable
    Name: CasosCancelados
    Type: Integer
    Value: 0

    Esse contador vai acumular quantos casos foram cancelados nesta execução — útil para o log final.

  4. Configure o loop e as ações por caso

    Apply to each → valor: value do List rows

    Dentro do loop, adicione 3 ações em sequência:

    Ação 1: Update a row (Dataverse · Cases)
    Row ID: Case (Value)
    Status: Cancelled (statecode = 2)
    Status Reason: Cancelled (statuscode = 6)

    Ação 2: Add a new row (Dataverse · Annotations)
    Regarding: Case (Value)
    Note Text: ⚙️ Caso cancelado automaticamente. Estava em espera há mais de 7 dias sem retorno do cliente. O cliente pode reabrir o caso a qualquer momento.

    Ação 3: Increment variable
    Name: CasosCancelados
    Value: 1
  5. Envie e-mail de resumo ao supervisor (fora do loop)

    Após o loop (fora do Apply to each), adicione a condição:

    Condição: CasosCancelados > 0

    No lado Yes:

    Send an email
    Subject: ✅ Limpeza semanal concluída — [CasosCancelados] casos cancelados
    Body: A rotina semanal de limpeza foi executada. [CasosCancelados] casos que estavam em espera há mais de 7 dias foram cancelados automaticamente.
  6. Configure tratamento de erro com "Configure run after"

    Um caso pode falhar ao ser atualizado (por exemplo, se foi modificado por outro processo ao mesmo tempo). Configure o fluxo para continuar mesmo com erros individuais:

    → Na ação de Update a row, clique nos três pontos (...)
    → Configure run after
    → Marque: is successful E has failed
    → Clique em Done

    Isso faz com que as ações seguintes (nota e contador) rodem mesmo se o update falhou — e o loop continua para o próximo caso sem travar o fluxo inteiro.

    Configure run after: É um dos recursos mais importantes para fluxos em produção. Sem ele, um erro em um caso cancela o processamento de todos os outros. Com ele, você trata falhas individuais e o lote continua.

Checklist

Notificar o cliente antes de cancelar

Uma versão mais sofisticada deste fluxo adiciona uma etapa de aviso antes do cancelamento: quando o caso completa 5 dias em espera, o fluxo envia um e-mail ao cliente avisando que o caso será cancelado em 48 horas se não houver resposta.

Fluxo com aviso prévio:
1. Lista casos em espera há mais de 5 dias → envia e-mail de aviso
2. (Segundo fluxo) Lista casos em espera há mais de 7 dias → cancela

Use um campo customizado "Data do Aviso Enviado" para evitar enviar o aviso múltiplas vezes para o mesmo caso.
Foto de Pablo Maruk
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa