Skip to content
Back to skills

083 Pre F8af7215

ASecurity

Pre-built data model for Salesforce Enterprise Territory Management (Territory2) using `flowchart LR` format with color coding and relationship indicators.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
businesspythonbashnode

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 083-pre_f8af7215 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 083 Pre F8af7215?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 083 Pre F8af7215
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-083-pre-f8af7215/badge)](https://www.skillsdirectory.com/skills/tools-only-083-pre-f8af7215)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# 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:

```bash
python3 ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/scripts/query-org-metadata.py \
    --objects Territory2Model,Territory2,Territory2Type,UserTerritory2Association,ObjectTerritory2Association \
    --target-org myorg
```

---

## Mermaid Template (Preferred)

Left-to-right flowchart with color coding.

```mermaid
%%{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:

```mermaid
%%{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:

```mermaid
%%{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

1. **Use `flowchart LR`** - Left-to-right flow for readability
2. **Keep objects simple** - Name + record count only
3. **Replace `(count)` placeholders** - With actual counts from query
4. **Add LDV indicator** - For objects >2M records: `LDV[~4M]`
5. **Color code object types** - Blue=Standard, Orange=Custom, Green=External

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.