MCP clients: read references/mcp.md. CLI users: read 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_relationson 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 (fromget_pipe_relations). DefaultsourceTypeisPipeRelation; useextra_input(e.g.,sourceType: Field) when the API requires a field-based link — seeintrospect_typeonCreateCardRelationInput. - Table relations in GraphQL are loaded by table-relation ID, not by database table ID:
get_table_relationstakes a non-empty list of those IDs. - Connector fields are card fields (connection type), not pipe relations for writes. Prefer
update_card+field_updateswithoperationADD/REMOVE (related card ids).update_card_fieldis replace-all of the full id list;get_cardvalueis display titles only — do not rebuild from it. This skill'sget_card_relationsstill reads connector-field links (with card ids).create_card_relation/delete_card_relationwrite 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
-
Get the pipe relation ID:
Operation:
get_pipe_relations(pipe_id=67890)Note the
idfield on the relation (not the pipe ID). -
Create the card relation:
Operation:
create_card_relation(parent_id=<PARENT_CARD_ID>, child_id=<CHILD_CARD_ID>, source_id=<PIPE_RELATION_ID>) -
Verify:
Operation:
get_card_relations(card_id=<CHILD_CARD_ID>)
Steps — create a new pipe relation
-
Create the relation between two pipes:
Operation:
create_pipe_relation(parent_id=111, child_id=222, name="Support Escalation") -
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_relationsreturns the new relation with both pipe IDs.get_card_relationsshows the linked card ID aftercreate_card_relation.
Failure modes
create_card_relationfails with "relation not found":source_idmust be the pipe relation ID (fromget_pipe_relations), not the pipe ID. These are different values.- Table relations return empty:
get_table_relationsrequires 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 andupdate_card_fieldreplace-all live there.docs/mcp/tools/identifiers.md— which args expect slug vs numeric id for field and relation tools.pipefy-introspection— discoverCreateCardRelationInputwhen non-standardsourceTypeis needed.