Integração com o Power BI (via API)

Power BI: dashboards com gráficos de análise de dados exibidos em smartphone, tablet e desktop em fundo amarelo

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 para que os usuários possam criar seus próprios relatórios e dashboards.

Neste artigo, trataremos do envio de dados da conta do CRM PipeRun de vendas para o Power BI, que podem ser feitas de duas maneiras:

  1. Via planilhas: exporte os dados do PipeRun para uma planilha e depois importe a mesma planilha no Power BI (mais recomendado);

  2. Via API: envie os dados para o Power BI à partir de requisições à nossa API (conhecimentos técnicos são necessários).

Neste artigo, iremos explicar como realizar a integração com o Power Bi para receber dados de Oportunidades da conta, a partir da API do CRM de Vendas PipeRun.

Atenção! Apenas usuários com nível de acesso de gestor tem acesso ao token da conta. Para saber mais sobre níveis de acesso, acesse este artigo.

Conhecimentos técnicos são desejáveis para realizar a integração via API.


REQUISITOS

  • Software Power BI instalado;

  • Conta ativa no CRM de vendas PipeRun;

  • Token da conta PipeRun.


TÓPICOS DO ARTIGO

  1. Como importar dados de oportunidades da conta do PipeRun

  2. Fórmula para laço de repetição


COMO IMPORTAR DADOS DE OPORTUNIDADES DA CONTA DO PIPERUN


Para importar os dados de Oportunidades da conta do CRM de Vendas PipeRun, será necessário configurar uma requisição à nossa API, informando o token da conta. Confira abaixo:

1. Acesse o software Power BI Desktop. Na aba "Página inicial", clique em "Obter dados" (1) e selecione "Web" (2).

Menu Obter dados do Power BI Desktop com opções de fontes de dados, destacando Obter dados e Web


2. Uma janela será exibida. Marque a opção "Avançadas" (1) e preencha o campo "Partes de URL" (2) com a seguinte URL do endpoint de Oportunidades do PipeRun: https://api.pipe.run/v1/deals?token=<SEU-TOKEN-AQUI>&show=200

Ao final, clique em "Ok" (3).

Atenção! Não esqueça de substituir <SEU-TOKEN-AQUI> pelo token da sua conta. Os sinais de "<" e ">" devem ser removidos, permanecendo somente o código do token. Para saber mais sobre como obter o token, acesse este artigo.

Tela 'Da Web' com campo de URL contendo token de autenticação SEU-TOKEN-AQUI e parâmetros HTTP

Dica: para consumir atributos adicionais das Oportunidades utilizando a API do Piperun, é necessário utilizar o parâmetro with. Desta forma, é possível importar dados de tags, notas, ligações, propostas etc.

Por exemplo, para obter informações dos campos customizados e das tags das oportunidades. Neste caso devo usar a URL com os parâmetros contendo os atributos customFields e tags logo após o parâmetro with: https://api.pipe.run/v1/deals?token=0fd1a3c4dfc1e0771e8ab2c4d6ef6e63&show=200&with=customFields,tags.

Para visualizar a lista completa de valores possíveis de serem retornados com o parâmetro with, confira nossa documentação da API.


3. Agora, os dados de Oportunidades (54 no total - neste exemplo) foram importadas para o Power BI.

Nas próximas etapas, iremos tratar os dados contendo os atributos das Oportunidades ("Descrição", "Id do dono", "Temperatura da Oportunidade", "Probabilidade" etc.) em diferentes células da planilha. 

Para isso, clique em "Fonte", no campo "Etapas duplicadas" da aba lateral direita.

Interface Power Query com painel Propriedades aberto, destacando opção 'Fonte' em Etapas Aplicadas para transformação de coluna


4. Agora, na linha "data", clique em "list".

Interface de consulta JSON mostrando resultado de API com campos success, message, data e meta destacados em painel de configuração


5. Uma nova janela será aberta. Clique em "Continuar", para criar uma etapa de navegação que vá substituir as etapas subsequentes.

Caixa de diálogo 'Etapa de Navegação' com aviso de substituição de etapas e botões Continuar e Cancelar


6. Uma nova planilha será exibida. Cada célula da coluna "Lista" carrega os dados de uma Oportunidade específica. Para separar os dados destas Oportunidades em colunas individuais, clique em "Converter para tabela".

Interface do Power Query mostrando opção 'Converter para Tabela' para separar dados de Oportunidades em colunas individuais


7. Uma janela de confirmação será exibida. Clique em "Ok".

Diálogo 'Para a Tabela' com opções de delimitador e tratamento de colunas, botão OK destacado em vermelho


8. Agora, clique no botão com as "setas duplas", disponível na célula "Column1".

Interface Power Query com tabela de dados e botão de expansão de coluna sinalizado por seta vermelha


9. Por fim, selecione os atributos das Oportunidades (ou seja, as colunas da tabela) que deseja que apareçam na planilha e clique em "Ok".

Diálogo de seleção de colunas da tabela Oportunidades com lista de atributos marcados e botão OK destacado em vermelho


10. As novas colunas serão exibidas individualmente, contendo todos os atributos das Oportunidades que foram marcados anteriormente.

Tabela expandida no Power BI mostrando colunas de oportunidades com dados de integração e status nulos



FÓRMULA PARA LAÇO DE REPETIÇÃO


A API do CRM de Vendas PipeRun trabalha com paginação e traz no máximo 200 registros por página. Ou seja, existe um limite de no máximo 200 registros de Oportunidades para serem importadas de forma manual no Power BI.

Para importar mais do que 200 registros, será necessário incrementar um laço de repetição dentro do Power Query.

Segue abaixo a fórmula do laço de repetição para ser aplicada no Power Query:

Atenção! Atente-se aos trechos do código que possuem <INSIRA_SEU_TOKEN_AQUI> e substitua pelo valor do token API da conta do PipeRun, com aspas duplas.

let
 Token = <INSIRA_SEU_TOKEN_AQUI>,
 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"


1. Com o código copiado acesse a aba Página Inicial do Power Bi e após, clique na opção "Editor Avançado".

Editor do Power Query com abas de ferramentas, tabela de dados com colunas nulas e opção 'Editor Avançado' destacada em vermelho


2. Por fim, cole o código na caixa de texto e após clique em "Concluído".

Editor Avançado com código JavaScript para configuração de token e campos customizados, botão Concluído destacado em vermelho

Pronto! Agora você já sabe como realizar a integração do Power BI com o CRM de Vendas PipeRun.


Em caso de dúvidas, chame nossa equipe no chat. 😉