Swimlane
Create swimlane (cross-functional) diagrams with horizontal rows representing actors, departments, or roles, and flowchart nodes positioned within them.
Send "type": "swimlane".
Create swimlane (cross-functional) diagrams with horizontal rows representing actors, departments, or roles, and flowchart nodes positioned within them.
Also available as the MCP tool render_swimlane. The same payload works through either surface.
Fields
classstringrequiredAlways 'GraphLinksModel'
swimlaneRowsobject[]requiredArray of horizontal swim lane definitions
Child attributes
idstringrequiredUnique row ID (e.g., "row_1")
titlestringrequiredLane label (actor, department, role)
colorstringrequiredBackground color (soft pastel hex)
nodeDataArrayobject[]requiredArray of flowchart nodes assigned to swim lanes
Child attributes
keystringrequiredUnique node identifier
textstringrequiredNode label
rowstringrequiredswimlaneRows id this node belongs to
locstringrequiredPosition as "x y" string
widthnumber120 for processes, 100 for diamonds
heightnumber60 for processes, 80 for diamonds
shapeenum<string>requiredNode shape. One of RoundedRectangle, Diamond, Ellipse or Rectangle.
colorstringrequiredNode hex color
linkDataArrayobject[]requiredArray of connections between nodes
Child attributes
fromstringrequiredSource node key
tostringrequiredTarget node key
fromSpotenum<string>requiredOne of Top, Bottom, Left or Right.
toSpotenum<string>requiredOne of Top, Bottom, Left or Right.
textstringLink label (e.g., "Yes", "No")
segmentFractionnumber0.1-0.9, label position along the path — give adjacent labelled links different values (0.35 / 0.65) so labels do not stack
Example
{
"type": "swimlane",
"data": {
"class": "string",
"swimlaneRows": [
{
"id": "string",
"title": "Q4 Launch Planning",
"color": "string"
}
],
"nodeDataArray": [
{
"key": "string",
"text": "Interview 5 users",
"row": "string",
"loc": "string",
"width": 0,
"height": 0,
"shape": "RoundedRectangle",
"color": "string"
}
],
"linkDataArray": [
{
"from": "string",
"to": "string",
"fromSpot": "Top",
"toSpot": "Top",
"text": "Interview 5 users",
"segmentFraction": 0
}
]
}
}