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
- Antes de começar
- Montar as consultas
- Cuidados
- 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
- As credenciais da sua instância, reunidas em Comece por aqui: credenciais para integrar com a API da Engage.
- Um usuário de serviço com a permissão Gerenciar relatórios — veja Criar o usuário de serviço da integração. Não use o login de uma pessoa.
- O
guid_reportdo relatório, que vem da listagem descrita em Relatórios disponíveis e seus filtros. - A chamada validada no Postman antes de ir para o Power Query: pasta 05 - Relatórios, request Consumir relatório (JSON).
- Monte tudo em homologação (
https://sandbox.engage.bz/api/v1) e troque para produção (https://my.engage.bz/api/v1) só quando o resultado estiver conferido.

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
GetBearerTokenSubstitua 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| Trecho | O que colocar |
|---|---|
SEU_CUSTOMER_ID | O mesmo customer_id usado na consulta GetBearerToken |
GUID_DO_RELATORIO | O 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_SERVICO | O 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 |
Query | Os 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 |
Timeout | Mantenha 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
- Clique no botão de expandir (as duas setas) no cabeçalho da coluna
Column1. - Desmarque "Usar o nome da coluna original como prefixo" e clique em OK.
- 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
.xlsxou o.pbixcomo 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 aparece | Causa provável | O que fazer |
|---|---|---|
Formula.Firewall: Query ... references other queries | Níveis de privacidade do Power Query | Marque Ignorar Níveis de Privacidade nas opções |
DataSource.Error ... (401) Unauthorized | Credenciais erradas no GetBearerToken, customer_id diferente do da rota, ou usuário sem a permissão Gerenciar relatórios | Confira 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ância | Liste os relatórios e confira o guid_report |
The field 'access_token' of the record wasn't found | O POST /auth devolveu erro em vez de token | Rode a autenticação no Postman para ver a mensagem real |
| A atualização fica muito tempo e cai sozinha | Falta o Timeout de 60 minutos, ou o relatório é grande demais | Faça os dois: mantenha o Timeout e filtre por período ou ambiente |
| Carregou, mas sem nenhuma linha | A API devolveu lista vazia: filtros que zeraram o resultado, ou usuário sem alcance sobre esses dados | Compare com o mesmo relatório na tela do Admin |
| Os dados vieram com filtros diferentes dos configurados | Duas atualizações do mesmo relatório rodaram ao mesmo tempo com o mesmo usuário | Escalone 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
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo