Data Model Overview

Create custom objects, fields, and structure your data.

Kantos uses a flexible data model that lets you create custom objects and fields to match your business needs. This guide covers the core concepts, field types, relationships, and best practices for structuring your CRM data.

Flexible by Design

Unlike rigid CRMs that force you into predefined structures, Kantos lets you model your data the way your business actually works. Create any object type, add custom fields, and define relationships that make sense for your workflows.

Core Concepts

Objects

Objects are the building blocks of your CRM. Each object represents a type of data you want to track—like Contacts, Companies, Deals, or any custom entity unique to your business. Think of objects as database tables with a friendly interface.

PropertyDescriptionExample
NameDisplay name for the objectContacts, Projects, Vehicles
SlugURL-safe identifier (auto-generated)contacts, projects, vehicles
IconVisual identifier in the sidebarUser, Folder, Car
DescriptionOptional explanation of purpose"People who have contacted us"

Fields

Fields define what information you store on each object. Every field has a type that determines how data is validated, displayed, and searched. Kantos supports 15+ field types to handle any data structure.

Records

Records are individual entries within an object. For example, each contact in your Contacts object is a record. Records contain field values and metadata like creation date, last modified, and the user who made changes.

Default Objects

Every Kantos organization starts with three built-in objects. These can be customized or hidden, but cannot be deleted:

ObjectPurposeDefault Fields
ContactsIndividual people you interact withName, Email, Phone, Company, Status
CompaniesOrganizations and businessesName, Website, Industry, Size, Address
DealsSales opportunities and pipeline trackingName, Value, Stage, Close Date, Contact

Customize Default Objects

The default objects are just starting points. Add custom fields, rename them, or create entirely new objects that better fit your business model.

Creating Custom Objects

Create custom objects to track anything specific to your business: Projects, Products, Tickets, Properties, Vehicles, Students—anything.

Step

Navigate to Settings

Go to Settings → Data Model in your Kantos dashboard.

Step

Click "Create Object"

Enter a name for your object (e.g., "Projects"). A URL slug will be auto-generated.

Step

Choose an Icon

Select an icon that represents this object type. This appears in the sidebar navigation.

Step

Add Fields

Define the fields you want to track. You can always add more fields later.

Step

Save and Publish

Click Save. The object is immediately available in your sidebar and via the API.

Field Types Reference

Kantos supports a comprehensive set of field types. Choose the right type for proper validation, display formatting, and search behavior:

Basic Fields

TypeDescriptionUse Cases
TextSingle line of text (up to 255 characters)Names, titles, short descriptions
Long TextMulti-line text with no character limitNotes, descriptions, comments
NumberInteger or decimal valuesQuantities, scores, percentages
CurrencyMonetary values with formattingDeal values, budgets, prices
CheckboxBoolean true/false valueOpt-ins, flags, confirmations

Contact Fields

TypeValidationFeatures
EmailValid email format requiredClick to compose, deduplication
PhoneInternational phone formattingClick to call, auto-formatting
URLValid web address requiredClick to open, preview generation

Date & Time Fields

TypeFormatUse Cases
DateDate only (no time)Birthdays, deadlines, milestones
DateTimeDate with time and timezoneAppointments, events, timestamps

Selection Fields

TypeDescriptionUse Cases
DropdownSingle selection from predefined optionsStatus, category, priority
Multi-SelectMultiple selections allowedTags, interests, skills
StatusPipeline stages with colorsDeal stages, ticket status, lead status

Relationship Fields

TypeDescriptionUse Cases
LookupReference to another object (one-to-many)Contact → Company, Deal → Contact
Multi-LookupReferences to multiple records (many-to-many)Project → Team Members, Product → Categories
UserReference to a Kantos userOwner, assigned to, created by

Special Fields

TypeDescriptionUse Cases
FormulaCalculated value from other fieldsFull name, age, total value
RollupAggregation from related recordsTotal deal value, contact count
FileFile attachment storageDocuments, images, contracts

Creating Fields

Step

Open Object Settings

Navigate to the object you want to modify in Settings → Data Model.

Step

Click "Add Field"

Enter a field name and select the appropriate field type.

Step

Configure Field Options

Set options like required, unique, default value, and type-specific settings.

Step

Set Display Options

Choose whether to show in list view, detail view, and search results.

Step

Save Field

Click Save. The field is immediately available on all records.

{
  "name": "Annual Revenue",
  "slug": "annual_revenue",
  "type": "currency",
  "options": {
    "currency": "USD",
    "required": false,
    "show_in_list": true,
    "show_in_detail": true,
    "searchable": false
  }
}

Relationships

Relationships connect records across objects, enabling powerful data modeling and reporting capabilities.

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

Data Import

Import existing data from CSV files or other CRMs. Kantos handles field mapping and deduplication automatically.

Step

Prepare Your CSV

Ensure your CSV has headers that match or can be mapped to your field names.

Step

Go to Import

Navigate to the object and click Import → Upload CSV.

Step

Map Fields

Match CSV columns to Kantos fields. Unmapped columns are ignored.

Step

Configure Deduplication

Choose a unique field (like Email) to prevent duplicate records.

Step

Review and Import

Preview the first few records, then start the import process.

Import Limits

CSV imports are limited to 10,000 rows per file. For larger datasets, split into multiple files or use the API for bulk imports.

Data Export

Export records to CSV for backup, reporting, or migration purposes.

Step

Filter Records (Optional)

Apply any filters to export only specific records.

Step

Click Export

Click the Export button in the list view toolbar.

Step

Select Fields

Choose which fields to include in the export.

Step

Download CSV

The CSV file downloads to your browser.

Best Practices

Object Design

  • Start simple - Begin with essential fields, add more as needed
  • Use meaningful names - "Annual Contract Value" not "Field_1"
  • Avoid duplication - Use relationships instead of copying data
  • Plan relationships - Consider how objects connect before creating them

Field Design

  • Choose the right type - Use Email for emails, not Text
  • Set sensible defaults - Pre-fill common values to speed data entry
  • Mark required fields - Only require truly essential data
  • Use dropdowns for consistency - Prevent typos with predefined options

Performance Tips

  • Limit formula complexity - Complex formulas can slow down views
  • Index searchable fields - Only mark frequently searched fields as searchable
  • Archive old records - Move inactive records to an archive object

API Access

All objects and fields are accessible via the Kantos API. The data model is fully reflected in API endpoints:

# List all objects
GET /api/crm/objects

# Get object schema with fields
GET /api/crm/objects/{object_id}

# Query records
GET /api/crm/records/query?object_id={object_id}

# Create a record
POST /api/crm/record
{
  "object_id": "obj_contacts",
  "field_values": {
    "name": "John Doe",
    "email": "john@example.com",
    "company": "rec_company_123"
  }
}

Next Steps

    Data Model | Kantos Docs