Data Model

Relationships

Create custom objects, fields, and structure your data.

Relationships connect records across objects, enabling powerful data modeling and reporting capabilities. Use lookups, status fields, formulas, and rollups to build rich data connections.

One-to-Many Relationships

The most common relationship type. One parent record relates to many child records. Use Lookup fields to create these connections.

Company (1) ←→ (Many) Contacts
├── Acme Corp → John Smith, Jane Doe, Bob Wilson
└── Tech Inc → Alice Brown, Charlie Davis

Deal (1) ←→ (Many) Activities
├── Enterprise Deal → Meeting, Call, Email, Proposal
└── SMB Deal → Demo, Follow-up, Contract

Many-to-Many Relationships

When records on both sides can relate to multiple records on the other side. Use Multi-Lookup fields for these connections.

Projects (Many) ←→ (Many) Team Members
├── Website Redesign → Alice, Bob, Charlie
├── Mobile App → Alice, Diana, Eve
└── API Integration → Bob, Charlie, Eve

Products (Many) ←→ (Many) Categories
├── Laptop Pro → Electronics, Business, Featured
└── Office Chair → Furniture, Business, New Arrivals

Creating Relationships

Step

Add a Lookup Field

Create a new field with type "Lookup" or "Multi-Lookup" on the child object.

Step

Select Target Object

Choose which object this field should link to.

Step

Configure Display

Choose which field from the related object to display (usually Name).

Step

Enable Related List (Optional)

Show related records on the parent object's detail view.

Status Fields & Pipelines

Status fields create visual pipelines for tracking record progress. Perfect for sales deals, support tickets, project tasks, or any workflow with stages.

Configuring Status Options

{
  "name": "Deal Stage",
  "type": "status",
  "options": {
    "stages": [
      { "name": "Lead", "color": "gray", "order": 1 },
      { "name": "Qualified", "color": "blue", "order": 2 },
      { "name": "Proposal", "color": "yellow", "order": 3 },
      { "name": "Negotiation", "color": "orange", "order": 4 },
      { "name": "Closed Won", "color": "green", "order": 5, "is_closed": true },
      { "name": "Closed Lost", "color": "red", "order": 6, "is_closed": true }
    ],
    "default_stage": "Lead"
  }
}

Pipeline Views

Status fields automatically enable Kanban board views. Drag and drop records between stages for a visual pipeline experience.

Formula Fields

Formula fields compute values automatically based on other fields. They update in real-time when source fields change.

Formula Examples

// Full Name (concatenation)
CONCAT(first_name, " ", last_name)

// Age from birthdate
YEAR(TODAY()) - YEAR(birthdate)

// Days until deadline
DATEDIFF(deadline, TODAY(), "days")

// Commission calculation
deal_value * commission_rate / 100

// Conditional status
IF(score >= 80, "Hot", IF(score >= 50, "Warm", "Cold"))

Rollup Fields

Rollup fields aggregate data from related records. Useful for totals, counts, and summary statistics on parent records.

{
  "name": "Total Deal Value",
  "type": "rollup",
  "options": {
    "related_object": "deals",
    "related_field": "value",
    "aggregation": "SUM",
    "filter": { "stage": { "$ne": "Closed Lost" } }
  }
}

// Available aggregations:
// SUM - Total of all values
// COUNT - Number of records
// AVG - Average value
// MIN - Minimum value
// MAX - Maximum value

Next Steps

    Relationships - Data Model | Kantos Docs