Skip to main content
Solved

Filtro na query

  • March 16, 2026
  • 4 replies
  • 41 views

eu tenho uma consulta e gostaria de uma ajuda para saber se seria possível apenas filtrar cards que contenham “abertos ” que são quando o campo “ finished_at ” estiver “null ”, e uma outra dúvida e se seria possível se no trecho: “ fields { name value } ” seria possível passar um filtro para trazer somente um valor específico:
essa é minha consulta: 

 

 query {
  allCards
  ( pipeId: xxxxx) { 
    edges { 
      node { 
        id 
        title 
        done 
        finished_at 
        createdAt 
        updated_at
        fields { name value } 
        current_phase { name }
        phases_history { phase { name } duration } } } 
    pageInfo { 
      startCursor 
      endCursor 
      hasNextPage 
      hasPreviousPage } } }

Best answer by Eduardo Cerejo

pipeId vs pipe_id

O nosso schema GraphQL é gerado em Ruby, que usa snake_case por convenção. Por padrão, a biblioteca converte os nomes automaticamente para camelCase ao expor no schema, por isso pipe_id vira pipeId. No campo cards, essa conversão automática foi desativada explicitamente, por isso ele aceita pipe_id mesmo. É uma inconsistência entre os dois campos que vale corrigirmos no futuro. Obrigado por apontar isso 😉                          

allCards vs cards

São queries diferentes com propósitos distintos:

  • allCards usa um tipo de filtro mais avançado (AdvancedSearch), mas não suporta o argumento include_done.
  • cards usa um filtro mais simples (search) que inclui a opção include_done: false para retornar apenas cards em fases não finalizadas.

Por isso foi necessário usar cards para conseguir esse filtro específico. Fico feliz que tenha funcionado!  

4 replies

Eduardo Cerejo
Pipefy Staff

Olá ​@rafael-gomes-bip360, seguem as respostas para suas duas dúvidas:                                                                                                         
1. Filtrar apenas cards abertos (finished_at = null) 

É possível usar o argumento search com include_done: false, que retorna apenas cards que ainda não estão em uma fase finalizada (done). Veja o exemplo:

  query {
    cards(pipeId: xxxxx, search: { include_done: false }) {
      edges {
        node {
          id
          title
          done
          finished_at
          createdAt
          updated_at
          fields { name value }
          current_phase { name }
          phases_history { phase { name } duration }
        }
      }
      pageInfo {
        startCursor
        endCursor
        hasNextPage
        hasPreviousPage
      }
    }
  }

 

2. Filtrar o retorno de fields por um campo específico

Sua pergunta seria sobre filtrar pelo nome do campo (não o valor, certo?). Se sim, não é possível passar um filtro diretamente dentro de fields { name value } na query. O campo retorna todos os campos do card sem suporte a argumentos de filtro. A alternativa é tratar esse filtro no lado da aplicação após receber a resposta.


boa tarde ​@Eduardo Cerejo.
Deu certo, obrigado.
Tive que fazer uma alteração de “pipeId” para “pipe_id”, e fiquei na dúvida do motivo da diferença, assim como allCards para cards para conseguir utilizar o filtro.

No ponto 2 que respondeu, seria isso mesmo, filtrar pelo nome do campo.


Eduardo Cerejo
Pipefy Staff
  • Pipefy Staff
  • Answer
  • March 19, 2026

pipeId vs pipe_id

O nosso schema GraphQL é gerado em Ruby, que usa snake_case por convenção. Por padrão, a biblioteca converte os nomes automaticamente para camelCase ao expor no schema, por isso pipe_id vira pipeId. No campo cards, essa conversão automática foi desativada explicitamente, por isso ele aceita pipe_id mesmo. É uma inconsistência entre os dois campos que vale corrigirmos no futuro. Obrigado por apontar isso 😉                          

allCards vs cards

São queries diferentes com propósitos distintos:

  • allCards usa um tipo de filtro mais avançado (AdvancedSearch), mas não suporta o argumento include_done.
  • cards usa um filtro mais simples (search) que inclui a opção include_done: false para retornar apenas cards em fases não finalizadas.

Por isso foi necessário usar cards para conseguir esse filtro específico. Fico feliz que tenha funcionado!  


obrigado