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

LIÇÃO 42Integração com APIs Externas via Power Automate

Qualquer sistema com uma API REST pode trocar dados com o Dynamics — sem connector oficial, sem código personalizado. Esta lição cobre o padrão HTTP do Power Automate para chamar APIs externas, autenticar e mapear respostas JSON para campos do Dataverse.

🎯

Resultado desta lição

Ao final, você terá um fluxo que chama uma API REST externa (exemplo: serviço de CEP ou ERP), mapeia a resposta JSON e atualiza ou cria registros no Dynamics automaticamente.

A ação HTTP — o canivete suíço do Power Automate

O Power Automate tem conectores para centenas de serviços. Mas quando o serviço não tem connector oficial — um ERP legado, uma API interna da empresa, um serviço de consulta de CNPJ — a ação HTTP Premium resolve.

→ New step → HTTP
Method: POST / GET / PUT / PATCH / DELETE
URI: URL completa do endpoint
Headers: Content-Type, Authorization, etc.
Body: JSON do payload (para POST/PUT)
Ação HTTP é Premium: Requer licença Power Automate Premium (antes chamada Per User Plan). A licença de Dynamics inclui Power Automate com conectores padrão — mas HTTP Premium pode exigir licença adicional dependendo do plano contratado.

Passo a passo

  1. Autenticar com OAuth 2.0

    A maioria das APIs modernas usa Bearer Token. Configure a autenticação no header:

    Headers:
    Authorization: Bearer @{body('Get_token')['access_token']}
    Content-Type: application/json

    Para OAuth, adicione uma etapa anterior:
    HTTP POST para o endpoint de token:
    Body: grant_type=client_credentials&client_id=...&client_secret=...&scope=...
    Salve o resultado em varToken para usar nos headers das chamadas seguintes.
  2. Chamar a API e parsear o JSON

    → HTTP GET → URI: https://api.exemplo.com/produtos/@{triggerBody()?['codigo']}

    Após a ação HTTP:
    → Parse JSON → Content: body('HTTP')
    → Schema: gere automaticamente clicando em "Generate from sample" e colando uma resposta real da API
    Parse JSON é obrigatório: A ação HTTP retorna o corpo como texto. O Parse JSON transforma em objeto navegável — sem ele, você não consegue referenciar campos individuais da resposta como tokens dinâmicos.
  3. Mapear para o Dataverse

    Após o Parse JSON, os campos da resposta ficam disponíveis como tokens:

    nome_produto: body('Parse_JSON')['name']
    preco: body('Parse_JSON')['price']
    estoque: body('Parse_JSON')['stock_quantity']

    → Patch Cases ou Update row com os valores mapeados
  4. Tratar erros de API

    Configure run after na ação seguinte ao HTTP:
    ✓ has failed
    ✓ has timed out

    Dentro do branch de erro:
    - Verifique o status code: outputs('HTTP')['statusCode']
    - 401 → token expirado → renovar e tentar novamente
    - 404 → registro não encontrado → criar novo
    - 429 → rate limit → Delay 60s + retry
    - 5xx → erro do servidor → notificar administrador

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