Skip to main content

Olá, Comunidade Pipefy,

 

Temos uma ótima notícia: agora, você pode integrar o Pipefy com sua ferramenta de relatórios, como PowerBI ou DataStudio, por meio de API! Veja como:

 

Com Relatórios, você pode filtrar dados dos seus processos em tempo real, organizá-los em colunas e exportá-los em formato de uma planilha de Excel para analisar as informações que deseja.

 

Se sua equipe precisa exportar relatórios com frequência e em um determinado período de tempo, você pode automatizar esse processo!

 

Configure uma rotina de API Scheduler para automatizar a extração do relatório utilizando uma mutation. O relatório será exportado no período de tempo que você determinar no seu scheduler.

 

Para fazer a extração do relatório são necessárias duas chamadas, a primeira é uma mutation que obterá na resposta um ID para ser utilizado na extração, e a segunda, é uma query, que utilizará a resposta obtida na primeira para obter a URL de download do relatório.

 

A chamada inicial é como segue, nela devem ser informados o ID do Pipe onde o relatório está salvo e o ID do relatório já formatado com todas as colunas e filtros que deseja visualizar na planilha extraída. Ambos os IDs podem ser obtidos na URL da página.


 

mutation {

  exportPipeReport(input: { pipeId: 1, pipeReportId: 1}) {

    pipeReportExport {

      id

    }

  }

}

 

A resposta desta chamada conterá um ID numérico. Utilizando desse ID obtido na chamada anterior, você poderá rodar a seguinte query:

 

{

  pipeReportExport(id: 20) {

    fileURL

    state

    startedAt

    requestedBy {

      id

    }

  }

}


 

A resposta da chamada conterá a URL (fileURL) que você pode acessar para fazer o download do relatório, na sua plataforma de integração.

 

É importante ressaltar que a construção do relatório para exportação pode demorar um pouco dependendo do volume de informações. Fique atento e, se necessário, deixe um período de tempo para o download. No momento que o relatório estiver formatado para a exportação a informação “state” deve retornar como “done”.

 

Tudo feito, basta fazer a carga em sua ferramenta de BI ou enviar para algum email como anexo!


Atualização!

Rate Limits

Essa feature possui Rate Limits, uma técnica comum para garantir segurança, confiabilidade e uma experiência consistente ao desenvolvedor, limitando o número de solicitações em um intervalo de tempo.

Para exportação de relatórios via API, o rate limit é de 25 solicitações em 24 horas, para cada pipe.
Caso atinga esse limite, deve-se aguardar 24 horas a partir do momento em que a última solicitação foi feita. Qualquer solicitação nesse intervalo de tempo não será processada e conterá uma mensagem de rate limit atingido exibida em "erros" no payload de resposta.

Boa tarde!
você teria um exemplo com o script completo e o passo a passo para integrar no Powerbi ou DataStudio?


Como faço para obter o histórico das fases ? Entendo que estes dados não estão via relatório, certo? e, portanto, não consigo extrair via estas APIs...


Boa tarde!
você teria um exemplo com o script completo e o passo a passo para integrar no Powerbi ou DataStudio?

Boa tarde! No caso essas chamadas tem a função de obter o relatório automaticamente por API. Uma vez o relatório extraído você pode alimentar, com os dados do relatório, uma tabela utilizada para a consulta de dados pela sua ferramenta de BI. Você também pode salvar na pasta com o mesmo nome da tabela utilizada para a consulta e substituindo a anterior, assim a ferramenta de BI já retornará os novos valores para as colunas.


Boa tarde!
você teria um exemplo com o script completo e o passo a passo para integrar no Powerbi ou DataStudio?

Boa tarde! No caso essas chamadas tem a função de obter o relatório automaticamente por API. Uma vez o relatório extraído você pode alimentar, com os dados do relatório, uma tabela utilizada para a consulta de dados pela sua ferramenta de BI. Você também pode salvar na pasta com o mesmo nome da tabela utilizada para a consulta e substituindo a anterior, assim a ferramenta de BI já retornará os novos valores para as colunas.

