Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add pipefy/ai-toolkit --skill pipefy-relations -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/pipefy-relations/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/pipefy-relations/

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

Similar skills

All skills for Automation and no-code: n8n, Zapier, Make →

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor