👤 Para usuários intermediários e avançados que configuram integrações com o conector Pipefy Piece.
🔐 Requer uma Service Account com acesso ao pipe ou à database de origem.
🎯 Para quem precisa exportar cards ou registros de databases para um arquivo CSV ou JSON.
Quando outro sistema precisa dos dados dos seus processos, selecionar os registros e as colunas certos é tão importante quanto gerar o arquivo. Com o conector Pipefy, você pode incluir essa exportação na sua integração.
Ao terminar este artigo, você vai saber configurar Batch export, selecionar um relatório salvo ou um filtro avançado, escolher as colunas de saída e obter o arquivo após a conclusão do processamento.
📖 O que você vai entender aqui:
O que a ação Batch export faz
A ação Batch export exporta cards de um pipe ou registros de uma database para um arquivo CSV ou JSON armazenado pelo Pipefy. Você recebe uma URL temporária de download (resultFile) quando o processamento termina.
Não há arquivo de entrada. Diferentemente de Batch upsert, você define apenas o que exportar (relatório ou filtro), as colunas e o formato.
Comportamentos importantes:
- A submissão da etapa aceita a solicitação; o arquivo é gerado de forma assíncrona.
- A exportação termina apenas como completed ou failed; não existe completed_with_errors.
- Reprocess batch operation não se aplica a exportações.
- Exportações com falha não retornam um motivo detalhado no callback (planeje cuidadosamente a validação e a conferência das colunas).
Antes de adicionar a etapa do Pipefy
- Conexão do conector Pipefy (Service Account) com acesso ao pipe ou à database de origem
- Para exportações de relatórios salvos: um pipe com um relatório que já mostre as linhas esperadas na interface do Pipefy
- Para exportações com filtro avançado: JSON do filtro preparado
- Estratégia para aguardar a conclusão
Passo 1: adicione a ação Batch export
- Na integração, adicione uma etapa → conector Pipefy → Batch export.
- Selecione a conexão do conector Pipefy e a organização.

Passo 2: escolha o pipe ou a database e o formato
| Campo | Orientação |
|---|---|
| Target | Pipe (cards) → exporta cards. Database (records) → exporta registros da tabela. |
| Pipe / Database | Repositório de origem |
| File format | CSV ou JSON (XLSX não é suportado) |
A etapa Batch export envia automaticamente ao Pipefy o tipo de entidade CARDS ou TABLE_RECORDS a partir de Target.



Passo 3: escolha a origem da exportação (relatório ou filtro)
Pipes: duas opções
Quando Target é Pipe (cards), o campo Export source é exibido:
| Export source | Quando usar |
|---|---|
| Advanced filter | Filtro personalizado na etapa; seleção opcional de colunas |
| Saved report | Reutiliza um relatório já salvo no pipe (as mesmas linhas exibidas ao abrir esse relatório no Pipefy) |

