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 Felipe Scholz 5 June 2020, 12:56

View original

38 replies

Userlevel 2
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 +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

Userlevel 6
Badge +6

@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 +6

@Karen Vilela Segue os arquivos do conector :) 

Userlevel 7
Badge +6

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 4
Badge +3

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 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 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 !!!!!

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 7
Badge +6

@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 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 3
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 3
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

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 3
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 [email protected] ) para revisarmos os passos.

grande abraço,

Fernando

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 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?

@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 3
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 3
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.

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."

 

Yves PeixotoJorge Sampaio 

Para poder acessar os dados, será necessário primeiro inserir o Organization ID 

depois ele irá pedir uma chave de acesso ou chave de conta que nada mais é do que um token que deve ser gerando no Pipefy, que vocês pode fazer através do link disponibilizado na documentação:

https://developers.pipefy.com/reference/authentication

 

Userlevel 2

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"

 

 

Reply