Pre-validate territory operations before execution to prevent errors
From opspal-salesforcenpx claudepluginhub revpalsfdc/opspal-commercial --plugin opspal-salesforce[operation] [options]Validate territory operations before execution to catch errors early.
/territory-validator [operation] [options]
| Operation | Description |
|---|---|
create-model | Validate new model can be created |
add-territory | Validate territory addition |
assign-users | Validate user assignments |
assign-accounts | Validate account assignments |
delete | Validate safe deletion |
activate | Validate model can be activated |
/territory-validator activate --model-id=0MCxxxxxxxxxx
/territory-validator add-territory --model-id=0MC... --parent-id=0MI... --name="US West"
/territory-validator assign-users --csv=user_assignments.csv
/territory-validator delete --territory-id=0MI...
When the user invokes this command, perform validation for the specified operation:
create-model:Check:
add-territory:Use pre-validator script:
node scripts/territory/territory-pre-validator.js $ORG create \
--model-id=$MODEL_ID \
--parent-id=$PARENT_ID \
--type-id=$TYPE_ID \
--developer-name=$DEV_NAME
Checks:
assign-users:If CSV provided:
node scripts/territory/territory-bulk-assignment.js $ORG user $CSV --dry-run
If single assignment:
-- Check user is active
SELECT Id, IsActive FROM User WHERE Id = '[user_id]'
-- Check territory exists
SELECT Id, Name FROM Territory2 WHERE Id = '[territory_id]'
-- Check for duplicate
SELECT Id FROM UserTerritory2Association
WHERE UserId = '[user_id]' AND Territory2Id = '[territory_id]'
assign-accounts:If CSV provided:
node scripts/territory/territory-bulk-assignment.js $ORG account $CSV --dry-run
If single assignment:
-- Check account exists
SELECT Id, Name FROM Account WHERE Id = '[account_id]'
-- Check territory exists
SELECT Id, Name FROM Territory2 WHERE Id = '[territory_id]'
-- Check for exclusion
SELECT Id FROM Territory2ObjectExclusion
WHERE ObjectId = '[account_id]' AND Territory2Id = '[territory_id]'
-- Check for duplicate
SELECT Id FROM ObjectTerritory2Association
WHERE ObjectId = '[account_id]' AND Territory2Id = '[territory_id]'
delete:Use safe delete script in dry-run mode:
node scripts/territory/territory-safe-delete.js $ORG territory $TERRITORY_ID --dry-run
Reports:
activate:Use lifecycle manager:
node scripts/territory/territory-model-lifecycle.js $ORG validate $MODEL_ID
Checks:
═══════════════════════════════════════════════════════════
TERRITORY VALIDATION: [operation]
═══════════════════════════════════════════════════════════
CHECKS PERFORMED:
───────────────────────────────────────────────────────────
✅ [Check Name]: [Pass message]
❌ [Check Name]: [Fail message]
⚠️ [Check Name]: [Warning message]
RESULT: [PASS / FAIL / WARNINGS]
───────────────────────────────────────────────────────────
[Additional details or suggestions]
═══════════════════════════════════════════════════════════
/territory-discovery - Discover current configuration/territory-assign - Execute assignmentssfdc-territory-orchestrator - Master coordinator with built-in validationsfdc-territory-deployment - Deployment with validation pipeline