> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supersonic.cv/llms.txt
> Use this file to discover all available pages before exploring further.

# Relationship Graph

> Explore connections between records — find paths, map networks, and classify contacts.

The relationship graph maps how records connect to each other through relations, shared activities, meetings, and communications. Use it to discover hidden connections and map account hierarchies.

## Tools

| Tool                   | Description                                                       | Key Params                                    |
| ---------------------- | ----------------------------------------------------------------- | --------------------------------------------- |
| `graph.query`          | Get direct connections for a record                               | `record_id`, `depth`, `types`                 |
| `graph.path`           | Find the shortest path between two records                        | `from_record_id`, `to_record_id`, `max_depth` |
| `graph.full`           | Get the full graph for a workspace or object type                 | `object_type_slug` (optional), `types`        |
| `graph.build_meetings` | Build/rebuild graph edges from meeting data                       | `force`                                       |
| `contacts.classify`    | Classify a contact's role in an account (champion, blocker, etc.) | `record_id`                                   |

### Connection Types

| Type       | Description                    |
| ---------- | ------------------------------ |
| `relation` | Explicit record-to-record link |
| `meeting`  | Attended the same meeting      |
| `email`    | Part of the same email thread  |
| `company`  | Belongs to the same company    |

## Examples

### Find all connections within 2 hops of a contact

```json theme={null}
{
  "tool": "graph.query",
  "params": {
    "record_id": "rec_contact_01",
    "depth": 2,
    "types": ["relation", "meeting", "email"]
  }
}
```

Response:

```json theme={null}
{
  "success": true,
  "data": {
    "nodes": [
      { "id": "rec_contact_01", "label": "Jane Smith", "type": "contacts" },
      { "id": "rec_company_01", "label": "Acme Corp", "type": "companies" },
      { "id": "rec_contact_02", "label": "Bob Johnson", "type": "contacts" },
      { "id": "rec_contact_03", "label": "Alice Lee", "type": "contacts" }
    ],
    "edges": [
      { "from": "rec_contact_01", "to": "rec_company_01", "type": "relation" },
      { "from": "rec_contact_02", "to": "rec_company_01", "type": "relation" },
      { "from": "rec_contact_01", "to": "rec_contact_03", "type": "meeting" }
    ]
  }
}
```

### Find the path between two people

```json theme={null}
{
  "tool": "graph.path",
  "params": {
    "from_record_id": "rec_contact_01",
    "to_record_id": "rec_contact_05",
    "max_depth": 4
  }
}
```

Response:

```json theme={null}
{
  "success": true,
  "data": {
    "path": [
      { "id": "rec_contact_01", "label": "Jane Smith" },
      { "id": "rec_company_01", "label": "Acme Corp", "edge_type": "relation" },
      { "id": "rec_contact_02", "label": "Bob Johnson", "edge_type": "relation" },
      { "id": "rec_contact_05", "label": "Sarah Chen", "edge_type": "meeting" }
    ],
    "hops": 3
  }
}
```

### Classify a contact's role

```json theme={null}
{
  "tool": "contacts.classify",
  "params": {
    "record_id": "rec_contact_01"
  }
}
```
