Dynamics do Zero ao PRO · Lição 45 de 48 · Módulo 6 — IA e Automação Avançada

LIÇÃO 45Projeto: Integração com Sistema ERP via API

O caso abre no Dynamics, mas o histórico de compras do cliente está no ERP. E quando o técnico resolve um defeito em garantia, precisa registrar no ERP para acionar a troca. Esta lição constrói a integração bidirecional entre Dynamics e ERP via API REST — sem middleware, sem código complexo.

🎯

Resultado desta lição

Ao final, você terá dois fluxos operacionais: um que busca dados do cliente no ERP ao abrir um caso no Dynamics, e outro que envia a resolução do caso para o ERP quando o status é Resolvido.

Dynamics ↔ ERP — dois fluxos, dois sentidos

Fluxo 1 — ERP → Dynamics (ao abrir caso):
Trigger: Case criado no Dynamics
→ HTTP GET no ERP: busca histórico do cliente pelo CNPJ/CPF
→ Cria nota no caso com resumo do histórico (últimas 3 compras, garantias ativas)
→ Atualiza campo customizado "Contrato Ativo" no caso com dados do ERP

Fluxo 2 — Dynamics → ERP (ao resolver caso):
Trigger: Case atualizado para Resolved
→ Verifica se é caso de garantia (campo customizado pm_is_garantia = true)
→ HTTP POST no ERP: abre RMA (Return Merchandise Authorization)
→ Atualiza caso com número do RMA gerado pelo ERP
Nunca integre diretamente em produção: Durante o desenvolvimento, use endpoints de sandbox/homologação do ERP. Só aponte para produção do ERP depois que os fluxos forem validados no ambiente de teste do Dynamics.

Implementando os dois fluxos

  1. Fluxo 1: buscar histórico no ERP ao criar caso

    Trigger: When a row is added (Cases)

    Get Contact: busca o contato pelo _customerid_value do caso

    HTTP GET ERP:
    URI: https://erp.empresa.com/api/clientes/@{body('Get_Contact')['pm_cnpj']}/historico
    Headers: Authorization Bearer {token}

    Parse JSON da resposta

    Add note to Case:
    Subject: "Histórico ERP — atualizado em " + utcNow()
    Note text: formatação das últimas compras + garantias ativas
  2. Fluxo 2: abrir RMA no ERP ao resolver caso

    Trigger: When a row is modified (Cases)
    Filter: statecode eq 1 AND pm_is_garantia eq true

    HTTP POST ERP:
    URI: https://erp.empresa.com/api/rma
    Body: JSON com número do caso, produto, defeito, cliente

    Parse JSON da resposta (número do RMA)

    Update Case:
    pm_numero_rma: body('Parse_JSON')['rma_number']
  3. Monitorar e alertar em caso de falha na integração

    Envolva as chamadas HTTP em Scope Try/Catch (padrão da Lição 24).

    No Catch, crie uma tarefa no Dynamics (Activity → Task) atribuída ao administrador:
    Subject: "⚠️ Falha na integração ERP — Caso " + incidentid
    Due date: utcNow() (vencida imediatamente = urgente)

    Isso garante que falhas de integração não passem despercebidas — o admin vê a tarefa em aberto no seu dashboard.

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