Anatomy of a capacity
Limit types
Fixed limit
SetmemberCapacity to the number of records each member may hold. Once a member reaches it, they’re skipped until an allocation expires (or forever, if there’s no expiration policy). Leave it null for no limit.
Expiring windows
allocationExpirationPolicy controls when past allocations stop counting, so a member’s capacity refills over time. The interval can be:
hourly, daily, weekly, monthly, quarterly, yearly, or null (never expires).
Each interval works in one of two ways:
- Sliding — a rolling window (e.g. the last 24 hours for
daily). This is the default. - Fixed boundary — the window resets at a set point (e.g. every day at
09:00UTC, or every Monday). Fixed boundaries take extra fields such astime(UTCHH:MM),weekDay(1=Monday …7=Sunday),day,month, orminutedepending on the interval.
A member’s used capacity is the count of distinct record IDs allocated to
them within the current window — re-allocating the same record doesn’t double-count.
Model-based capacity
Instead of counting only Cargo’s own allocations, a capacity can derive existing workload from a data model — for example, counting each rep’s open opportunities. SetmodelUuid and provide:
Cargo syncs those rows into allocation counts, matching each row’s owner to a member. A sync runs automatically when the linked model emits new data (and can also be triggered via the API); the capacity records when it last synced. At allocation time, both the synced historical counts and any new allocations made since the last sync are added together to decide availability.
Manage capacities from the CLI
Segmentation
--filter JSON uses the conjonction key (Cargo’s intentional
spelling). When --model-uuid is set, --filter, --id-column-slug, and
--time-column-slug are required.Apply a capacity during allocation
A capacity does nothing on its own — attach itscapacityUuid to an Allocate node. Whichever allocation mode you use (territory, members, email, or matching), members at their limit are marked unavailable and skipped; if everyone is full, the fallback member receives the lead.
Territories
Group members into pools that leads are distributed across.
Build a play
Add an Allocate step that enforces capacity limits.

