generated: '2026-10-19' method: derived generator: derive-data-model.py source: - openapi/crm-switchlabs-openapi.json notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 28 entities_in_spec: 28 relationships: 6 entities: - name: Analytics fields: 0 - name: Article fields: 5 - name: Attachment fields: 5 - name: Automation fields: 4 - name: BusinessHours fields: 0 - name: Campaign fields: 14 - name: Collection fields: 3 - name: Conversation fields: 5 - name: Customer fields: 4 - name: Deal fields: 13 - name: ErrorResponse fields: 1 - name: Event fields: 3 - name: HelpCenter fields: 0 - name: Integration fields: 3 - name: ListMembership fields: 7 - name: Macro fields: 3 - name: MarketingList fields: 8 - name: Notification fields: 3 - name: PaginationMeta fields: 3 - name: SavedView fields: 0 - name: SearchResult fields: 0 - name: Sequence fields: 13 - name: SequenceEnrollment fields: 9 - name: SlaPolicy fields: 3 - name: Tag fields: 2 - name: Ticket fields: 6 - name: User fields: 4 - name: Webhook fields: 3 relationships: - from: Conversation to: Ticket type: belongs_to via: ticket_id - from: SequenceEnrollment to: Sequence type: belongs_to via: sequence_id - from: SequenceEnrollment to: Customer type: belongs_to via: customer_id - from: Campaign to: Integration type: belongs_to via: integration_id - from: ListMembership to: Customer type: belongs_to via: customer_id - from: Deal to: Customer type: belongs_to via: customer_id