mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 03:09:50 +08:00
10 KiB
10 KiB
Territory Management Data Model Template
Pre-built data model for Salesforce Enterprise Territory Management (Territory2) using flowchart LR format with color coding and relationship indicators.
Objects Included
| Object | Type | Description |
|---|---|---|
| Territory2Model | STD | Territory model container |
| Territory2 | STD | Individual territories |
| Territory2Type | STD | Territory classification |
| UserTerritory2Association | STD | User-to-territory assignments |
| ObjectTerritory2Association | STD | Account-to-territory assignments |
| RuleTerritory2Association | STD | Assignment rule linkage |
Query Org Metadata (Recommended)
Enrich diagram with live org data:
python3 ../../scripts/query-org-metadata.py \
--objects Territory2Model,Territory2,Territory2Type,UserTerritory2Association,ObjectTerritory2Association \
--target-org myorg
Mermaid Template (Preferred)
Left-to-right flowchart with color coding.
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
%% ═══════════════════════════════════════════════════════════════
%% ENTERPRISE TERRITORY MANAGEMENT DATA MODEL
%% LEGEND: LK = Lookup (-->), MD = Master-Detail (==>)
%% Colors: Blue = Standard, Orange = Custom, Green = External
%% ═══════════════════════════════════════════════════════════════
%% Territory Model (Container)
T2Model["Territory2Model<br/>(count)"]
%% Territory Structure
Territory2["Territory2<br/>(count)"]
T2Type["Territory2Type<br/>(count)"]
%% Associations
UserT2Assoc["UserTerritory2Association<br/>(count)"]
ObjT2Assoc["ObjectTerritory2Association<br/>(count)"]
RuleT2Assoc["RuleTerritory2Association<br/>(count)"]
%% Related Objects
User["User<br/>(count)"]
Account["Account<br/>(count)"]
%% Relationships - Model Structure
T2Model ==>|"MD"| Territory2
T2Model ==>|"MD"| T2Type
T2Type -->|"LK"| Territory2
%% Territory Hierarchy (Self-reference)
Territory2 -.->|"Parent"| Territory2
%% Relationships - User Assignments
Territory2 ==>|"MD"| UserT2Assoc
User -->|"LK"| UserT2Assoc
%% Relationships - Account Assignments
Territory2 ==>|"MD"| ObjT2Assoc
Account -->|"LK"| ObjT2Assoc
%% Relationships - Rule Assignments
Territory2 ==>|"MD"| RuleT2Assoc
%% Standard Objects - Sky Blue
style T2Model fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Territory2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
style T2Type fill:#bae6fd,stroke:#0369a1,color:#1f2937
style UserT2Assoc fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ObjT2Assoc fill:#bae6fd,stroke:#0369a1,color:#1f2937
style RuleT2Assoc fill:#bae6fd,stroke:#0369a1,color:#1f2937
style User fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
Key Concepts
Territory2Model States
| State | Description |
|---|---|
| Planning | Model being configured (not active) |
| Active | Live model in use |
| Archived | Historical model (read-only) |
Only one model can be Active at a time.
Territory Hierarchy
- Territories support ParentTerritory2Id self-lookup
- Creates hierarchy within a model
- Opportunity access rolls up through hierarchy
Assignment Types
| Object | Purpose |
|---|---|
| UserTerritory2Association | Assigns users to territories |
| ObjectTerritory2Association | Assigns accounts to territories |
| RuleTerritory2Association | Links assignment rules to territories |
Simplified Version (Core Objects Only)
For presentations focusing on core territory structure:
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
T2Model["Territory2Model"]
Territory2["Territory2"]
User["User"]
Account["Account"]
T2Model ==>|"MD"| Territory2
Territory2 -.->|"Parent"| Territory2
Territory2 -->|"assigns"| User
Territory2 -->|"assigns"| Account
style T2Model fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Territory2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
style User fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
Opportunity Territory Assignment
Territory Management also affects Opportunities:
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
Territory2["Territory2"]
Account["Account"]
Opportunity["Opportunity"]
Territory2 -->|"assigns"| Account
Account -->|"LK"| Opportunity
Territory2 -->|"Territory2Id"| Opportunity
style Territory2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Opportunity fill:#bae6fd,stroke:#0369a1,color:#1f2937
ASCII Fallback
┌─────────────────────────────────────────────────────────────────────────────┐
│ ENTERPRISE TERRITORY MANAGEMENT DATA MODEL (L→R) │
│ Legend: LK = Lookup (-->), MD = Master-Detail (==>) │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────┐ ┌──────────────────┐
│ TERRITORY2_MODEL │═══ MD ═>│ TERRITORY2 │◄──── Parent (self)
│ (count) │ │ (count) │
└────────┬─────────┘ └────────┬─────────┘
│ │
│ MD ├─── MD ──>┌────────────────────────┐
▼ │ │ USER_TERRITORY2_ASSOC │
┌──────────────────┐ │ │ (count) │
│ TERRITORY2_TYPE │── LK ───────────>┤ └───────────┬────────────┘
│ (count) │ │ │ LK
└──────────────────┘ │ ▼
│ ┌────────────────────────┐
│ │ USER │
│ │ (count) │
│ └────────────────────────┘
│
├─── MD ──>┌────────────────────────┐
│ │ OBJECT_TERRITORY2_ASSOC│
│ │ (count) │
│ └───────────┬────────────┘
│ │ LK
│ ▼
│ ┌────────────────────────┐
│ │ ACCOUNT │
│ │ (count) │
│ └────────────────────────┘
│
└─── MD ──>┌────────────────────────┐
│ RULE_TERRITORY2_ASSOC │
│ (count) │
└────────────────────────┘
Key Relationships Summary
| Parent | Child | Type | Behavior |
|---|---|---|---|
| Territory2Model | Territory2 | MD | Cascade delete |
| Territory2Model | Territory2Type | MD | Cascade delete |
| Territory2Type | Territory2 | LK | Type classification |
| Territory2 | Territory2 | LK | Parent (hierarchy) |
| Territory2 | UserTerritory2Association | MD | Cascade delete |
| Territory2 | ObjectTerritory2Association | MD | Cascade delete |
| Territory2 | RuleTerritory2Association | MD | Cascade delete |
| User | UserTerritory2Association | LK | User assignment |
| Account | ObjectTerritory2Association | LK | Account assignment |
Limits & Considerations
| Limit | Value |
|---|---|
| Territory models (total) | Unlimited (1 active) |
| Territories per model | 1,000 |
| Territory hierarchy levels | 10 |
| Users per territory | No hard limit |
| Accounts per territory | No hard limit |
| Assignment rules | 15 per model |
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