Entendi, Guilherme. Fiz o teste usando o GraphiQL. Aqui, então, é apenas para automatizar o que já fazemos manualmente abrindo Relatórios no Pipe e exportando-o.

O nome do relatório vem sempre com a data. Tem como já vir sempre com o mesmo nome? Ou teria de fazê-lo manualmente? Ter sempre o mesmo nome facilita a integração.


Boa tarde!
você teria um exemplo com o script completo e o passo a passo para integrar no Powerbi ou DataStudio?

Boa tarde! No caso essas chamadas tem a função de obter o relatório automaticamente por API. Uma vez o relatório extraído você pode alimentar, com os dados do relatório, uma tabela utilizada para a consulta de dados pela sua ferramenta de BI. Você também pode salvar na pasta com o mesmo nome da tabela utilizada para a consulta e substituindo a anterior, assim a ferramenta de BI já retornará os novos valores para as colunas.

Entendi, Guilherme. Fiz o teste usando o GraphiQL. Aqui, então, é apenas para automatizar o que já fazemos manualmente abrindo Relatórios no Pipe e exportando-o.

O nome do relatório vem sempre com a data. Tem como já vir sempre com o mesmo nome? Ou teria de fazê-lo manualmente? Ter sempre o mesmo nome facilita a integração.

Encontrei este artigo sobre como fazer direto no pwbi https://www.linkedin.com/pulse/connect-powerbi-graphql-endpoint-amir-khan/


Boa tarde!
você teria um exemplo com o script completo e o passo a passo para integrar no Powerbi ou DataStudio?

Boa tarde! No caso essas chamadas tem a função de obter o relatório automaticamente por API. Uma vez o relatório extraído você pode alimentar, com os dados do relatório, uma tabela utilizada para a consulta de dados pela sua ferramenta de BI. Você também pode salvar na pasta com o mesmo nome da tabela utilizada para a consulta e substituindo a anterior, assim a ferramenta de BI já retornará os novos valores para as colunas.

Entendi, Guilherme. Fiz o teste usando o GraphiQL. Aqui, então, é apenas para automatizar o que já fazemos manualmente abrindo Relatórios no Pipe e exportando-o.

O nome do relatório vem sempre com a data. Tem como já vir sempre com o mesmo nome? Ou teria de fazê-lo manualmente? Ter sempre o mesmo nome facilita a integração.

Exato! A ideia é automatizar a extração de relatórios do processo. Por padrão ele mantém a data ao lado do nome do relatório, mas dependendo da ferramenta que você estiver usando para automatizar a extração você poderá alterar o nome do arquivo ao salvar na pasta destino.


Eu imagino que a consulta abaixo (os dados em azul foram substituídos, obviamente) deveria funcionar para trazer os dados do relatório diretamente para o Power BI só que estou obtendo a seguinte resposta: DataSource.Error: Web.Contents failed to get contents from 'https://api.pipefy.com/graphql' (500): Internal Server Error

let

    Url = "https://api.pipefy.com/graphql",

    Cabeçalho =

        #"Method" = "POST",

        #"Accept" = "application/json",

        #"Content-Type" = "application/json",

        #"Authorization" = "Bearer TOKEN"

    ],

    Corpo = Text.ToBinary(

        "{""mutation"": ""{ exportPipeReport (input: { pipeId: 123, pipeReportId: 456 }) { pipeReportExport { id } } }""}"

    ),

    Requisição = Web.Contents(

        Url,

        >

            Headers = Cabeçalho, 

            Content = Corpo

        ]

    ),

    Resposta = Json.Document(Requisição)

in

    Resposta

 

Alguém consegue me dizer o erro, por gentileza?


Eu imagino que a consulta abaixo (os dados em azul foram substituídos, obviamente) deveria funcionar para trazer os dados do relatório diretamente para o Power BI só que estou obtendo a seguinte resposta: DataSource.Error: Web.Contents failed to get contents from 'https://api.pipefy.com/graphql' (500): Internal Server Error

