Skip to main content

Data Model Overview

Understand the core data structures in DZDESK.

Core Entities

Tenant

The top-level organization:

  • Isolated data container
  • Configuration holder
  • User boundary

User

People who access DZDESK:

  • Profile information
  • Role assignment
  • Group membership

Request

Support tickets:

  • Issue details
  • Status tracking
  • Assignment info
  • Activity history

Group

Team organization:

  • Collection of users
  • Request assignment target
  • Queue management

Entity Relationships

Tenant
├── Users
│ └── Group Memberships
├── Groups
│ └── Members
├── Requests
│ ├── Requester (User)
│ ├── Assigned Agent (User)
│ ├── Assigned Group (Group)
│ ├── Comments
│ ├── Attachments
│ └── Activities
└── SLA Tiers

Request Structure

Core Fields

FieldTypeDescription
idUUIDUnique identifier
titleStringSummary
descriptionTextDetailed description
statusEnumCurrent state
priorityEnumUrgency level
categoryStringClassification
createdAtDateTimeCreation time
updatedAtDateTimeLast update

Relationships

FieldTypeDescription
requesterUserWho submitted
assignedToUserAssigned agent
assignedGroupGroupAssigned team
commentsArrayDiscussion
attachmentsArrayFiles
activitiesArrayHistory

Status Values

StatusDescription
openNew, unassigned
assignedAgent assigned
in_progressBeing worked
pendingWaiting
resolvedSolution provided
closedCompleted

User Structure

Core Fields

FieldTypeDescription
idUUIDUnique identifier
emailStringLogin email
nameStringDisplay name
roleEnumPermission level
statusEnumActive/inactive
isVipBooleanVIP status

Relationships

FieldTypeDescription
groupsArrayGroup memberships
assignedRequestsArrayAssigned work
createdRequestsArraySubmitted requests

SLA Structure

SLA Tier

FieldTypeDescription
idUUIDUnique identifier
nameStringTier name
responseTargetIntegerHours to respond
resolutionTargetIntegerHours to resolve
includeSaturdayBooleanCount Saturday
includeSundayBooleanCount Sunday

Request SLA

FieldTypeDescription
tierSLA TierApplied tier
responseDeadlineDateTimeResponse due
resolutionDeadlineDateTimeResolution due
responseStatusEnumMet/breached
resolutionStatusEnumStatus

Activity/Event Structure

Fields

FieldTypeDescription
idUUIDUnique identifier
typeEnumEvent type
actorUserWho acted
timestampDateTimeWhen
changesObjectWhat changed

Event Types

  • request.created
  • request.updated
  • request.status_changed
  • request.assigned
  • request.commented
  • request.attachment_added

Data Isolation

Tenant Isolation

  • Separate database schema per tenant
  • No cross-tenant queries
  • Independent configuration

Row-Level Security

  • All queries filtered by tenant
  • Cannot access other tenants
  • Enforced at database level

Indexing

Primary Indexes

  • All ID fields
  • Foreign key references
  • Frequently filtered fields

Search Indexes

  • Full-text on title/description
  • Optimized for common queries
  • Updated in near-real-time

API Representation

JSON Format

{
"id": "req_abc123",
"title": "Issue title",
"status": "open",
"priority": "high",
"requester": {
"id": "usr_123",
"email": "user@company.com"
},
"assignedTo": null,
"createdAt": "2024-01-15T10:00:00Z"
}

Nested vs Flat

  • Related entities embedded when useful
  • IDs for references
  • Expandable relationships