Skip to main content
A territory is a named group of members that leads can be distributed across. When an Allocate node routes a lead to a territory, Cargo picks one of its members with weighted round-robin — spreading assignments evenly (or proportionally, if you set weights) and skipping anyone who is unavailable.
Territories don’t encode region, vertical, or segment rules themselves. They’re a pool of members plus distribution weights. To route different leads to different territories, branch upstream in your workflow and point each Allocate node at the right territoryUuid.

Anatomy of a territory

FieldDescription
labelHuman-readable name (e.g. West, Enterprise EMEA).
colorVisual tag: orange, red, purple, green, yellow, or grey.
descriptionOptional free-text note.
membersThe pool of members, each with an optional weight.
fallbackMemberUuidOptional member who receives the lead when no one in the pool is available.
Each entry in members is a member uuid plus an optional weight:
[
  { "uuid": "<member-uuid>", "weight": 2 },
  { "uuid": "<member-uuid>", "weight": 1 }
]

How distribution works

When an Allocate node targets a territory, Cargo runs weighted round-robin over the pool:
  • weight: 1 (or null) — a normal share of leads. A missing weight is treated as 1.
  • weight: 2, 3, … — proportionally more leads than lower-weighted members.
  • weight: 0 — excluded from the pool entirely (no leads).
  • Unavailable members — anyone filtered out by a capacity is skipped for that assignment.
Members are ordered deterministically and the rotation position is persisted, so distribution stays even across separate play runs rather than restarting each time.

Fallback member

If every eligible member is unavailable (all at capacity, or all weighted 0), the lead goes to the fallbackMemberUuid and the resulting allocation is flagged as a fallback assignment. If no fallback is set, allocation fails with a “no members available” error — so set a fallback whenever every lead must land somewhere.

Manage territories from the CLI

cargo-ai revenue-organization territory list
cargo-ai revenue-organization territory get <uuid>

cargo-ai revenue-organization territory create \
  --label "West" --color orange \
  --members '[{"uuid":"<member-uuid>","weight":1}]' \
  --description "West-coast AEs" \
  --fallback-member-uuid "<member-uuid>"

cargo-ai revenue-organization territory update \
  --uuid "<uuid>" \
  --members '[{"uuid":"<member-uuid>","weight":2}]'

cargo-ai revenue-organization territory remove <uuid>
CommandRequiredOptional
create--label, --color, --members--description, --fallback-member-uuid
update--uuid--label, --color, --description, --members, --fallback-member-uuid
Members are CRM-synced — run cargo-ai revenue-organization member sync --connector-uuid <uuid> and member list to get the member UUIDs you reference in --members.

Route leads to a territory

Territories are consumed by the Allocate node in a play. Select the territory mode, choose the territoryUuid, and (optionally) attach a capacity to cap each member’s workload.

Capacities

Cap how many records each member can receive within a time window.

Build a play

Add an Allocate step that distributes leads across your territory.