Solved

Integração Pipefy e PowerBI


Userlevel 4

Olá, gostaria de puxar os dados do meu processo e disponibiliza-los no PowerBi em dashboards interativos. Dessa forma, consigo controlar SLAs e KPIs de uma forma mais efetiva. Alguém aqui já fez algo do tipo? 

icon

Best answer by bruno-aarao 3 December 2021, 20:25

View original

48 replies

Userlevel 3
Badge

Bom dia, a todos. Atualmente, eu uso o conector Pipefy (beta) provido e configurei um Gateway para conectar automaticamente de forma diária. Assim, basta manter o gateway ativo que o Powebi online conecta no horário agendado. https://docs.microsoft.com/pt-br/power-bi/connect-data/service-gateway-onprem para maiores detalhes sobre como instalar o gateway.

Userlevel 2

Oi João,

Gostaria de complementar a resposta Felipe, sobre o modo difícil - que cita APIs.

Uma outra solução seria integrar o seu Pipefy com uma planilha do Excel e, a partir dessa planilha, integrá-la com o PowerBI.

Você pode fazer essa integração [com o Excel], através de plataformas de integração, como a Pluga.

Userlevel 4
Badge

Olá, Pessoal! 

Querida deixar a minha contribuição. Mais uma maneira pra não ter que usar a API.
Para trabalhar com esses dados usei a integração do Zapier. 

Pipefy > Zapier > Google Sheets

Trazendo os dados que queria através de uma ação (mover card) ou (criar card), isso alimenta minha planilha em tempo real. 

Ponto positivo: Dados atualizados em tempo real, de acordo com a ação, é claro. 
Ponto negativo: Os dados passando por muitos lugares.

https://zapier.com/apps/pipefy/integrations

Userlevel 7
Badge +5

@vitoria_lanes podemos ver quais opções, difícil ou fácil atendem nossas demandas. :blush:

@João Pedro, nós na FEE, por não ter conseguido muito bem lidar com a parte da criação do API, exportamos os relatórios do Pipefy e importamos no PowerBI para a geração dos indicadores e monitoramento no dashboard. Parte ruim desta atividade, é que a atualização do dashboard é totalmente mecânica. Foi uma possibilidade encontrada por nós que tivemos dificuldade com o API. 

Userlevel 7
Badge +5

@Karen Vilela Segue os arquivos do conector :) 

Userlevel 4
Badge +1

Pessoal, graças a ajuda do @consultoria24, consegui uma versão atualizada do conector mencionado, onde é possível realizar a carga de dados do pipefy para o PBI (inclusive esse conector traz informações de relações entre pipes!!!!), assim como realizar a atualização no PBI Service, uma vez configurado o Gateway (Inclusive consegui atualizar via gateway padrão e no modo pessoal).

 

Segue anexado o conector atualizado.

 

Obrigado demais @consultoria24 !!!!!

olá @bruno-cunha , foi um prazer apoiá-lo nesta jornada. Forte abraço :)

Userlevel 7
Badge +5

Olá João, existe o jeito fácil e o difícil.

Difícil
Existem duas formas de atuar com API's do Pipefy: Query ou Mutation.


