SalesOS.

Custom Objects

Extend your CRM data model with custom objects to track any business entity unique to your organization.

Custom objects let you go beyond the standard CRM entities — leads, contacts, accounts, and deals — to model data structures specific to your business. Whether you need to track assets, projects, certifications, support cases, or any other entity, custom objects provide the flexibility to build exactly what your team requires without writing code.

When to Use Custom Objects

Custom objects are ideal when you need to track something that doesn't fit naturally into existing record types:

  • Assets or Inventory — Track deployed products, licenses, or equipment at customer sites
  • Projects or Engagements — Monitor delivery milestones tied to closed deals
  • Certifications or Training — Record partner or team certifications with expiry dates
  • Support Cases — Track customer issues linked to accounts and contacts
  • Locations or Sites — Manage multi-location customers with site-specific details
  • Custom Workflows — Any business process unique to your organization

Creating a Custom Object

Navigate to Settings > Data Model > Custom Objects and click New Custom Object.

Object Configuration

FieldDescription
Object NameSingular name (e.g., "Asset")
Plural NamePlural form for list views (e.g., "Assets")
API NameSystem identifier, auto-generated from name (e.g., asset)
DescriptionBrief explanation of what this object tracks
IconVisual identifier shown in navigation and related lists
Primary FieldThe main display field (like "Name" for contacts)

Object Settings

  • Enable Search — Include records in global search results
  • Enable Activities — Allow logging calls, emails, and tasks on records
  • Enable Notes — Allow attaching notes to records
  • Enable History Tracking — Log field changes in audit trail
  • Enable Bulk Operations — Allow mass updates and imports

Defining Custom Fields

After creating the object, add fields to capture the data you need. Navigate to the object's Fields tab and click Add Field.

Available Field Types

TypeUse CaseExample
TextShort text valuesAsset serial number
Long TextMulti-line descriptionsProject scope notes
NumberNumeric valuesQuantity deployed
CurrencyMonetary amountsMaintenance cost
DateSingle datesWarranty expiration
Date/TimeTimestampsLast inspection
CheckboxBoolean true/falseIs active
PicklistSingle selection from optionsAsset status
Multi-Select PicklistMultiple selectionsApplicable regions
LookupRelationship to another objectRelated account
FormulaCalculated from other fieldsDays until expiry
Rollup SummaryAggregate child recordsTotal asset value
Auto-NumberSequential identifierASSET-00001
URLWeb linksDocumentation link
EmailEmail addressesVendor contact
PhonePhone numbersSupport hotline

Relationships

Custom objects gain their power through relationships with other objects.

Relationship Types

  • Lookup (Many-to-One) — Each custom object record points to one parent record. Example: Each Asset looks up to one Account.
  • Master-Detail (Parent-Child) — Tight coupling where child records inherit sharing and are deleted with the parent. Enables rollup summary fields.
  • Many-to-Many (Junction Object) — Create a junction custom object with two lookup fields to model many-to-many relationships.

Common Relationship Patterns

  • Asset → Account (which customer has this asset)
  • Asset → Contact (who is the primary user)
  • Asset → Opportunity (which deal included this asset)
  • Project → Account + Project → Opportunity (cross-references)

Layouts and Views

List View

The default list view shows all records with configurable columns. Create filtered views for common segments:

  • Customize visible columns
  • Set default sort order
  • Create saved filters (e.g., "Active Assets", "Expiring This Month")
  • Enable inline editing for quick updates

Detail Page

Configure the record detail layout:

  • Arrange fields in sections with headers
  • Choose single-column or two-column layouts per section
  • Add related lists (child records from other objects)
  • Configure action buttons (Edit, Delete, Clone, custom actions)

Once a lookup relationship exists, the custom object appears as a related list on the parent record's detail page. For example, an Account detail page can show a related list of all Assets linked to that account.

Permissions

Control who can access custom object records:

PermissionDescription
ViewSee records in list and detail views
CreateAdd new records
EditModify existing records
DeleteRemove records
View AllSee all records regardless of ownership
Modify AllEdit/delete any record regardless of ownership

Assign permissions per role in Settings > Roles & Permissions.

Custom Objects in Workflows

Custom object events can trigger automations:

  • Record Created — Trigger actions when a new record is added
  • Record Updated — React to field changes (e.g., status changed to "Expired")
  • Record Deleted — Clean up related data or send notifications
  • Field Value Changed — Specific field transitions trigger workflows

Example Automation

When an Asset's warranty expiration date is 30 days away, automatically create a task for the account owner to initiate a renewal conversation.

Reporting on Custom Objects

Custom objects are fully available in the report builder:

  • Use as a primary data source for reports
  • Join with related objects (Account + Assets, Deal + Projects)
  • Group and summarize by custom object fields
  • Include in dashboards with charts and KPI widgets
  • Schedule reports that include custom object data

API Access

Custom objects are accessible via the REST API:

  • GET /v1/custom-objects/:objectName — List records
  • POST /v1/custom-objects/:objectName — Create a record
  • PATCH /v1/custom-objects/:objectName/:id — Update a record
  • DELETE /v1/custom-objects/:objectName/:id — Delete a record

All custom fields are included in API responses and accepted in request bodies.

Limits

ResourceLimit
Custom objects per organization50
Custom fields per object200
Lookup relationships per object25
Records per custom objectUnlimited
Formula fields per object30
Rollup summary fields per object10

Best Practices

  1. Plan your data model before building — Sketch relationships on paper first to avoid restructuring later.
  2. Use descriptive API names — You cannot rename API names after creation, so choose wisely.
  3. Start with essential fields only — Add fields as needed rather than creating dozens upfront that go unused.
  4. Leverage lookups over duplicating data — Instead of copying account info onto custom objects, use a lookup to reference the account.
  5. Set up related lists immediately — Users expect to see linked custom objects on parent records without navigating away.
  6. Enable history tracking on key fields — Track changes to status, ownership, and value fields for accountability.
  7. Create meaningful list views — Default views filtered by status or ownership help users find records quickly.
  8. Document your custom objects — Maintain an internal reference of what each object tracks and its relationships, especially as your data model grows.