CRM Flexible Schema
Use this skill when a CRM workspace needs to adapt its data model without a
database migration. CRM ships default company, contact, deal, and
activity object types, then lets agents add typed properties, create flexible
records, and define relationships between records.
Principles
- Keep the default primitives:
company,contact,deal, andactivity. - Add custom properties before writing custom values so agents can discover the schema.
- Store flexible values in record
properties, not in ad hoc notes. - Use relationships for associations such as
deal_champion,partner_account, orrenewal_parent. - Prefer typed property definitions over unstructured JSON when the field will be reused.
Discover Schema
crm schema objects list
crm schema properties deal
crm relationships list
Add Properties
crm schema property create deal \
--key mutual_action_plan \
--label "Mutual Action Plan" \
--type json
crm schema property create contact \
--key buying_role \
--label "Buying Role" \
--type select \
--options '["economic_buyer","champion","technical_buyer","blocker"]'
Create Flexible Records
crm objects create deal \
--properties '{
"name": "Acme Expansion",
"stage": "qualified",
"amount": 50000,
"mutual_action_plan": {
"next_step": "security review",
"owner": "champion"
}
}'
Define Relationships
crm relationships create \
--key deal_champion \
--label "Deal Champion" \
--from-object deal \
--to-object contact \
--cardinality many_to_one
crm relationships link \
--relationship deal_champion \
--from-record deal_record_id \
--to-record contact_record_id
MCP Tool Names
listObjectTypescreateObjectTypelistPropertyDefinitionscreatePropertyDefinitionlistRecordscreateRecordupdateRecordlistRelationshipDefinitionscreateRelationshipDefinitionlinkRecords
Guardrails
- Do not create a custom object when a custom property on a core object is enough.
- Do not overload one JSON field with many unrelated concepts; create separate typed properties.
- Do not link records unless a relationship definition exists.
- For repeatable GTM process data, prefer
select,multi_select,number,date, orbooleanoverjson.