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.
📅 Módulo 6 — IA e Automação Avançada✍️ Pablo Maruk
🎯
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.
Arquitetura da integração
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.
Mão na massa
Implementando os dois fluxos
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
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
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.
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa