Read the MCP reference or CLI reference for the surface you are using. Load only the relevant reference.
Pipe reports and organization reports: discovery, CRUD, and async exports.
Cross-cutting patterns
- Build
ReportCardsFilterusingget_pipe_report_columnsandget_pipe_report_filterable_fields; useintrospect_typefor uncommon inputs. get_pipe_reportsomitscardCountin the query (Pipefy can error when resolving it).
Pipe report tools
| Operation | Read-only | Purpose |
|---|---|---|
get_pipe_reports |
Yes | List all reports for a pipe. |
get_pipe_reports |
Yes | Load one report by report_id when needed. |
get_pipe_report_columns |
Yes | Discover available columns for a report filter. |
get_pipe_report_filterable_fields |
Yes | Discover filterable fields for a report. |
create_pipe_report |
No | Create a new pipe report. |
update_pipe_report |
No | Update report name or filters. |
delete_pipe_report |
No | Destructive; review and approve first. Use the selected surface's confirmation flow if one exists. |
export_pipe_report |
No | Trigger async export. |
Organization report tools
| Operation | Read-only | Purpose |
|---|---|---|
get_organization_reports |
Yes | List all org-level reports. |
get_organization_report |
Yes | Single org report data. |
create_organization_report |
No | Create an org-wide report. |
update_organization_report |
No | Update report config. |
delete_organization_report |
No | Destructive; review and approve first. Use the selected surface's confirmation flow if one exists. |
export_organization_report |
No | Trigger async export. |
Export status & download
| Operation | Purpose |
|---|---|
get_pipe_report_export |
Poll pipe report export status (after export_pipe_report). |
get_organization_report_export |
Poll org report export status (after export_organization_report). |
export_pipe_audit_logs |
Export pipe audit logs (separate from card report exports). |
Steps — export a pipe report
-
List available reports:
Operation:
get_pipe_reports pipe_uuid=<PIPE_UUID>(get_pipesupplies the UUID). -
Trigger the export:
Operation:
export_pipe_report pipe_id=67890 pipe_report_id=123 -
Poll until done:
Operation:
get_pipe_report_export export_id=<EXPORT_ID>Repeat every 5–10 seconds until
stateisdone(orfailed). -
Download: use the signed
fileURLfrom thedoneexport response over HTTPS.The link expires 1 hour after the read that returned it, and anyone holding it can download the file until then. When you hand it to the user, say that it expires in 1 hour; for a fresh link, read the export again.
Steps — create a filtered pipe report
-
Discover filterable fields:
Operation:
get_pipe_report_filterable_fields pipe_uuid=<PIPE_UUID>(get_pipesupplies the UUID). -
Create the report with a
ReportCardsFiltershape (not a top-levelcurrent_phasearray):Arguments:
create_pipe_report pipe_id=67890 name="Phase subset" filter='{"operator":"and","queries":[{"field":"current_phase","operator":"eq","type":"select","value":"<phase_id>"}]}'Use the exact
fieldstring from step 1. Invalid shapes are rejected before GraphQL with a message pointing atget_pipe_report_filterable_fields.
Success criteria
get_pipe_report_export(orget_organization_report_export) reaches a terminaldoneorfailedstate.- Downloaded export contains the expected card/report data.
Failure modes
- Export stuck in
processing: large pipes with many cards can take minutes. If the export is stillprocessingafter a minute of polling every 5 to 10 seconds, poll once every 60 seconds instead. Retry the export trigger if stillprocessingafter several minutes. get_pipe_reportsreturnsnullforcardCount: known Pipefy API behavior; the tool omits that field automatically.- Filter rejected before GraphQL: do not pass
{"current_phase":["id"]}; useoperator+queries(see step 2 above). - Filter not working after create: use
get_pipe_report_filterable_fieldsto confirm the exactfieldstring andvalueformat.
See also
pipefy-observability— export automation job history (different from pipe reports).pipefy-introspection— discoverReportCardsFilterinput shape for complex filters.