Databases: somente filtro
Databases não têm relatórios salvos. A interface mostra apenas Advanced filter em Selection. Se você tiver escolhido uma configuração baseada em relatório, altere para Advanced filter.
Passo 4: JSON do filtro avançado para pipes e databases
Quando Export source for Advanced filter, configure Selection → Advanced filter.
O valor é um único objeto JSON, com a mesma estrutura que o Pipefy usa nos filtros de relatórios salvos. A etapa Batch export inclui um exemplo padrão que você pode editar:
{
"operator": "and",
"queries": [
{
"field": "title",
"operator": "contains",
"value": "text to match"
}
]
}
Objeto do grupo
| Chave | Obrigatório | Descrição |
|---|---|---|
| operator | Sim | and ou or |
| queries | Não | Lista de condições neste grupo |
| groups | Não | Grupos aninhados (mesma estrutura) |
Cada condição em queries
| Chave | Obrigatório | Descrição |
|---|---|---|
| field | Sim | Nome do campo usado no filtro (por exemplo, title, created_at) |
| operator | Sim | Por exemplo, eq, not_eq, contains, not_contains, gt, gte, lt, lte, exists, not_exists, period, unknown |
| value | Frequentemente | Valor comparado, como string |
| type | Não | Por exemplo, string, number, date, boolean, select, group_select, email |
Exemplo com data:
{
"operator": "and",
"queries": [
{ "field": "title", "operator": "eq", "value": "Match me", "type": "string" },
{ "field": "created_at", "operator": "gte", "value": "2026-01-01", "type": "date" }
]
}
Filtro vazio: um grupo sem queries (mas com um operator válido) exporta todas as linhas do repositório, conforme as permissões
Momento da validação: o GraphQL aceita muitos filtros na submissão; uma estrutura aninhada inválida pode falhar apenas durante a execução, com status failed e poucos detalhes na API.
Filtros de data: filtros de período e de data de vencimento usam o fuso horário da Service Account (UTC, se não estiver definido). O mesmo intervalo de datas pode retornar linhas diferentes se o fuso horário da conta for diferente do seu.

Filtros dinâmicos: mapeie o filtro de uma etapa anterior passando JSON para Advanced filter (objeto ou string). Um JSON inválido faz a etapa falhar antes da submissão, com uma mensagem clara de erro de interpretação.
- O link na interface leva à documentação para desenvolvedores do Pipefy, com uma referência mais detalhada sobre filtros.
Passo 5: campos retornados (Returning fields)
Ao usar Advanced filter
Abra Returning fields e selecione várias colunas, ou deixe vazio para exportar todas as colunas padrão do repositório (atributos nativos, campos personalizados e colunas de fases nos pipes).
As colunas nativas disponíveis na lista suspensa incluem:
| Identificador | Nome na interface |
|---|---|
| card_id | Card or record id |
| title | Title |
| current_phase | Current phase |
| labels | Labels |
| due_date | Due date |
| created_by | Created by |
| assignees | Assignees |
| finished_at | Finished at |
| created_at | Created at |
| updated_at | Updated at |
| last_comment | Last comment |
| last_comment_at | Last comment at |
| expired_at | Expired at |
| overdue | Overdue |
Campos personalizados aparecem como field_<internal_id> (ID interno numérico), e não como o slug do campo exibido no mapeamento de Batch upsert.
Colunas de fases (somente para pipes) seguem padrões como start_at_phase_<seq>, end_at_phase_<seq> e duration_in_phase_<seq>. Elas não estão disponíveis para exportações de databases.
Cabeçalhos do arquivo: o Pipefy grava os nomes de exibição dos campos personalizados no arquivo (field_105 → Comment). IDs nativos, como card_id, permanecem como estão. Nomes duplicados são diferenciados com (field_xxx) no cabeçalho.
ID de coluna inválido: números incorretos em field_ não são rejeitados na submissão. O lote pode permanecer em pending e depois passar para failed sem um motivo acessível. Confira os IDs internos ao selecionar colunas manualmente.
Ao usar Saved report
- Defina Export source como Saved report.
- Escolha Saved report em Selection.
- Não configure Returning fields: o relatório define as colunas. A etapa Batch export bloqueia a execução se você selecionar colunas enquanto um relatório estiver selecionado (o Pipefy ignoraria as colunas extras sem aviso).
Para controlar as colunas explicitamente, altere Export source para Advanced filter.

Passo 6: aguarde a conclusão e baixe o arquivo
Wait for batch completion
| Desativado (padrão) | Ativado |
|---|---|
| Retorna batchId, status (geralmente pending) e submittedAt | Pausa até que a exportação termine |
| Acompanhe com Get batch operations ou Callback URL | A etapa é retomada com resultFile, totalCount etc. |
Saídas após a conclusão
| Campo | Significado na exportação |
|---|---|
| resultFile | URL HTTPS temporária para baixar o CSV ou JSON |
| totalCount | Linhas gravadas no arquivo |
| status | completed ou failed |
| itemCounts | Sempre zero para exportação (estrutura compartilhada da API) |
Etapas seguintes comuns:
- Requisição HTTP: execute GET em resultFile para obter o arquivo em uma etapa posterior da integração.
- Armazene a URL ou o arquivo no seu sistema antes que a URL assinada expire.

