Um guia para automatizar análises de dados usando a API do Pipedrive
Existem diferentes formas de extrair dados de um CRM, e enviar para o Power BI. Fazer isso manualmente através de uma exportação em CSV é a mais fácil e, mais trabalhosa. Outra maneira é assinar um dos conectores disponíveis no mercado, como Zapier ou Integromat. Apesar de conveniente, muitas vezes se torna caro pagar uma ferramenta em dólar e estar sujeito a cobranças por volume de dados transacionado. Sua operação acaba refém do conector. Na nossa opinião, a melhor forma possível de conectar um banco de dados de um CRM à ferramenta de Business Intelligence, é através de API. Este tipo de integração te permite ter acesso completo ao banco de dados, o que não é possível através da exportação manual. Além disso, você pode configurar quantas atualizações quiser, sem pagar um centavo. Neste artigo vamos mostrar como é possível levar os dados gerados no Pipedrive para o Power BI através de um script em M.
O primeiro passo é criar 2 parâmetros no Power BI que irão servir de referência para sua consulta. Isso é importante porque, caso sua URL ou Token de acesso do Pipedrive mude, você não vai precisar alterar todos os scripts dos diferentes endpoints. Para isso acesse o ambiente transformar dados no Power BI, gerenciar parâmetros, criar um novo parâmetro. Você vai precisar criar um parâmetro para a URL da sua conta no Pipedrive e outro parâmetro para o Token do Pipedrive, ambos do tipo texto.
Criando Parâmetros no Power BI
Obtendo o Token e URL do Pipedrive
Para obter o seu Token, acesse as configurações da conta clicando no canto superior direito, na imagem do usuário, vá em ajuste, preferências pessoais, na aba API. Você irá precisar ter acesso como administrador da sua empresa. Copie esse código e insira no valor do parâmetro criado como Token.
Para obter a URL da sua empresa, copie o trecho semelhante ao seguinte exemplo: https://suaempresa.pipedrive.com.
Conferindo a documentação da API do Pipedrive
Feito isso, está na hora de obtermos os dados da API montando nosso Script. Eu recomendo dar uma olhada na documentação antes, para entender um pouco sobre quais Endpoints o Pipedrive oferece e os dados que são entregues em cada um deles. Além disso, lá também estão as informações que você pode inserir nas Querys dentro do seu script. Nas imagens abaixo você pode observar os endpoints, os detalhes do endpoint Deals (especificações da Query e Response respectivamente).
Criando o Script no Power BI
Para criarmos um script no Power BI, você vai precisar acessar o botão nova fonte, consulta nula. Depois disso, clique no editor avançado para começarmos a construção do nosso Script. Neste caso, vou simular uma requisição Get para o endpoint “Deals”. Ele nos dá todas as informações da entidade Negócios, que são inseridas dentro do Pipedrive.
Bloco de código para ser inserido na consulta
Source = Json.Document(Web.Contents(#"URL PIPEDRIVE"&"/api/v1/deals?api_token="&#"TOKEN PIPEDRIVE",[Query=[api_token=#"TOKEN PIPEDRIVE", limit="1", start="0", get_summary="1"]])), #"Fonte convertida em tabela" = Record.ToTable(Source), #"Seleção de ""Valor""" = #"Fonte convertida em tabela"{2}[Value], #"Seleção de total de registros" = #"Seleção de ""Valor"""[summary], #"Total de registros" = #"Seleção de total de registros"[total_count], #"Lista criada para paginação" = List.Generate(()=>0, each _ < #"Total de registros", each _ + 500), #"Lista convertida em tabela" = Table.FromList(#"Lista criada para paginação", Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Tipo alterado para texto" = Table.TransformColumnTypes(#"Lista convertida em tabela",{{"Column1", type text}}), #"Coluna adicionada com dados" = Table.AddColumn(#"Tipo alterado para texto", "Custom", each Json.Document(Web.Contents(#"URL PIPEDRIVE"&"/api/v1/deals?api_token="&#"TOKEN PIPEDRIVE",[Query=[api_token=#"TOKEN PIPEDRIVE", limit="500", start=[Column1]]]))) in #"Coluna adicionada com dados"
Vamos começar inserindo a função Json.Document. Esta função retorna o conteúdo de um documento JSON, que é o formato que a API nos entrega a informação. Depois nós vamos chamar a função Web.Contents. Ela vai retornar o conteúdo da Url do Pipedrive que vamos inserir. Posteriormente, colocamos a URL como uma concatenação do Parâmetro da URL que criamos, o bloco “/api/v1/deals?api_token=” e o também criado Parâmetro Token do Pipedrive. Dentro da Query, vamos personalizar o api_token, como o Parâmetro Token, o limite igual a 1 (itens mostrados por página) , start igual a 0 (o ponto inicial da paginação), e get_summary igual a 1 (se queremos mostrar o sumário da chamada). Todos os parâmetros da Query podem ser conferidos na documentação da API, no Endpoint de Deals.
Terminada a primeira linha de código, passamos a segunda. Ela é uma transformação em tabela dos dados da linha anterior. Utilizamos para isso a função Record.ToTable, invocando a linha anterior.
Depois vamos acessar o sumário, pegando o ítem Value da segunda coluna. Trazemos então o registro do total de negócios naquele Endpoint (total_count). Esse registro vai servir para criarmos nossa paginação, tendo em vista que o Pipedrive limita uma requisição à 500 registros por página.
Tendo o total de registros, nós criamos nossa lista de paginação. Para isso trazemos a função List.Generate, que gera uma lista incrementando 500 registros, até atingir o total de registros que coletamos no passo anterior. Convertemos então essa lista em uma tabela usando a função Table.FromList. Transformamos a coluna de paginação para o formato texto, utilizando a função Table.TransformColumnTypes. Fazemos isso para não gerar um problema de leitura deste dado pela API do Pipedrive. Depois adicionamos todos os dados paginados com a função Table.AddColumn, sendo que o parâmetro de start será agora a coluna que criamos de paginação, e o limite será de 500 registros.
Pronto, agora temos uma tabela com todos os registros de negócios paginados. Depois vamos só expandir essa tabela até que possamos ter tudo de forma tabular. Lembre-se de desmarcar a opção “Use o nome da coluna original como prefixo” para que os nomes das colunas não fiquem enormes.
Publicando o relatório na nuvem
Vamos então para uma segunda etapa, publicar esses dados na nuvem e fazer com que eles atualizem de forma automática. Para isso precisamos ter uma conta no Power BI. Publicamos nosso relatório no Power BI Service, através do botão publicar.
Com o relatório publicado, vamos em conjunto de dados, clicamos em mais opções no conjunto de dados que queremos editar, e configurações.
Precisamos então editar as credenciais, inserindo a opção Anonymous no Método de Autenticação e Público na Configuração de nível de privacidade. Isso vai permitir que possamos configurar as atualizações agendadas, e que nosso banco de dados seja atualizado automaticamente.
Pronto! Agora seu banco de dados vai estar sempre atualizado, de forma totalmente automática.
É importante você saber que a lógica deste script pode ser aplicada a todos os endpoints da API. Os principais, ou os que mais usamos no dia-a-dia de trabalho, são: Atividades, Deals, Organizações, DealFields, OrganizationFields, Users, Pipelines e Stages. Com essas informações é possível realizar 90% das análises necessárias em uma operação de Vendas, CS ou Financeiro.
Esperamos que com essas informações, você e sua empresa possam ter mais clareza sobre as operações realizadas dentro do CRM.