Mutation: Manipular o Pipefy com dados exteriores (Não é o que você quer) e as Query's: Extrair dados do Pipefy para alguma base de dados (É o que você quer).

  • Esse link contém o passo a passo de como trabalhar com isso no Power Query do Power BI (https://gist.github.com/petrsvihlik/cc34a6cf1882d515139c5b27f37cf99e )
  • Esse link é uma IDE para testar os códigos (https://app.pipefy.com/graphiql
  • Esse link tem as funções para montar o código API (https://api-docs.pipefy.com/reference/objects/TableField/), testar na IDE e depois montar com o primeiro código (primeiro link), substituindo essa parte: { organization(login: \""github\"") { name }} Pelo código montado.

Obs: Deve-se colocar o código montado, e não o resultado do código obtido na IDE.

 

Fácil

Existe um conector do Power BI (essa não é uma funcionalidade desenvolvida por nosso time e sim um terceiro, por isso não oferecemos suporte para ativar essa integração) com o código já montado. Se você precisar de uma informação que o conector não te de, ai você precisará montar o código do jeito acima (o difícil), mas não acho que seja um problema. Você entenderá melhor por esse link.

Userlevel 2

Pessoal, graças a ajuda do @consultoria24, consegui uma versão atualizada do conector mencionado, onde é possível realizar a carga de dados do pipefy para o PBI (inclusive esse conector traz informações de relações entre pipes!!!!), assim como realizar a atualização no PBI Service, uma vez configurado o Gateway (Inclusive consegui atualizar via gateway padrão e no modo pessoal).

 

Segue anexado o conector atualizado.

 

Obrigado demais @consultoria24 !!!!!

Userlevel 4
Badge +1

Pessoal, graças a ajuda do @consultoria24, consegui uma versão atualizada do conector mencionado, onde é possível realizar a carga de dados do pipefy para o PBI (inclusive esse conector traz informações de relações entre pipes!!!!), assim como realizar a atualização no PBI Service, uma vez configurado o Gateway (Inclusive consegui atualizar via gateway padrão e no modo pessoal).

 

Segue anexado o conector atualizado.

 

Obrigado demais @consultoria24 !!!!!

olá @bruno-cunha , foi um prazer apoiá-lo nesta jornada. Forte abraço :)

@bruno-aarao … quis dizer :)   \o/

Userlevel 4
Badge +2

Olá João, existe o jeito fácil e o difícil.

Difícil
Existem duas formas de atuar com API's do Pipefy: Query ou Mutation.


Mutation: Manipular o Pipefy com dados exteriores (Não é o que você quer) e as Query's: Extrair dados do Pipefy para alguma base de dados (É o que você quer).

  • Esse link contém o passo a passo de como trabalhar com isso no Power Query do Power BI (https://gist.github.com/petrsvihlik/cc34a6cf1882d515139c5b27f37cf99e )
  • Esse link é uma IDE para testar os códigos (https://app.pipefy.com/graphiql
  • Esse link tem as funções para montar o código API (https://api-docs.pipefy.com/reference/objects/TableField/), testar na IDE e depois montar com o primeiro código (primeiro link), substituindo essa parte: { organization(login: \""github\"") { name }} Pelo código montado.

Obs: Deve-se colocar o código montado, e não o resultado do código obtido na IDE.

 

Fácil

Existe um conector do Power BI (essa não é uma funcionalidade desenvolvida por nosso time e sim um terceiro, por isso não oferecemos suporte para ativar essa integração) com o código já montado. Se você precisar de uma informação que o conector não te de, ai você precisará montar o código do jeito acima (o difícil), mas não acho que seja um problema. Você entenderá melhor por esse link.

Comecei a usar o método fácil. Até o momento esta atendendo minha necessidade. Obrigado!!!

Userlevel 3

Bom dia, a todos. Atualmente, eu uso o conector Pipefy (beta) provido e configurei um Gateway para conectar automaticamente de forma diária. Assim, basta manter o gateway ativo que o Powebi online conecta no horário agendado. https://docs.microsoft.com/pt-br/power-bi/connect-data/service-gateway-onprem para maiores detalhes sobre como instalar o gateway.

Olá, estou tentando conectar o pipefy beta ao powerbi online porém o mesmo não acha o gateway para cadastrar a nova fonte de dados, será que alguem consegue ajudar?

Userlevel 4
Badge +1

Olá ,

Acabei de realizar um apoio ao pessoal da Vale.com para usarem o conector. Fiz uma call direta e eles conseguiram conectar com sucesso. Adoraram o apoio ;)

abcs

Fernando

 

Userlevel 1

@Pipefy, libera um negocio que aparece no power bi e atualiza sem gambiarra. Que chato ter que ficar correndo atras disso. (baixa app de terceiros que ta fora do ar, ai o negocio não atualiza sozinho… que bad..)

Userlevel 4
Badge +1

Olá Arthur,

Este erro ocorreu comigo também. Eu instalei o Gateway on premise data gateway versão 3000.66.8 (já tem uma mais recente) e refiz a configuração. Mas antes, é importante você ter a versão correta do conector também e apontar para o diretório correto onde está este arquivo no gateway (às vezes, o local do arquivo fica mascarado no windows com outro nome - tivemos isso com um colega da Vale que , depois de revisar este ponto, passou a funcionar). Se vc quiser, podemos fazer um call via zoom (email fnascimento@p4rconsulting.com ) para revisarmos os passos.

grande abraço,

Fernando

Userlevel 7
Badge +5

@murilogamagodoy Acredito que isso seja um problema com o PowerBi não? Aqui tem um artigo que explica esse erro: https://community.powerbi.com/t5/Service/Gateway-problem/td-p/563613

Userlevel 2

Bom dia!

 

Estou tentando realizar a integração pelo método fácil, utilizando um conector, mas não estou conseguindo finalizar, pois não aparece a opção Pipefy na obtenção dos dados. É como se a conexão não tenha sido realmente realizada.

 

Estou utilizando o conector que foi enviado nesse tópico e um vídeo do Pipefy com o passo a passo de como realizar essa conexão mas até o momento não tive êxito.

 

Alguém passou pelo mesmo problema? Se sim, como conseguiu resolver?

 

Link do vídeo: https://screencast-o-matic.com/watch/cYV3lhvLvU

Userlevel 4
Badge +1

Que eu saiba, via conector, não é possivel de forma incremental. Mas automatizar, basta instalar o Gateway on premise do pwbi e configurar a sincronização no dataset no pwbi online.

Userlevel 3

@murilogamagodoy Acredito que isso seja um problema com o PowerBi não? Aqui tem um artigo que explica esse erro: https://community.powerbi.com/t5/Service/Gateway-problem/td-p/563613

Boa tarde, Felipe não é este o erro apresentado

Preciso do acesso do custom connector para inserir o teste de conexão.

Segue a resposta informada pelo suporte da microsft:

For custom connectors to work with the on-premises data gateway, they need to implement a “TestConnection” section in the custom connector’s code. This section isn't required when you use custom connectors with Power BI Desktop. For this reason, you can have a connector that works with Power BI Desktop, but not with the gateway. For more information on how to implement a TestConnection section, see this documentation.

Userlevel 2

Olá, Estou usando o Connector, mas estou notando bastante demora ao carregar as informações ou em tratar os dados no editor do Power BI, existe alguma forma de deixar a conexão mais rápida?

@Caio , essa lentidão acontece porque o Connector traz tudo da base. Se você tiver campos com anexos ele vai trazer o anexo em si ao invés do link, isso deixa a conexão ultra lenta.

Userlevel 1

Não estou conseguindo utilizar o método fácil porque o acesso ao Conector está negado. Já solicitei ao proprietário há alguns dias, mas até o momento ainda não consegui a liberação. Se alguém puder disponibilizar o conector, eu agradeço! Seria muito bom ter essa integração com o Power BI.

Userlevel 1

Olá, Estou usando o Connector, mas estou notando bastante demora ao carregar as informações ou em tratar os dados no editor do Power BI, existe alguma forma de deixar a conexão mais rápida?

Userlevel 1

Bom dia, a todos. Atualmente, eu uso o conector Pipefy (beta) provido e configurei um Gateway para conectar automaticamente de forma diária. Assim, basta manter o gateway ativo que o Powebi online conecta no horário agendado. https://docs.microsoft.com/pt-br/power-bi/connect-data/service-gateway-onprem para maiores detalhes sobre como instalar o gateway.

Boa tarde.

Gostaria de saber mais detalhes sobre como vc configurou o gateway para o pipefy.

Hoje já uso esse gateway para bases externas como access e excel e para um banco de dados no ORACLE, mas quando tento configurar o Pipefy por meio do API Pipefy Conector ele me apresenta o seguinte erro:

Não é possível conectar: Encontramos um erro ao tentar conectar a . Detalhes: "Não foi possível registrar essa fonte de dados para nenhuma instância de gateway nesse cluster. Veja mais detalhes abaixo sobre erros específicos para cada instância de gateway."

Userlevel 2

Olá, Pessoal! 

Querida deixar a minha contribuição. Mais uma maneira pra não ter que usar a API.
Para trabalhar com esses dados usei a integração do Zapier. 

Pipefy > Zapier > Google Sheets

Trazendo os dados que queria através de uma ação (mover card) ou (criar card), isso alimenta minha planilha em tempo real. 

Ponto positivo: Dados atualizados em tempo real, de acordo com a ação, é claro. 
Ponto negativo: Os dados passando por muitos lugares.

https://zapier.com/apps/pipefy/integrations

Oi Ana, 

Tira uma dúvida, por favor?!

Usar API esta sendo complicado para mim. Sua alternativa é simples e atende o que eu gostaria. Dessa maneira eu conseguiria extrair todas as informações de um pipe? Por exemplo, cada uma das etapas e tudo que esta contido nelas?

 

Userlevel 3

Bom dia a todos,

Nosso colaborador Pedro Kronberg aqui da Market4u.com.br conseguiu escrever um script para importar os cards. Basta fazer uma Consulta Nula no Power Query e depois colar o codigo abaixo no editor avançado. As duas primeiras linhas são onde deve informar sua chave da API e o pipe a puxar.
 

let
TOKENAUTH = "Bearer xxxxxxxx", // Inserir sua Chave da API
PipeAnalisado = "xxxxxxxxxx", // Usar os numeros que seguem depois da URL: https://app.pipefy.com/pipes/______

GeradorDeCards =
(TOKENAUTH as text, PRIMEIROCARD as text) =>
let
query = "{""query"" : ""{ cards(pipe_id: "&PipeAnalisado&" "& PRIMEIROCARD &") { pageInfo { startCursor endCursor hasNextPage hasPreviousPage } edges { node { id title creatorEmail created_at finished_at updated_at due_date comments { text created_at } assignees { id name } labels { id name } created_by { id name } parent_relations { cards { id }} current_phase { id name } phases_history { phase { id name sequentialId } firstTimeIn lastTimeIn lastTimeOut duration } pipe { id name } fields { name report_value updated_at } } } } }""}",
authURL = "https://app.pipefy.com/graphql",
getToken = Web.Contents(
authURL,
[
Headers=[
#"Method" = "POST",
#"Accept" = "application/json",
#"Authorization" =TOKENAUTH ,
#"Content-Type" = "application/json; charset=utf-8"
],
Content=Text.ToBinary(query)
]
),
pipefyResponse = Json.Document(getToken),
data = pipefyResponse[data],
cards = data[cards],
edges = cards[edges]
in
edges,

GeradorDePaginas =
(TOKENAUTH as text, PrimeiroCard as text) => let
query = "{""query"" : ""{ cards(pipe_id: "&PipeAnalisado&" "& PrimeiroCard &") { pageInfo { startCursor endCursor hasNextPage hasPreviousPage } edges { node { id title creatorEmail created_at finished_at updated_at due_date comments { text created_at } assignees { id name } labels { id name } created_by { id name } current_phase { id name } phases_history { phase { id name sequentialId } firstTimeIn lastTimeIn lastTimeOut duration } pipe { id name } fields { indexName report_value name updated_at } } } } }""}",
authURL = "https://app.pipefy.com/graphql",
getToken = Json.Document(Web.Contents(authURL, [Headers=[Method="POST", Accept="application/json", Authorization=TOKENAUTH, #"Content-Type"="application/json; charset=utf-8"], Content=Text.ToBinary(query)])),
data = getToken[data],
cards = data[cards],
#"Convertido para Tabela" = Record.ToTable(cards),
Value = #"Convertido para Tabela"{0}[Value],
#"Convertido para Tabela1" = Record.ToTable(Value),
Nextpage = #"Convertido para Tabela1"{2}[Value],
STARTFROM = #"Convertido para Tabela1"{1}[Value],
res = [maispagina = Nextpage, cursorstart = STARTFROM]
in
res,

Fonte = List.Generate(
() =>
[Consulta = GeradorDePaginas(TOKENAUTH, ""), PG = 1, newstart = "", TOKENAUTH = TOKENAUTH],
each [newstart] <> null,
each [PG = [PG]+1, newstart = ("after: \#(0022)"& [Consulta][cursorstart] &"\#(0022)"), Consulta = GeradorDePaginas(TOKENAUTH, newstart), TOKENAUTH = [TOKENAUTH] ],
each [[TOKENAUTH], [PG], [newstart]]
),
#"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"TOKENAUTH", "PG", "newstart"}, {"Column1.TOKENAUTH", "Column1.PG", "Column1.newstart"}),
#"Função Personalizada Invocada" = Table.AddColumn(#"Column1 Expandido", "GeradorDeCards", each GeradorDeCards([Column1.TOKENAUTH], [Column1.newstart])),
#"GeradorDeCards Expandido" = Table.ExpandListColumn(#"Função Personalizada Invocada", "GeradorDeCards"),
#"GeradorDeCards Expandido1" = Table.ExpandRecordColumn(#"GeradorDeCards Expandido", "GeradorDeCards", {"node"}, {"GeradorDeCards.node"}),
#"GeradorDeCards.node Expandido" = Table.ExpandRecordColumn(#"GeradorDeCards Expandido1", "GeradorDeCards.node", {"id", "title", "creatorEmail", "created_at", "finished_at", "updated_at", "due_date", "comments", "assignees", "labels", "created_by", "current_phase", "phases_history", "pipe", "fields"}, {"GeradorDeCards.node.id", "GeradorDeCards.node.title", "GeradorDeCards.node.creatorEmail", "GeradorDeCards.node.created_at", "GeradorDeCards.node.finished_at", "GeradorDeCards.node.updated_at", "GeradorDeCards.node.due_date", "GeradorDeCards.node.comments", "GeradorDeCards.node.assignees", "GeradorDeCards.node.labels", "GeradorDeCards.node.created_by", "GeradorDeCards.node.current_phase", "GeradorDeCards.node.phases_history", "GeradorDeCards.node.pipe", "GeradorDeCards.node.fields"}),
#"Linhas Filtradas" = Table.SelectRows(#"GeradorDeCards.node Expandido", each ([GeradorDeCards.node.id] <> null)),
#"Colunas Removidas" = Table.RemoveColumns(#"Linhas Filtradas",{"Column1.TOKENAUTH", "Column1.PG", "Column1.newstart"})
in
#"Colunas Removidas"

 

 

Userlevel 2

Olá Arthur,

Este erro ocorreu comigo também. Eu instalei o Gateway on premise data gateway versão 3000.66.8 (já tem uma mais recente) e refiz a configuração. Mas antes, é importante você ter a versão correta do conector também e apontar para o diretório correto onde está este arquivo no gateway (às vezes, o local do arquivo fica mascarado no windows com outro nome - tivemos isso com um colega da Vale que , depois de revisar este ponto, passou a funcionar). Se vc quiser, podemos fazer um call via zoom (email fnascimento@p4rconsulting.com ) para revisarmos os passos.

grande abraço,

Fernando

Eu consegui configurar o gateway corretamente, mas na hora de inserir as credenciais para atualização, não é evidenciada os campos de login, nem consigo selecionar nenhum método de autenticação.

Por um acaso, saberia me dizer oq pode ser, por favor?

 

 

Reply