MCPInstall

pipefy-attachments

Use this skill when the user wants to upload a file to a Pipefy card or table-record attachment field. Covers local and downloaded file sources, plus a presigned-URL handshake for uploading files directly.

Installs
680
Last 24h
+10
Trending rank
#8534
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-attachments
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads pipefy-attachments automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Attachments

MCP clients: read references/mcp.md. CLI users: read references/cli.md. Examples below describe shared operation arguments.

Upload one file at a time to a card or table-record attachment field. The upload goes through Pipefy's presigned URL flow (request URL, S3 PUT, then field update).


When to use

  • The user says "attach this file to card X" or "upload to the documents field on record Y".
  • Pick the source by where the bytes actually are. Use the source rules for your chosen surface.

Do not use this skill for:

  • Reading or listing existing attachments. There is no list/download tool in this skill scope. Cards and table records expose their attachments through the regular card/record fetch tools.
  • Bulk uploads. One file per call; iterate at the agent layer.

Prerequisites

  • A Pipefy organization_id. Find it via get_organization or get_pipe.
  • A target card_id or table_record_id.
  • The attachment field's slug (the human-readable id like document_upload, not the field's uuid). Find it on the card or table record fetch tools.
  • Exactly one file source accessible to the chosen upload surface.

Tools needed

OperationRead-only
upload_attachment_to_cardNo
upload_attachment_to_table_recordNo
create_attachment_presigned_urlNo

Steps

Upload a local file to a card

file_name is inferred from the source basename when omitted, so callers usually only pass the four IDs and the source.

Operation arguments:

upload_attachment_to_card(organization_id=42, card_id=1234, field_id=document_upload, file_path=~/report.pdf)

Upload from a URL

upload_attachment_to_card(organization_id=42, card_id=1234, field_id=document_upload, file_url=https://example.com/report.pdf)

When the URL has no filename in its path (e.g. .../download?id=1), pass file_name explicitly so Pipefy stores it under a real name.

Upload a local file to a table record

Operation arguments:

upload_attachment_to_table_record(organization_id=42, table_record_id=tr-555, field_id=document_upload, file_path=/tmp/export.csv)

Overriding the file name

To store the attachment under a different name than the source basename, pass file_name explicitly. It wins over the inferred basename.

upload_attachment_to_card(..., file_url=https://example.com/abc123.pdf, file_name=Invoice-2026.pdf)

Use the presigned handshake

When the one-shot upload cannot reach the bytes or exceeds its 100 MiB cap, use create_attachment_presigned_url and upload from an environment that can read the file:

  1. Call create_attachment_presigned_url with organization_id + file_name (optional content_type / content_length). It returns upload_url (the S3 PUT url), storage_path (the object key), and expires_in_seconds.
  2. From an environment that can reach the upload host, HTTP PUT the file bytes to upload_url within expires_in_seconds (send Content-Type / Content-Length matching what you passed, if any).
  3. Set the attachment field to [storage_path] via update_card_field / set_table_record_field_value. Store storage_path, never a URL — the signed download URL is minted on read.

Because the bytes are handled by the client (step 2), not passed through the tool call, this keeps the model's context clean.

Success criteria

upload_attachment_to_card / upload_attachment_to_table_record (one-shot): the upload result has a download_url (the signed URL Pipefy returns), the inferred or explicit content_type, and the file_size in bytes, and the attachment field on the card or record now lists the file. One call is the whole job.

create_attachment_presigned_url (handshake) is not done at mint: a successful result here only means a target was minted — no field was touched and nothing is attached yet. Done means you completed all three steps: after the client PUTs the bytes to upload_url and you set the field to [storage_path], the attachment field lists the file. Do not treat the mint response (or its premature signed URL) as a finished upload.

Failure modes

Check source accessibility, the 100 MiB one-shot limit, upload expiry and signed headers, and write access to the attachment field. If a signed URL expires, mint a new one; retrying the PUT against the old URL does not refresh it. The presigned handshake requires checking the client PUT and field update separately from minting.

See also

  • pipefy-pipes-and-cards: finding card ids and attachment field slugs.
  • pipefy-database-tables: finding table record ids and field slugs.

FAQ

What does the pipefy-attachments skill do?

Use this skill when the user wants to upload a file to a Pipefy card or table-record attachment field. Covers local and downloaded file sources, plus a presigned-URL handshake for uploading files directly.

How do I install pipefy-attachments?

Run npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-attachments in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/pipefy-attachments/ (personal) or .claude/skills/pipefy-attachments/ (project).

Which AI agents can use pipefy-attachments?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is pipefy-attachments safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains pipefy-attachments?

It is published by pipefy in pipefy/ai-toolkit. It has 680 recorded installs.

More from pipefy/ai-toolkit

View all →

pipefy-observability

pipefy/ai-toolkit

Use this skill when the user wants to check AI agent logs, automation execution logs, org-level usage stats, AI credit consumption, or export automation job history.

DevOps & Cloud688 installs

pipefy-automations

pipefy/ai-toolkit

Use this skill when the user wants to create, read, update, or delete traditional automations (if/then rules) or AI automations (prompt-driven). For AI agents (conversational), see pipefy-ai-agents.

AI & Agents687 installs

pipefy-pipes-and-cards

pipefy/ai-toolkit

Use this skill when the user wants to read, create, update, or delete pipes, phases, phase fields, labels, cards, comments, or field conditions. Use the seed-pipe-across-phases workflow when populating empty phases for demos or QA.

Testing & QA685 installs

pipefy-portal-setup

pipefy/ai-toolkit

Use this skill when the user wants to list, create, or configure Pipefy portals (main hub, pages, page elements, sub-portals, publish/unpublish). Uses Interfaces and internalapi. Not for pipes/cards.

Backend & APIs684 installs

pipefy-introspection

pipefy/ai-toolkit

Use this skill when you need to discover GraphQL type shapes, mutation signatures, enum values, or execute arbitrary GraphQL as a fallback. This is the first fallback tier (Tier 2) when dedicated operations fail or don't exist for an operation.

Backend & APIs684 installs

pipefy-api-fallback

pipefy/ai-toolkit

Use this skill when a toolkit operation fails AND the introspection skill could not resolve the problem. This is the last-resort fallback (Tier 3): call the Pipefy GraphQL API directly using curl or httpx, authenticating with the Service Account (OAuth2) or a Personal Access Token (PAT) available as env var. Follow the 3-tier resolution strategy before reaching this point.

Backend & APIs684 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs