Power BI
7 min
Criado por: Ana Bittencourt em: 16/07/2020 11:12

 

Power BI é um serviço de análise de negócios da Microsoft desenvolvido para fornecer visualizações interativas e recursos de business intelligence. A plataforma apresenta uma interface simples para que os usuários possam criar seus próprios relatórios e dashboards. A integração com o Power BI pode ser feita de duas formas:

1. Manual: exportando os dados via planilha Excel e depois importando no Power BI para ter métricas;

2. Via API: fazer a extração dos dados e enviá-los ao Power BI, a partir da nossa API. Nesse caso, conte com o auxílio do seu desenvolvedor. A autenticação ocorre através de um token passado no Header (com necessidade do Postman). Siga o passo a passo. 

 

1. Acesse a documentação da API nesse link. Clique em Deals Collections > Deals

 

2. O próximo passo é clicar em Get Deals e copiar a chamada (http://api.pipe.run/v1/deals), conforme a imagem abaixo. 

 

3. Para testar a chamada do CRM PipeRun, precisamos utilizar o Postman. Cole a chamada copiada no campo Enter request URL

 

4. Além da chamada, precisamos do Token fornecido pelo PipeRun. Acesse o sistema, posicione o mouse sobre o avatar da conta, localizado no canto superior direito da tela. Clique em Integrações

 

5. Copie o token fornecido pelo PipeRun.

 

6. Retorne ao Postman, cole novamente a chamada obtida no passo 2 e clique em Send. Clique em Headers e preencha com Token em Keys e informe o valor Value.

 

7. O resultado esperado pode ser visto na imagem abaixo.

 

8. Depois de testar a autenticação no Postman, seguimos para a próxima etapa. Vamos obter dados no Power BI em um arquivo novo. Em Página inicial, clique em Obter dados > Selecionar Web > Selecionar Avançadas > Preencher com URL, token e o valor do token

 

9. No ambiente do Power Query, temos algo parecido com os outros casos.

 

 

10. Agora vamos testar uma possível URL Base que funcione no navegador, para não ter problemas com conexão de teste no Power BI Online. Vamos testar para http://api.pipe.run

 

11. Funcionou. Já temos nossa URL Base para montar a fórmula. Vamos adicionar o Relative Path. 

Alterar fórmula da fonte
Fórmula:
= Json.Document(Web.Contents("http://api.pipe.run", [Headers=[token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX], RelativePath = "/v1/deals"]))

 

12. Vamos expandir para verificar as informações?

 

13. Etapas: Clicar em List → Clicar em Converter para Tabela → Clicar no botão para expandir no canto direito da coluna Column1.

 

14. Temos o resultado da tabela com os dois deals (Consultoria PBI e Curso PBI) lá do site do CRM PipeRun. Para testar, vamos criar um deal lá no site e atualizar o Power Query.

 

15. Com o Power Query atualizado, temos o seguinte.

 

16. Para finalizar, vamos criar o parâmetro para o Token e inseri-lo na fórmula da fonte.

 

17. Com a criação do parâmetro, teremos o seguinte.

 

Recapitulando:

Etapas:
1. Criar deal de teste no site do CRM PipeRun
2. Atualizar Power Query
3. Em Página Inicial clicar em Gerenciar Parâmetros → Alterar nome, tipo e valor
4. Alterar fórmula da fonte
Fórmula:
= Json.Document(Web.Contents("http://api.pipe.run", [Headers=[token=Token], RelativePath = "/v1/deals"]))

Fonte: Aprenda Power BI.

 

Paginação no Power BI

 

O exemplo acima descrito serve para buscar poucas informações no CRM PipeRun. A API trabalha com paginação e traz no máximo 200 registros por página, então quando tiver muitos registros para coletar e utilizar no Power BI, será necessário incrementar um laço de repetição dentro do Power Query.

Com a colaboração do cliente Fabio Puhl, segue abaixo a fórmula dentro do Power Query onde é possível fazer uma busca de oportunidades dentro do CRM PipeRun com mais de 200 registros.

Fórmula da fonte com laço de repetição para busca de milhares de registros.
Fórmula:
// Oportunidades
let
Tabela = "deals",
Fonte = Json.Document(Web.Contents("http://api.pipe.run", [Headers=[token=token], RelativePath = "/v1/"&Tabela&"?show=1"])),
#"meta" = Fonte[meta],
total_pages = #"meta"[total_pages],
#"Convertido para Tabela" = #table(1, {{total_pages}}),
#"Personalização Adicionada" = Table.AddColumn(#"Convertido para Tabela", "Personalizar", each Number.IntegerDivide([Column1], 200)+1),
#"Personalização Adicionada1" = Table.AddColumn(#"Personalização Adicionada", "Personalizar.1", each List.Numbers(1, [Personalizar], 1)),
#"Personalizar.1 Expandido" = Table.ExpandListColumn(#"Personalização Adicionada1", "Personalizar.1"),
#"Colunas Removidas" = Table.RemoveColumns(#"Personalizar.1 Expandido",{"Column1", "Personalizar"}),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Colunas Removidas",{{"Personalizar.1", type text}}),
#"Personalização Adicionada2" = Table.AddColumn(#"Tipo Alterado", "Personalizar", each Json.Document(Web.Contents("http://api.pipe.run", [Headers=[token=token], RelativePath = "/v1/"&Tabela&"?&show=200&page="&[Personalizar.1]]))),
#"Personalizar Expandido" = Table.ExpandRecordColumn(#"Personalização Adicionada2", "Personalizar", {"data"}, {"data"}),
#"data Expandido" = Table.ExpandListColumn(#"Personalizar Expandido", "data"),
#"data Expandido1" = Table.ExpandRecordColumn(#"data Expandido", "data", {"id", "hash", "rdstation_reference", "data_congelamento", "type_reference", "reference", "temperature", "probability", "account_id", "pipeline_id", "owner_id", "stage_id", "person_id", "company_id", "lost_reason_id", "origin_id", "started_in_stage_id", "city_id", "created_at", "title", "description", "observation", "status", "closed_at", "reason_close", "deleted", "freezed", "value", "order", "updated_at", "last_stage_updated_at", "value_mrr", "probably_closed_at", "last_contact_at", "stage_changed_at", "custom_fields"}, {"id", "hash", "rdstation_reference", "data_congelamento", "type_reference", "reference", "temperature", "probability", "account_id", "pipeline_id", "owner_id", "stage_id", "person_id", "company_id", "lost_reason_id", "origin_id", "started_in_stage_id", "city_id", "created_at", "title", "description", "observation", "status", "closed_at", "reason_close", "deleted", "freezed", "value", "order", "updated_at", "last_stage_updated_at", "value_mrr", "probably_closed_at", "last_contact_at", "stage_changed_at", "custom_fields"})
in
#"data Expandido1"

// Token
"[SEU-TOKEN-AQUI]" meta [IsParameterQuery=true, Type="Any", IsParameterQueryRequired=true]

 

Para complementar o assunto, assista nosso webinar Inteligência de Vendas com Power BIEm caso de dúvida, entre em contato com nossa equipe de suporte

O que você achou deste artigo?
Últimos artigos visitados