Skip to content

Custom Records

Custom Records let you model your own object types in graph8 — beyond the built-in contacts, companies, and deals. If your sales motion tracks things like territories, partners, opportunities, or vertical-specific entities, Custom Records give you a structured place to store them with relationships, attributes, and AI access.

When to Use Custom Records

Use custom records when:

  • You need to track something that doesn’t fit contacts, companies, or deals
  • You want to reference the object from campaigns, sequences, or skills
  • You need to sync the object to/from your CRM as a custom object
  • The object has structured fields and relationships to other records

Common examples:

Object TypeUse Case
TerritoriesSales region with assigned reps and target accounts
PartnersChannel partners with their own contacts and deals
ProductsSKUs with pricing tiers and configurations
EventsConferences, trade shows with attendee contacts
Support TicketsCustomer issues tied to contacts
PropertiesReal estate listings with locations and attributes
PoliciesInsurance products with contract terms
VehiclesAuto sales inventory with specs

Creating a Custom Record Type

  1. Go to Studio → Custom Records → New Type
  2. Name the record type (singular and plural, e.g., “Territory” / “Territories”)
  3. Pick an icon for sidebar navigation
  4. Define attributes (see below)
  5. Define relationships to other records (see below)
  6. Set permissions
  7. Click Create

Once created, a new menu entry appears in the sidebar for that record type.

Attributes (Fields)

Each custom record type has its own fields. Add as many as needed.

Field Types

TypeExample Use
Text (short)Name, code, label
Text (long)Description, notes
NumberTarget revenue, rank
CurrencyPrice, quota
DateStart date, end date
DatetimeEvent start time
BooleanActive / inactive flag
DropdownSingle-select from predefined options
Multi-selectMultiple options
URLExternal link
EmailContact email
PhonePhone number with validation
ReferencePoints to another record (contact, company, deal, or custom record)
FormulaComputed from other fields
AI FieldGenerated by an AI skill when the record is created or updated

Field Configuration

For each field:

  • Label — display name
  • Key — internal identifier (auto-generated from label, immutable after creation)
  • Required — must have a value to save the record
  • Unique — values must be unique across all records of this type
  • Default value — optional starting value
  • Help text — shown in the UI when creating/editing records
  • Validation rules — regex patterns, min/max, etc.

Relationships

Custom records can reference other records to model how your data connects.

Relationship Types

TypeExample
One-to-oneA Territory has one assigned Rep (User)
Many-to-oneMany Opportunities belong to one Company
One-to-manyOne Territory has many target Companies
Many-to-manyPartners can sell many Products; Products are sold by many Partners

Defining a Relationship

  1. In the record type editor, click Add Relationship
  2. Pick the target record type (contact, company, deal, or custom)
  3. Set the cardinality (1:1, many:1, etc.)
  4. Name the relationship (e.g., “Assigned Rep”, “Parent Territory”)
  5. Choose cascade behavior:
    • Cascade delete — deleting parent deletes children
    • Restrict delete — can’t delete parent if children exist
    • Nullify — deleting parent sets children’s reference to null

Views and Filters

Each record type gets its own list view with AG Grid — same grid engine as Contacts and Companies.

Default Columns

Configure default columns at Record Type → Views → Default. Users can add or hide columns per session.

Saved Views

Create named views with specific filters and column sets:

  • “Active Territories” — filter by Status = Active
  • “Q1 Opportunities” — filter by close date range
  • “Enterprise Partners” — filter by tier

Share views with the team or keep them private.

Bulk Operations

Like contacts and companies, you can:

  • Bulk edit fields
  • Bulk delete
  • Run skills against every record in a filtered view
  • Export to CSV or JSON

AI Integration

Custom records are first-class citizens for AI actions.

Skills

Create skills that target a custom record type (see Skills →). Variables follow the pattern {{record.field_key}}.

Example skill for a “Territory” record:

Using the territory {{record.name}} with {{record.account_count}} target accounts and revenue goal of {{record.revenue_target | currency}}, draft a Q1 plan including:
1. Top 5 priority accounts
2. Key campaigns to run
3. Expected pipeline contribution

Agent Access

Voice agents, Copilot, and workflows can all read and write custom records. Grant agent access at Record Type → Permissions → AI Access.

Workflow Triggers

Workflows can trigger on custom record events:

  • Created, updated, deleted
  • Field changed (specific field transitions)
  • Relationship added or removed

CRM Sync

If your CRM supports custom objects (Salesforce, HubSpot, Pipedrive custom objects), map them to graph8 custom records.

  1. Go to Settings → Integrations → [CRM] → Custom Objects
  2. Select your graph8 record type
  3. Map to the CRM’s corresponding custom object
  4. Map fields (source ↔ destination)
  5. Choose sync direction (one-way, two-way)
  6. Enable — syncs run on the normal schedule

Sync Behavior

ScenarioBehavior
Record created in graph8Pushed to CRM on next sync
Record updated in graph8Pushed to CRM on next sync
Record created in CRMPulled into graph8
Simultaneous editsConflict resolution per field — configure at the field level
Record deletedConfigurable (cascade or soft-delete)

Permissions

RoleCapabilities
AdminCreate/edit/delete record types, all records
MemberCreate/edit/delete records within types they have access to
ViewerRead-only access

Per-record-type permissions can further restrict access. For example, only the Sales team sees Opportunities; everyone sees Territories.

Limits

LimitDefaultUpgradable
Custom record types10Yes, up to 100 on Enterprise
Fields per type50Yes, up to 500
Records per type100,000Yes, up to 10M
Relationships per type20Yes

Check current limits at Settings → Billing → Plan.

Troubleshooting

IssueFix
Can’t delete a record typeRecords still exist — delete all records first, or archive the type
Field validation failing on importCheck regex patterns and required fields; export sample CSV from the UI for the exact format
CRM sync not working for custom objectVerify the CRM user has permissions to the custom object; re-auth the integration
AI skill can’t find the recordCheck that AI Access is enabled for the record type
Relationship shows “broken reference”Target record was deleted with cascade=nullify; re-link manually