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
| Field | Description |
|---|---|
| Object Name | Singular name (e.g., "Asset") |
| Plural Name | Plural form for list views (e.g., "Assets") |
| API Name | System identifier, auto-generated from name (e.g., asset) |
| Description | Brief explanation of what this object tracks |
| Icon | Visual identifier shown in navigation and related lists |
| Primary Field | The 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
| Type | Use Case | Example |
|---|---|---|
| Text | Short text values | Asset serial number |
| Long Text | Multi-line descriptions | Project scope notes |
| Number | Numeric values | Quantity deployed |
| Currency | Monetary amounts | Maintenance cost |
| Date | Single dates | Warranty expiration |
| Date/Time | Timestamps | Last inspection |
| Checkbox | Boolean true/false | Is active |
| Picklist | Single selection from options | Asset status |
| Multi-Select Picklist | Multiple selections | Applicable regions |
| Lookup | Relationship to another object | Related account |
| Formula | Calculated from other fields | Days until expiry |
| Rollup Summary | Aggregate child records | Total asset value |
| Auto-Number | Sequential identifier | ASSET-00001 |
| URL | Web links | Documentation link |
| Email addresses | Vendor contact | |
| Phone | Phone numbers | Support 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)
Related Lists on Parent Records
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:
| Permission | Description |
|---|---|
| View | See records in list and detail views |
| Create | Add new records |
| Edit | Modify existing records |
| Delete | Remove records |
| View All | See all records regardless of ownership |
| Modify All | Edit/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 recordsPOST /v1/custom-objects/:objectName— Create a recordPATCH /v1/custom-objects/:objectName/:id— Update a recordDELETE /v1/custom-objects/:objectName/:id— Delete a record
All custom fields are included in API responses and accepted in request bodies.
Limits
| Resource | Limit |
|---|---|
| Custom objects per organization | 50 |
| Custom fields per object | 200 |
| Lookup relationships per object | 25 |
| Records per custom object | Unlimited |
| Formula fields per object | 30 |
| Rollup summary fields per object | 10 |
Best Practices
- Plan your data model before building — Sketch relationships on paper first to avoid restructuring later.
- Use descriptive API names — You cannot rename API names after creation, so choose wisely.
- Start with essential fields only — Add fields as needed rather than creating dozens upfront that go unused.
- Leverage lookups over duplicating data — Instead of copying account info onto custom objects, use a lookup to reference the account.
- Set up related lists immediately — Users expect to see linked custom objects on parent records without navigating away.
- Enable history tracking on key fields — Track changes to status, ownership, and value fields for accountability.
- Create meaningful list views — Default views filtered by status or ownership help users find records quickly.
- Document your custom objects — Maintain an internal reference of what each object tracks and its relationships, especially as your data model grows.