pipefy-relations — Claude Code skill: link pipes and cards in Pipefy
A skill for Pipefy relations: create and read links between pipes, tables and cards through MCP or the CLI.
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a claude-codeWhat pipefy-relations does
This skill handles one area — how workflows connect in Pipefy. It lists pipe-to-pipe relations, creates new ones, changes their config (auto-fill, constraints) and deletes them. Card links are a separate path: two cards are joined through an existing pipe relation.
Eight operations sit inside, split into reads and writes. Reads: get_pipe_relations, get_table_relations, get_card_relations. Writes: create_pipe_relation, update_pipe_relation, delete_pipe_relation, create_card_relation, delete_card_relation. Deletion is flagged as destructive, so the skill shows the affected relation and asks for approval first. MCP clients and CLI users get separate references in the repo: references/mcp.md and references/cli.md.
Identifiers are where people trip. In create_card_relation the source_id argument is the pipe relation ID from get_pipe_relations, not the pipe ID. Pass the pipe ID and the call fails with "relation not found". Tables work the same way: get_table_relations takes table-relation IDs rather than table IDs, and the list must not be empty. Connector-field links are written elsewhere — through update_card, where update_card_field replaces the whole ID list. Worth checking which link type you actually need before touching anything.
What it helps with
- link two cards through an existing pipe relation
- create a parent-child relation between two pipes
- list every relation on a card before editing it
- set auto-fill and constraints on a pipe relation
- remove a relation after showing what it affects
Example prompts for the agent
- list the relations on pipe 67890 and find the ID I need
- link card <PARENT_CARD_ID> to <CHILD_CARD_ID> through the pipe relation
- create a relation between pipes 111 and 222 named Support Escalation
How to install pipefy-relations
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a claude-code2Manually: put the files in place
~/.claude/skills/pipefy-relations/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/pipefy-relations/
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a codex2Manually: put the files in place
.agents/skills/pipefy-relations/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a cursor2Manually: put the files in place
.cursor/skills/pipefy-relations/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install pipefy/ai-toolkit pipefy-relations2Manually: put the files in place
.github/skills/pipefy-relations/SKILL.md1Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a gemini-cli2Platform CLI
gemini skills install https://github.com/pipefy/ai-toolkit --path plugins/pipefy/skills/pipefy-relationsManually: put the files in place
.devin/skills/pipefy-relations/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add pipefy/ai-toolkit --skill pipefy-relations -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-relations
How do I install pipefy-relations in Claude?
Run npx skills add pipefy/ai-toolkit --skill pipefy-relations -a claude-code. The skill lands in ~/.claude/skills/pipefy-relations/SKILL.md.
What does pipefy-relations do?
It creates and reads links between pipes, tables and cards in Pipefy. Eight operations cover reading relations plus creating, updating and deleting them.
Why does create_card_relation fail with "relation not found"?
source_id must be the pipe relation ID from get_pipe_relations, not the pipe ID. Those are different values.
Source text
SKILL.md · Apache-2.0
--- name: pipefy-relations description: > Use this skill when the user wants to link pipes, tables, or cards across workflows — creating or managing pipe relations, table relations, or card relations. tags: [pipefy, relations, connections, pipes, cards, tables] --- # Connections & Relations MCP clients: read [references/mcp.md](references/mcp.md). CLI users: read [references/cli.md](references/cli.md). Examples below describe shared operation arguments. Link processes and cards across workflows. --- ## Key concepts - **Pipe relations** define parent/child structure between pipes (who connects to whom, constraints, auto-fill). Use `get_pipe_relations` on a pipe to list relation IDs and metadata. - **Card relations** connect individual cards through an existing pipe relation: pass `source_id` = the pipe relation's ID (from `get_pipe_relations`). Default `sourceType` is `PipeRelation`; use `extra_input` (e.g., `sourceType: Field`) when the API requires a field-based link — see `introspect_type` on `CreateCardRelationInput`. - **Table relations** in GraphQL are loaded by table-relation ID, not by database table ID: `get_table_relations` takes a non-empty list of those IDs. - **Connector fields** are card fields (connection type), not pipe relations for *writes*. Prefer `update_card` + `field_updates` with `operation` ADD/REMOVE (related **card ids**). `update_card_field` is **replace-all** of the full id list; `get_card` `value` is display titles only — do not rebuild from it. This skill's `get_card_relations` still **reads** connector-field links (with card ids). `create_card_relation` / `delete_card_relation` write links through a pipe relation and are incremental — pick the surface that matches the link type. --- ## Tools | Operation | Read-only | Purpose | | ------------ | ----------- | --------- | | `get_pipe_relations` | Yes | List pipe-to-pipe relations for a pipe. | | `create_pipe_relation` | No | Create a new pipe-to-pipe relation. | | `update_pipe_relation` | No | Change relation config (auto-fill, constraints). | | `delete_pipe_relation` | No | **Destructive; review and approve first.** | | `get_table_relations` | Yes | Load table relations by relation ID. | | `get_card_relations` | Yes | List all card-to-card relations on a card. | | `create_card_relation` | No | Link two cards through an existing pipe relation. | | `delete_card_relation` | No | **Destructive; review and approve first.** | --- ## Steps — link two cards via an existing pipe relation 1. **Get the pipe relation ID:** Operation: `get_pipe_relations(pipe_id=67890)` Note the `id` field on the relation (not the pipe ID). 2. **Create the card relation:** Operation: `create_card_relation(parent_id=<PARENT_CARD_ID>, child_id=<CHILD_CARD_ID>, source_id=<PIPE_RELATION_ID>)` 3. **Verify:** Operation: `get_card_relations(card_id=<CHILD_CARD_ID>)` --- ## Steps — create a new pipe relation 1. **Create the relation between two pipes:** Operation: `create_pipe_relation(parent_id=111, child_id=222, name="Support Escalation")` 2. **Use the relation** — cards in the parent pipe can now be linked to cards in the child pipe using `create_card_relation`. --- ## Success criteria - `get_pipe_relations` returns the new relation with both pipe IDs. - `get_card_relations` shows the linked card ID after `create_card_relation`. ## Failure modes - **`create_card_relation` fails with "relation not found":** `source_id` must be the **pipe relation ID** (from `get_pipe_relations`), not the pipe ID. These are different values. - **Table relations return empty:** `get_table_relations` requires table-relation IDs, not table IDs. Get table-relation IDs from the table's connection config. - **Deletion:** show the affected relation and obtain approval before removing it. ## See also - `pipefy-pipes-and-cards` — create the pipes and cards before linking them; connector field updates and `update_card_field` replace-all live there. - [`docs/mcp/tools/identifiers.md`](https://github.com/pipefy/ai-toolkit/blob/main/docs/mcp/tools/identifiers.md) — which args expect slug vs numeric id for field and relation tools. - `pipefy-introspection` — discover `CreateCardRelationInput` when non-standard `sourceType` is needed.
© pipefy · Apache-2.0 · pipefy/ai-toolkit