pipefy-reports — Claude Code skill: what it does, how to install
Manages Pipefy pipe and organization reports: handles discovery, CRUD actions, and async exports with status polling and download links.
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a claude-codeWhat pipefy-reports does
The skill manages report configurations for individual pipes and entire organizations in Pipefy. It discovers available columns using get_pipe_report_filterable_fields and structures filters under ReportCardsFilter with operator and queries parameters. Passing raw arrays directly into current_phase fails validation before reaching GraphQL.
File generation runs as an asynchronous background workflow. Triggering export_pipe_report or export_organization_report starts the task, while get_pipe_report_export polls status every 5 to 10 seconds. For large pipes that remain processing past one minute, polling slows to once every 60 seconds. The resulting signed fileURL remains active for 1 hour.
Report removal through delete_pipe_report is destructive, so the skill mandates explicit confirmation before executing the call.
What it helps with
- configure filtered card reports using ReportCardsFilter
- trigger asynchronous background exports for pipes and orgs
- poll export jobs and retrieve signed expiring download URLs
- delete obsolete report configurations with mandatory approval
Example prompts for the agent
- Export pipe report 123 from pipe 67890 and give me the download URL
- Create a pipe report named Phase subset filtered by phase_id in pipe 67890
- Check the export status for export_id 4567
How to install pipefy-reports
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a claude-code2Manually: put the files in place
~/.claude/skills/pipefy-reports/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/pipefy-reports/
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a codex2Manually: put the files in place
.agents/skills/pipefy-reports/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a cursor2Manually: put the files in place
.cursor/skills/pipefy-reports/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install pipefy/ai-toolkit pipefy-reports2Manually: put the files in place
.github/skills/pipefy-reports/SKILL.md1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a gemini-cli2Platform CLI
gemini skills install https://github.com/pipefy/ai-toolkit --path plugins/pipefy/skills/pipefy-reportsManually: put the files in place
.devin/skills/pipefy-reports/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-reports -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about pipefy-reports
How to install pipefy-reports in Claude Code?
Run npx skills add pipefy/ai-toolkit --skill pipefy-reports -a claude-code. The tool installs into your Claude Code skills directory.
What does pipefy-reports do?
It manages Pipefy pipe and organization reports, discovers filterable fields, handles report configurations, and tracks background export jobs until files are ready.
How long is the export download link valid?
The signed HTTPS download link expires 1 hour after the read operation. If it expires, read the export record again to obtain a fresh URL.
Source text
SKILL.md · Apache-2.0
---
name: pipefy-reports
description: >
Use this skill when the user wants to create, read, update, delete, or
export pipe reports or organization reports. Covers the async export
workflow (trigger, poll, download).
tags: [pipefy, reports, exports, pipe-reports, organization-reports]
---
# Reports
Read the [MCP reference](references/mcp.md) or [CLI reference](references/cli.md) 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 `ReportCardsFilter` using `get_pipe_report_columns` and `get_pipe_report_filterable_fields`; use `introspect_type` for uncommon inputs.
- `get_pipe_reports` omits `cardCount` in 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
1. **List available reports:**
Operation: `get_pipe_reports pipe_uuid=<PIPE_UUID>` (`get_pipe` supplies the UUID).
2. **Trigger the export:**
Operation: `export_pipe_report pipe_id=67890 pipe_report_id=123`
3. **Poll until done:**
Operation: `get_pipe_report_export export_id=<EXPORT_ID>`
Repeat every 5–10 seconds until `state` is `done` (or `failed`).
4. **Download:** use the signed `fileURL` from the `done` export 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
1. **Discover filterable fields:**
Operation: `get_pipe_report_filterable_fields pipe_uuid=<PIPE_UUID>` (`get_pipe` supplies the UUID).
2. **Create the report with a `ReportCardsFilter` shape** (not a top-level `current_phase` array):
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 `field` string from step 1. Invalid shapes are rejected before GraphQL with a message pointing at `get_pipe_report_filterable_fields`.
---
## Success criteria
- `get_pipe_report_export` (or `get_organization_report_export`) reaches a terminal `done` or `failed` state.
- 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 still `processing` after a minute of polling every 5 to 10 seconds, poll once every 60 seconds instead. Retry the export trigger if still `processing` after several minutes.
- **`get_pipe_reports` returns `null` for `cardCount`:** known Pipefy API behavior; the tool omits that field automatically.
- **Filter rejected before GraphQL:** do not pass `{"current_phase":["id"]}`; use `operator` + `queries` (see step 2 above).
- **Filter not working after create:** use `get_pipe_report_filterable_fields` to confirm the exact `field` string and `value` format.
## See also
- `pipefy-observability` — export automation job history (different from pipe reports).
- `pipefy-introspection` — discover `ReportCardsFilter` input shape for complex filters.
© pipefy · Apache-2.0 · pipefy/ai-toolkit