Callback URL (espera desativada)
O campo opcional Callback URL recebe um POST quando a exportação atinge um estado terminal. O limite é de 500 caracteres, o mesmo de upsert. Não pode ser definido junto com Wait for batch completion ativado.
Idempotency key
Opcional. Atenção às exportações agendadas: reutilizar a mesma chave retorna o lote original e o arquivo com os dados daquele momento; não executa uma nova exportação. Para exportações diárias, use uma nova chave a cada execução (por exemplo, inclua a data) ou deixe o campo vazio.
Get batch operations: consulte o status da exportação
A mesma ação do guia de upsert:
- Pipefy → Get batch operations
- Os mesmos valores de Target e Pipe / Database
- Filtro opcional por Status: os status terminais da exportação são completed e failed
- Leia resultFile do lote correspondente mais recente quando operationType for export
Use batchId de Batch export para identificar seu processamento entre os lotes recentes.

Limites e regras específicas da exportação
| Tópico | Regra |
|---|---|
| Formatos | Somente CSV e JSON |
| Reprocessamento | Não disponível para exportação |
| Sucesso parcial | Não existe completed_with_errors |
| Relatório + colunas | Escolha um: o relatório define as colunas |
| Database + relatório | Não suportado; use filtro avançado |
| Seleção | Exatamente um: relatório ou filtro avançado (exigido pelo Pipefy; o conector Pipefy envia um ou outro) |
| Diagnóstico de falhas de exportação | O callback pode não incluir detalhes do erro; valide o filtro e as colunas antecipadamente |
Compare a quantidade de linhas com o mesmo relatório salvo na interface do Pipefy ao testar exportações baseadas em relatórios.
Problemas comuns
| Sintoma | O que verificar |
|---|---|
| Permissão negada | Participação da Service Account no pipe ou na database; seleção de um repositório incorreto |
| Database + relatório salvo | Use apenas Advanced filter |
| Erro na etapa sobre colunas + relatório | Limpe Returning fields ou altere para filtro avançado |
| A exportação falhou após pending | Erro de digitação na coluna field_<id>; filtro aninhado malformado sem operator |
| Dados desatualizados na execução agendada | Idempotency key reutilizada; use chaves exclusivas por execução |
| Arquivo vazio ou linhas incorretas | JSON do filtro; seleção do relatório; fuso horário da Service Account nos filtros de data |
| Não é possível reprocessar | Comportamento esperado: a exportação não tem reprocessamento; submeta uma nova exportação |
Referência rápida: campos do conector e API do Pipefy
| Campo do conector Pipefy | Conceito na API do Pipefy |
|---|---|
| Target + Pipe/Database | repoId + entity (CARDS / TABLE_RECORDS) |
| File format | format (csv / json) |
| Export source → Saved report | reportId |
| Selection → Advanced filter | advancedFilter |
| Returning fields | columns (identificadores como card_id, field_105) |
| Wait for batch completion | callbackUrl para o ponto de espera da execução (gerenciado pelo conector Pipefy) |
| Callback URL (espera desativada) | Sua callbackUrl |
| Idempotency key | idempotencyKey |
Você não precisa chamar o GraphQL manualmente ao usar estas ações do conector Pipefy. A tabela ajuda na leitura da documentação da API do Pipefy ou na investigação de erros com seu administrador.
Antes de avançar, confirme que você entende
☐ Sei quando usar um relatório salvo ou um filtro avançado.
☐ Sei como a origem da exportação determina as colunas do arquivo.
☐ Sei aguardar a conclusão e obter resultFile.


