Relatório no Power Query (Excel e Power BI)

Modificado em Ter, 27 Out na (o) 5:29 PM

O Excel e o Power BI podem buscar um relatório da Engage direto da API, sem exportar planilha pela tela. Este artigo mostra como montar as duas consultas do Power Query: uma gera o token a cada atualização e a outra traz o relatório.

Neste artigo

  1. Antes de começar
  2. Montar as consultas
  3. Cuidados
  4. Problemas comuns

Importante

O Suporte Engage atende o uso da API. As configurações dentro do Excel e do Power BI são de responsabilidade do cliente; este artigo é uma orientação.

Antes de começar

Request Consumir relatório (JSON) no Postman com resposta 200 e os registros do relatório; nomes de usuário ocultados

Montar as consultas

1Crie a consulta que gera o token

No Power Query: Obter Dados > De Outras Fontes > Consulta Nula. Renomeie a consulta para GetBearerToken — o nome precisa ser exatamente esse. Abra o Editor Avançado e cole:

let
    GetBearerToken = () =>
        let
            url  = "https://sandbox.engage.bz/api/v1/auth",
            body = Text.ToBinary(
                "grant_type=password"
                & "&username="      & Uri.EscapeDataString("LOGIN_DO_USUARIO_DE_SERVICO")
                & "&password="      & Uri.EscapeDataString("SENHA_DO_USUARIO_DE_SERVICO")
                & "&client_id="     & Uri.EscapeDataString("SEU_CLIENT_ID")
                & "&client_secret=" & Uri.EscapeDataString("SEU_CLIENT_SECRET")
                & "&customer_id="   & Uri.EscapeDataString("SEU_CUSTOMER_ID")
            ),
            options = [
                Headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
                Content = body,
                Timeout = #duration(0, 0, 2, 0)
            ],
            resposta = Json.Document(Web.Contents(url, options)),
            token    = resposta[access_token]
        in
            token
in
    GetBearerToken

Substitua só os textos em MAIÚSCULAS e clique em Concluído.

2Crie a consulta que busca o relatório

Crie outra Consulta Nula, com o nome que preferir (por exemplo, RelatorioModulos). No Editor Avançado:

let
    token   = GetBearerToken(),
    origem  = "https://sandbox.engage.bz/api/v1",
    caminho = "/SEU_CUSTOMER_ID/reports/legacy/GUID_DO_RELATORIO/USER_ID_DO_USUARIO_DE_SERVICO/json",

    resposta = Web.Contents(
        origem,
        [
            RelativePath = caminho,
            Query = [
                roundCompletionDateStartDate = "2026-08-01",
                roundCompletionDateEndDate   = "2026-08-31"
            ],
            Headers = [ #"Authorization" = "Bearer " & token ],
            Timeout = #duration(0, 0, 60, 0)
        ]
    ),

    dados  = Json.Document(resposta),
    tabela = Table.FromList(dados, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    tabela
TrechoO que colocar
SEU_CUSTOMER_IDO mesmo customer_id usado na consulta GetBearerToken
GUID_DO_RELATORIOO guid_report do relatório. O id numérico também funciona, mas muda de uma instância para outra
USER_ID_DO_USUARIO_DE_SERVICOO user_id do usuário de serviço. É obrigatório na rota, mas não muda o resultado: quem define o alcance dos dados é o usuário do token
QueryOs filtros do relatório, sempre como texto e datas no formato AAAA-MM-DD. Veja Parâmetros de filtro dos relatórios. Para trazer tudo, apague o bloco Query inteiro
TimeoutMantenha 60 minutos, o mesmo tempo que a API aguarda o processamento. Sem ele, a atualização cai em relatórios grandes

Dica

O RelativePath e o Query mantêm o endereço base fixo. É isso que permite a atualização agendada no Power BI Service.

3Transforme a lista em colunas

  1. Clique no botão de expandir (as duas setas) no cabeçalho da coluna Column1.
  2. Desmarque "Usar o nome da coluna original como prefixo" e clique em OK.
  3. Clique em Fechar e Carregar.

4Ajuste as opções que evitam erro

  • Credenciais: se o Power Query pedir, escolha Anônimo. A autenticação já vai no cabeçalho da consulta.
  • Erro Formula.Firewall: em Arquivo > Opções e Configurações > Opções > Privacidade, marque Ignorar Níveis de Privacidade.
  • Power BI: em Opções > Carregamento de Dados, desmarque Permitir carregamento paralelo de tabelas. Assim duas consultas de relatório não rodam ao mesmo tempo.

Cuidados

  • Não atualize duas consultas do mesmo relatório ao mesmo tempo com o mesmo usuário. Enquanto um relatório processa, uma segunda chamada igual não gera processamento novo: recebe o resultado da primeira, mesmo com filtros diferentes. Escalone os horários de atualização.
  • Sempre use filtros. Relatório sem recorte de data estoura o tempo de processamento e a atualização falha.
  • A senha fica gravada no arquivo. Trate o .xlsx ou o .pbix como material sensível e não o compartilhe. Se ele vazar, troque a senha do usuário de serviço.
  • As colunas vêm do relatório. Se o relatório mudar de colunas, a etapa de expansão pode quebrar e precisa ser refeita.

Problemas comuns

O que apareceCausa provávelO que fazer
Formula.Firewall: Query ... references other queriesNíveis de privacidade do Power QueryMarque Ignorar Níveis de Privacidade nas opções
DataSource.Error ... (401) UnauthorizedCredenciais erradas no GetBearerToken, customer_id diferente do da rota, ou usuário sem a permissão Gerenciar relatóriosConfira os dados e a permissão. Rode a autenticação no Postman (pasta 02 - Autenticação) para ver a mensagem real
DataSource.Error ... (404)O relatório não existe nesta instânciaListe os relatórios e confira o guid_report
The field 'access_token' of the record wasn't foundO POST /auth devolveu erro em vez de tokenRode a autenticação no Postman para ver a mensagem real
A atualização fica muito tempo e cai sozinhaFalta o Timeout de 60 minutos, ou o relatório é grande demaisFaça os dois: mantenha o Timeout e filtre por período ou ambiente
Carregou, mas sem nenhuma linhaA API devolveu lista vazia: filtros que zeraram o resultado, ou usuário sem alcance sobre esses dadosCompare com o mesmo relatório na tela do Admin
Os dados vieram com filtros diferentes dos configuradosDuas atualizações do mesmo relatório rodaram ao mesmo tempo com o mesmo usuárioEscalone os horários e desligue o carregamento paralelo

Próximo passo

Para escolher os filtros do bloco Query, veja Parâmetros de filtro dos relatórios.

Precisa de ajuda?

Escreva para meajuda@engage.bz informando o customer_id, o ambiente, o guid_report e a mensagem de erro do Power Query. Nunca envie senhas, tokens, o client_secret ou o arquivo com a consulta por e-mail.

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo