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

LIÇÃO 19Aprovação de Exceção via Teams

Um desconto fora do padrão, uma extensão de prazo, um atendimento emergencial fora do contrato — todo processo tem exceções que precisam de aprovação. Este fluxo cria uma solicitação formal no Teams, espera a decisão do supervisor e atualiza o caso no Dynamics automaticamente.

🎯

Resultado desta lição

Ao final, você terá um fluxo que é acionado por um botão no Dynamics, envia uma solicitação de aprovação ao supervisor via Teams, e atualiza o caso com "Aprovado" ou "Rejeitado" baseado na resposta — com rastreabilidade completa.

Fluxo de aprovação com dois caminhos

// Fluxo — Aprovação de Exceção (Instant)
▶
Trigger
Quando um fluxo é executado manualmente (Instant)
Acionado por botão no formulário do Dynamics · recebe o ID do caso
🔍
Ação
Get a row by ID (Dataverse)
Busca os dados completos do caso pelo ID recebido
⏳
Ação
Iniciar e aguardar uma aprovação (Teams)
Envia card de aprovação ao supervisor · aguarda resposta
⚖️
Condição
Resposta foi Aprovada?
Yes → atualiza caso como Aprovado · No → atualiza como Rejeitado
Se Aprovado

Caminho positivo

  • Atualiza campo "Exceção Aprovada" = Yes
  • Registra nota no Timeline
  • Notifica o agente por e-mail
Se Rejeitado

Caminho negativo

  • Atualiza campo "Exceção Aprovada" = No
  • Registra motivo da rejeição no Timeline
  • Notifica o agente por e-mail

Passo a passo

  1. Crie um Instant cloud flow

    → make.powerautomate.com → + Create → Instant cloud flow
    Flow name: Dynamics — Solicitar Aprovação de Exceção
    Trigger: Manually trigger a flow

    No trigger, adicione um campo de entrada:

    + Add an input → Text
    Input name: CasoID
    Please enter your input: ID do Caso no Dynamics
    Por que Instant? Este fluxo não é disparado por um evento no Dataverse nem por agendamento — ele é disparado pelo agente ao clicar em um botão. O tipo Instant (manual trigger) é o correto para ações iniciadas pelo usuário. Nas versões mais recentes do Dynamics, você pode integrar esse botão diretamente no formulário via Power Apps Component Framework.
  2. Busque os dados do caso pelo ID

    → + New step → Get a row by ID (Dataverse)
    Table name: Cases
    Row ID: CasoID (input do trigger)
    Por que Get a row by ID aqui? O trigger manual só recebe o ID do caso (que o agente digita). Para ter acesso ao título, cliente e outros dados, precisamos buscar o registro completo no Dataverse antes de enviar para aprovação.
  3. Configure a ação de aprovação no Teams

    → + New step → Start and wait for an approval (conector Approvals)
    Approval type: Approve/Reject - First to respond
    Title: Solicitação de Exceção — [Case Title]
    Assigned to: e-mail do supervisor
    Details:
    O agente [Owner] solicitou uma exceção para o caso abaixo:
    Caso: [Case Title]
    Cliente: [Customer (Value)]
    Prioridade: [Priority (Label)]
    Descrição: [Description]

    Por favor, aprove ou rejeite esta solicitação.
    Item link: URL do caso no Dynamics (opcional)
    "Start and wait" pausa o fluxo: O fluxo fica pausado até o supervisor responder — pode ser minutos, horas ou dias. O Power Automate gerencia esse estado de espera automaticamente. O fluxo não consome recursos enquanto aguarda.
  4. Adicione a condição de resposta

    → + New step → Condition
    Valor 1: Outcome (resultado da aprovação)
    Operador: is equal to
    Valor 2: Approve
    Outcome vs. Response: Outcome retorna "Approve" ou "Reject" (a decisão). Response retorna o texto que o aprovador digitou como comentário. Use Outcome para a condição e Response para registrar o motivo no Timeline.
  5. Configure o caminho "Aprovado" (Yes)

    No lado Yes, adicione duas ações:

    Ação 1: Update a row (Dataverse)
    Table: Cases · Row ID: CasoID
    Campo customizado "Exceção Aprovada" (pm_excecaoaprovada): Yes
    Ação 2: Add a new row (Dataverse → Annotations)
    Object Type Code: incident
    Regarding: CasoID
    Note Text: ✅ Exceção APROVADA pelo supervisor. Comentário: [Response]
  6. Configure o caminho "Rejeitado" (No)

    No lado No, adicione as mesmas ações com valores opostos:

    Ação 1: Update a row — "Exceção Aprovada" = No
    Ação 2: Add a new row (Annotations)
    Note Text: ❌ Exceção REJEITADA pelo supervisor. Motivo: [Response]

    Salve e ative o fluxo.

  7. Teste o fluxo manualmente

    → No Power Automate, abra o fluxo
    → Clique em Run
    → Preencha o CasoID com o ID de um caso real
    → Clique em Run flow

    O supervisor receberá um card no Teams com botões "Approve" e "Reject". Ao clicar, o fluxo continua e atualiza o caso no Dynamics. Verifique o Timeline do caso — a nota com a decisão deve aparecer automaticamente.

    Para ver o card de aprovação: O supervisor precisa estar logado no Microsoft Teams. O card aparece nas notificações e também no canal "Approvals" do Teams (aba lateral).

Checklist

Timeout de aprovação — o que acontece se o supervisor não responder

Por padrão, o "Start and wait for an approval" aguarda indefinidamente. Em produção, isso pode deixar o fluxo pendurado por dias. Para adicionar um timeout, use o padrão de "Parallel Branch":

Estrutura com timeout:
1. Adicione um "Parallel Branch" após o trigger
2. No Branch A: coloque a aprovação normal
3. No Branch B: coloque um "Delay" de 24 horas → Cancel approval
4. Adicione uma condição após os branches para verificar qual terminou primeiro

Essa estrutura avançada garante que o fluxo não fique preso — se o supervisor não responder em 24 horas, a aprovação é cancelada automaticamente e o agente é notificado. Vamos explorar esse padrão na Lição 24.

Foto de Pablo Maruk
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa