Salesforce Scheduler Data Model Template
Pre-built data model for Salesforce Scheduler (Lightning Scheduler) using flowchart LR format with color coding and relationship indicators.
Objects Included
| Object |
Type |
Description |
| ServiceAppointment |
STD |
Scheduled appointments |
| ServiceResource |
STD |
People/equipment |
| ServiceTerritory |
STD |
Service locations |
| ServiceTerritoryMember |
STD |
Resource assignments |
| WorkType |
STD |
Service types |
| WorkTypeGroup |
STD |
Grouped work types |
| AssignedResource |
STD |
Appointment assignments |
| ResourceAbsence |
STD |
Time off/unavailability |
| TimeSlot |
STD |
Available time slots |
Query Org Metadata (Recommended)
Enrich diagram with live org data:
python3 ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/scripts/query-org-metadata.py \
--objects ServiceAppointment,ServiceResource,ServiceTerritory,WorkType \
--target-org myorg
Mermaid Template (Preferred)
Left-to-right flowchart with color coding.
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
%% ═══════════════════════════════════════════════════════════════
%% SALESFORCE SCHEDULER DATA MODEL
%% LEGEND: LK = Lookup (-->), MD = Master-Detail (==>)
%% Colors: Blue = Standard, Orange = Custom, Green = External
%% ═══════════════════════════════════════════════════════════════
%% Core Scheduling Objects
SA["ServiceAppointment<br/>(count)"]
SR["ServiceResource<br/>(count)"]
ST["ServiceTerritory<br/>(count)"]
%% Resource Assignments
STM["ServiceTerritoryMember<br/>(count)"]
AR["AssignedResource<br/>(count)"]
%% Work Types
WT["WorkType<br/>(count)"]
WTG["WorkTypeGroup<br/>(count)"]
WTGM["WorkTypeGroupMember<br/>(count)"]
%% Availability
RA["ResourceAbsence<br/>(count)"]
TS["TimeSlot<br/>(count)"]
%% Related Objects
Account["Account<br/>(count)"]
Contact["Contact<br/>(count)"]
User["User<br/>(count)"]
%% Service Appointment
Account -->|"LK"| SA
Contact -->|"LK"| SA
ST -->|"LK"| SA
WT -->|"LK"| SA
%% Resource Structure
User -->|"LK"| SR
SR ==>|"MD"| STM
ST -->|"LK"| STM
%% Appointment Assignment
SA ==>|"MD"| AR
SR -->|"LK"| AR
%% Work Type Groups
WTG ==>|"MD"| WTGM
WT -->|"LK"| WTGM
%% Availability
SR ==>|"MD"| RA
%% Operating Hours
ST -->|"LK"| TS
%% Standard Objects - Sky Blue
style SA fill:#bae6fd,stroke:#0369a1,color:#1f2937
style SR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ST fill:#bae6fd,stroke:#0369a1,color:#1f2937
style STM fill:#bae6fd,stroke:#0369a1,color:#1f2937
style AR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style WT fill:#bae6fd,stroke:#0369a1,color:#1f2937
style WTG fill:#bae6fd,stroke:#0369a1,color:#1f2937
style WTGM fill:#bae6fd,stroke:#0369a1,color:#1f2937
style RA fill:#bae6fd,stroke:#0369a1,color:#1f2937
style TS fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Contact fill:#bae6fd,stroke:#0369a1,color:#1f2937
style User fill:#bae6fd,stroke:#0369a1,color:#1f2937
Key Concepts
Scheduling Flow
Customer (Contact) → WorkType → ServiceAppointment ← ServiceResource
↓
ServiceTerritory
Resource Availability
| Object |
Purpose |
| OperatingHours |
Business hours definition |
| TimeSlot |
Available booking slots |
| ResourceAbsence |
Time off, breaks |
| ServiceTerritoryMember |
Territory assignment + hours |
ServiceResource Types
| Type |
Description |
| Technician |
Field service worker |
| Dispatcher |
Scheduling coordinator |
| Crew |
Group of resources |
| Asset |
Equipment, vehicles |
Simplified Version (Core Objects Only)
For presentations focusing on core scheduling flow:
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
Contact["Contact"]
SA["ServiceAppointment"]
SR["ServiceResource"]
ST["ServiceTerritory"]
Contact -->|"LK"| SA
ST -->|"LK"| SA
SA ==>|"MD assigned"| SR
style Contact fill:#bae6fd,stroke:#0369a1,color:#1f2937
style SA fill:#bae6fd,stroke:#0369a1,color:#1f2937
style SR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ST fill:#bae6fd,stroke:#0369a1,color:#1f2937
Territory & Resource Model
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
ST["ServiceTerritory"]
SR["ServiceResource"]
STM["ServiceTerritoryMember"]
OpHrs["OperatingHours"]
ST ==>|"MD"| STM
SR -->|"LK"| STM
ST -->|"LK"| OpHrs
style ST fill:#bae6fd,stroke:#0369a1,color:#1f2937
style SR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style STM fill:#bae6fd,stroke:#0369a1,color:#1f2937
style OpHrs fill:#bae6fd,stroke:#0369a1,color:#1f2937
ASCII Fallback
┌─────────────────────────────────────────────────────────────────────────────┐
│ SALESFORCE SCHEDULER DATA MODEL (L→R) │
│ Legend: LK = Lookup (-->), MD = Master-Detail (==>) │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────────────┐
│ ACCOUNT │──────────── LK ─────────────>│ SERVICE_APPOINTMENT │
│ (count) │ │ (count) │
└──────────────┘ └──────────┬───────────┘
│
┌──────────────┐ │ MD
│ CONTACT │──────────── LK ─────────────────────────┤
│ (count) │ ▼
└──────────────┘ ┌──────────────────────┐
│ ASSIGNED_RESOURCE │
┌──────────────┐ │ (count) │
│ WORK_TYPE │──────────── LK ──────────────│ │
│ (count) │ └──────────┬───────────┘
└──────────────┘ │ LK
▼
┌───────────────────┐ ┌────────────────────────────────────────┐
│ SERVICE_TERRITORY │═══ MD ═>│ SERVICE_TERRITORY_MEMBER │
│ (count) │ │ (count) │
└───────────────────┘ └────────────────────┬───────────────────┘
│ │ LK
│ LK ▼
└───────────────────────────────>┌──────────────────────┐
│ SERVICE_RESOURCE │
│ (count) │
└──────────┬───────────┘
│ MD
▼
┌──────────────────────┐
│ RESOURCE_ABSENCE │
│ (count) │
└──────────────────────┘
Key Relationships Summary
| Parent |
Child |
Type |
Behavior |
| ServiceTerritory |
ServiceTerritoryMember |
MD |
Cascade delete |
| ServiceResource |
ServiceTerritoryMember |
LK |
Resource reference |
| ServiceAppointment |
AssignedResource |
MD |
Cascade delete |
| ServiceResource |
AssignedResource |
LK |
Resource reference |
| ServiceResource |
ResourceAbsence |
MD |
Cascade delete |
| WorkTypeGroup |
WorkTypeGroupMember |
MD |
Cascade delete |
| WorkType |
WorkTypeGroupMember |
LK |
Work type reference |
| Account |
ServiceAppointment |
LK |
Customer |
| Contact |
ServiceAppointment |
LK |
Contact person |
| ServiceTerritory |
ServiceAppointment |
LK |
Service location |
| WorkType |
ServiceAppointment |
LK |
Appointment type |
Limits & Considerations
| Limit |
Value |
| Resources per territory |
Unlimited |
| Territories per resource |
Unlimited |
| Appointments per day |
Performance consideration |
| Operating hours slots |
24 per day max |
| Time slot duration |
Configurable (minutes) |
Scheduler vs Field Service
| Feature |
Scheduler |
Field Service |
| Focus |
Appointments |
Work orders |
| Optimization |
Basic |
Advanced (FSL) |
| Gantt |
No |
Yes |
| Dispatch |
Manual |
Automated |
| Mobile |
Standard app |
FSL Mobile |
Best Practices
- Use
flowchart LR - Left-to-right flow for readability
- Keep objects simple - Name + record count only
- Replace
(count) placeholders - With actual counts from query
- Add LDV indicator - For objects >2M records:
LDV[~4M]
- Color code object types - Blue=Standard, Orange=Custom, Green=External