关于 pipefy-attachments
pipefy-attachments 是用于 Pipefy 的附件上传技能,面向需要将单个文件添加到卡片或表记录附件字段的工作流。它支持本地文件、URL,以及通过预签名 URL 完成上传。
主要功能
- 01上传文件到卡片附件字段
- 02上传文件到表记录附件字段
- 03支持本地文件和 URL 来源
- 04预签名 URL 分步上传
- 05可指定存储文件名
适用场景
- 01将本地报告附加到 Pipefy 卡片
- 02从 URL 上传文件到表记录
- 03文件超出单次上传限制时使用预签名流程
MCP 相关
该技能面向 MCP 客户端使用,提供将附件上传到 Pipefy 卡片或表记录的操作。预签名流程还需客户端上传文件字节并更新字段。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pipefy/ ai-toolkit --skill pipefy-attachments安装后在 Claude Code 中输入/pipefy-attachments确认已加载。
附带文件references/cli.mdreferences/mcp.md
详细介绍
附件
MCP 客户端:阅读 references/mcp.md。CLI 用户:阅读 references/cli.md。以下示例介绍通用操作参数。
每次将一个文件上传到卡片或表记录附件字段。上传通过 Pipefy 的预签名 URL 流程完成(请求 URL、S3 PUT,然后更新字段)。
适用场景
- 用户说“将此文件附加到卡片 X”或“上传到记录 Y 的 documents 字段”。
- 根据文件字节的实际位置选择来源。请遵循所选界面的来源规则。
以下情况不要使用此技能:
- 读取或列出现有附件。此技能范围内没有列表或下载工具。卡片和表记录可通过常规卡片/记录获取工具访问其附件。
- 批量上传。每次调用上传一个文件;由 Agent 层进行迭代。
前提条件
- 一个 Pipefy
organization_id。可通过get_organization或get_pipe查找。 - 一个目标
card_id或table_record_id。 - 附件字段的 slug(类似
document_upload的可读 ID,而不是字段的 UUID)。可通过卡片或表记录获取工具查找。 - 恰好一个可由所选上传界面访问的文件来源。
所需工具
| 操作 | 只读 |
|---|---|
upload_attachment_to_card | 否 |
upload_attachment_to_table_record | 否 |
create_attachment_presigned_url | 否 |
步骤
将本地文件上传到卡片
如果省略 file_name,系统会根据来源文件名推断,因此调用者通常只需传入四个 ID 和来源。
操作参数:
upload_attachment_to_card(organization_id=42, card_id=1234, field_id=document_upload, file_path=~/report.pdf)
从 URL 上传
upload_attachment_to_card(organization_id=42, card_id=1234, field_id=document_upload, file_url=https://example.com/report.pdf)
如果 URL 路径中没有文件名(例如 .../download?id=1),请显式传入 file_name,以便 Pipefy 使用真实名称存储文件。
将本地文件上传到表记录
操作参数:
upload_attachment_to_table_record(organization_id=42, table_record_id=tr-555, field_id=document_upload, file_path=/tmp/export.csv)
覆盖文件名
如需使用不同于来源文件名的名称存储附件,请显式传入 file_name。显式名称优先于推断出的文件名。
upload_attachment_to_card(..., file_url=https://example.com/abc123.pdf, file_name=Invoice-2026.pdf)
使用预签名握手流程
如果一次性上传无法访问文件字节或超出 100 MiB 上限,请使用 create_attachment_presigned_url,并从可读取文件的环境上传:
- 使用
organization_id和file_name调用create_attachment_presigned_url(可选传入content_type/content_length)。它会返回upload_url(S3 PUT URL)、storage_path(对象键)和expires_in_seconds。 - 在可访问上传主机的环境中,在
expires_in_seconds内通过 HTTPPUT将文件字节发送到upload_url(如果传入了Content-Type/Content-Length,请发送匹配的值)。 - 通过
update_card_field/set_table_record_field_value将附件字段设为[storage_path]。存储storage_path,不要存储 URL——签名下载 URL 会在读取时生成。
由于文件字节由客户端处理(步骤 2),而非通过工具调用传递,因此不会弄脏模型的上下文。
成功标准
upload_attachment_to_card / upload_attachment_to_table_record(一次性上传):上传结果包含 download_url(Pipefy 返回的签名 URL)、推断得出或显式指定的 content_type,以及以字节为单位的 file_size,并且卡片或记录的附件字段现在列出了该文件。一次调用即可完成全部工作。
create_attachment_presigned_url(握手流程)在生成 URL 时并未完成:此处成功仅表示已生成目标,尚未修改任何字段,也未附加任何内容。只有完成全部三个步骤才算完成:客户端将字节 PUT 到 upload_url 后,再将字段设为 [storage_path],附件字段列出该文件。不要将生成 URL 的响应(或提前生成的签名 URL)视为上传已完成。
失败模式
检查源是否可访问、单次上传的 100 MiB 限制、上传有效期和签名标头,以及是否有权写入附件字段。如果签名 URL 过期,请重新生成;针对旧 URL 重试 PUT 并不会刷新它。预签名握手需要分别检查客户端 PUT 和字段更新,不能只检查签名生成。
另请参阅
pipefy-pipes-and-cards:查找卡片 ID 和附件字段标识。pipefy-database-tables:查找表记录 ID 和字段标识。