Flexible schema

Default CRM primitives. Custom shape per team.

CRM starts with companies, contacts, deals, and activities. Agents can then add properties, create object types, and define relationships so the workspace fits the team instead of forcing a fixed database shape.

Headless schema control
crm schema objects list
crm schema property create deal --key mutual_action_plan --label 'Mutual Action Plan' --type json
crm objects create deal --properties '{"name":"Acme Expansion","stage":"qualified"}'
crm relationships link --relationship deal_contact --from-record deal_... --to-record contact_...

Typed definitions

Agents define object types and property types before writing flexible JSONB-backed values.

Flexible records

Companies, contacts, deals, activities, and custom objects use `properties` for team-specific fields.

Relationships

Define associations such as deal champions, renewal parents, partner accounts, or stakeholder maps.