Skip to main content
The CRM is the workspace. Organization is the tenant boundary for credits, membership, and all workspace data.

Organization

FieldTypeNotes
idUUIDPrimary key
slugstringUnique
kindenumBUSINESS · AGENCY · CLIENT
parent_agencyFK(self)Agency → client sub-accounts
monthly_credit_cap, max_credits_per_actionnumberBudget guards
ai_pausedboolBlocks managed AI

Core CRM objects

ModelPurposeKey relationships
MembershipUser ↔ Org with role (OWNER · ADMIN · MEMBER · SCOUT · VERIFIER)FK Organization, User
ContactA lead/personFK Organization, optional linked_business, account
CrmAccountA company recordFK Organization, optional linked_business
DealPipeline opportunity (LEAD · QUALIFIED · PROPOSAL · WON · LOST)FK Organization, Contact, Business
TaskWork item (OPEN · IN_PROGRESS · DONE · CANCELLED)FK Organization, assignee
InteractionLogged touchpoint (audit trail)FK Organization, Contact
Conversation / MessageEmail threads (drafts gate outbound)FK Organization, Contact
Form / FormSubmissionLead-capture forms → CRM recordsFK Organization
CrmFieldDefinitionCustom fields (Attio-style)FK Organization
CrmSavedViewSaved filtered list viewsFK Organization
NotificationWorkspace activity feedFK Organization, User

Custom fields

CrmFieldDefinition + a custom_data JSON blob on Contact/Account/Deal give flexible, per-org schema without migrations.
Generated from the crm app models; field lists re-sync each iteration.