Connect two Compass pages
compass_links_createCreates a typed, directed edge between two pages — the knowledge graph's connective tissue. Canonical directions: PERSON or ROLE owns WORKFLOW/SYSTEM/PRIORITY, PERSON or ROLE involved_in WORKFLOW, PERSON holds ROLE, WORKFLOW uses SYSTEM, SYSTEM uses SYSTEM, PAIN_POINT affects WORKFLOW/SYSTEM/PERSON/ROLE, DOCUMENT documents anything, PRIORITY contributes_to PRIORITY (a priority that ladders up to a bigger one; each ladders up to at most one, and choosing a new one moves it; a priority has one owner the same way), UNIT part_of UNIT and ROLE or PERSON part_of UNIT (the org chart: one parent each; a UNIT's lead owns it, one owner), relates_to as fallback. Prefer attaching responsibilities to the ROLE and linking the PERSON to it with holds — the role outlasts whoever is in it. Pass validFrom / validTo when the source says when it was true ('took over approvals in March'), and sourceKind + sourceId for who said so (the interview or page you learned it from). Idempotent on an open (from, to, kind) edge — re-creating one returns it. May return needs_confirmation; tell the user what you're proposing, wait for their approval, then re-call with the approvalId.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Edge type, in canonical direction. | |
| note | No | ≤500-char qualifier when the kind alone undersells it. | |
| source | No | Provenance label. Defaults AI_ACCEPTED (agent writing under live human direction); pass USER for human-driven scripts. | |
| validTo | No | When it stopped being true (YYYY-MM-DD). Only for a relationship that has already ended — recording history. | |
| sourceId | No | Id of the interview, email thread, Prism report or page named by sourceKind. | |
| toPageId | Yes | Edge target page id. | |
| validFrom | No | When the relationship started being true (YYYY-MM-DD). Omit when unknown. | |
| workspace | No | Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys. | |
| approvalId | No | Approval id from a prior needs_confirmation response, after the user has approved. Omit on the first call. | |
| fromPageId | Yes | Edge source page id. | |
| sourceKind | No | Who says this is true: an interview, an email thread, a Prism desk-research report (prism_report), a page (a DOCUMENT, or the PERSON who told you), or the user. |