let     Url = "https://api.pipefy.com/graphql",     Cabeçalho =         #"Method" = "POST",         #"Accept" = "application/json",         #"Content-Type" = "application/json",         #"Authorization" = "Bearer TOKEN"     ],     Corpo = Text.ToBinary(         "{""mutation"": ""{ exportPipeReport (input: { pipeId: 123, pipeReportId: 456 }) { pipeReportExport { id } } }""}"     ),     Requisição = Web.Contents(         Url,         o             Headers = Cabeçalho,              Content = Corpo         ]     ),     Resposta = Json.Document(Requisição) in     Resposta

 

Alguém consegue me dizer o erro, por gentileza?

 

Você precisa pegar o ID do relatório na primeira chamada. Depois fazer a segunda chamada passando o ID na query para obter a URL para baixar os dados. 

Fica atendo com o status também, porque se não estiver como DONE vai dar error também.

 

 


Eu imagino que a consulta abaixo (os dados em azul foram substituídos, obviamente) deveria funcionar para trazer os dados do relatório diretamente para o Power BI só que estou obtendo a seguinte resposta: DataSource.Error: Web.Contents failed to get contents from 'https://api.pipefy.com/graphql' (500): Internal Server Error

let     Url = "https://api.pipefy.com/graphql",     Cabeçalho =         #"Method" = "POST",         #"Accept" = "application/json",         #"Content-Type" = "application/json",         #"Authorization" = "Bearer TOKEN"     ],     Corpo = Text.ToBinary(         "{""mutation"": ""{ exportPipeReport (input: { pipeId: 123, pipeReportId: 456 }) { pipeReportExport { id } } }""}"     ),     Requisição = Web.Contents(         Url,         o             Headers = Cabeçalho,              Content = Corpo         ]     ),     Resposta = Json.Document(Requisição) in     Resposta

 

Alguém consegue me dizer o erro, por gentileza?

 

A resposta da primeiro chamada você obtem o ID da relatório gerado. Depois faz a segunda chamada passando esse ID para obter o status e a URL. Quando o status for done pode usar a URL para baixar os dados. 


Pessoal,

Estou com um problema nessa integração e não consigo identificar o erro, podem me ajudar?
Estou utilizando o Workato para extrair os dados de um deterinado relatório, mas a  primeira ação retorna erro.
 


 

 

Segui as orientações de autenticação adicionando o “Bearer ” antes do Token e o "Content-Type": "application/json". 

Alguém tem uma ideia?
Obrigado 😁


Pessoal,

Estou com um problema nessa integração e não consigo identificar o erro, podem me ajudar?
Estou utilizando o Workato para extrair os dados de um deterinado relatório, mas a  primeira ação retorna erro.
 


 

 

Segui as orientações de autenticação adicionando o “Bearer ” antes do Token e o "Content-Type": "application/json". 

Alguém tem uma ideia?
Obrigado 😁



@loise-franco @Lais Laudari  tem alguma ideia do que possa ser?
Essa é a receita disponível na comunidade do Workato.


Olá @ivan.novofoco! Tudo bem? Estamos olhando essa situação aqui no suporte e assim que tivermos um retorno, será avisado aqui nesse post ;)

Qualquer dúvida estamos a disposição.


Olá @ivan.novofoco, como vai? 
Conforme conversamos com você anteriormente via chat, esse comportamento se dá  por causa de que algum ponto de configuração da receita deve ser revisto, se tratando de um caso de modelagem. 

Você conseguiu conversar com o Gustavo a respeito? 
Acreditamos que a melhor saída, nesse caso, seria conversar com o gerente da tua conta, Ivan, pedindo pra ele avaliar uma ajuda do nosso time especializado em integrações pra ti. Assim, com o time especializado dando uma atenção para esse caso, o processo pode ser construído da melhor forma. 

Tenha uma ótima tarde!