approvers field of an Approval Rule captures exactly this shape with a hierarchy of tiers.The shape of an approver hierarchy
tiers: an ordered array of one to five tiers. Every tier must be approved, in order, for the hierarchy to complete.- Within a tier,
and: a list of groups that must all be satisfied (logical AND). - Within a group,
or: a list of approver roles where any one satisfies the group (logical OR).
Building up the logic
Start simple and add only the structure you need.
apac-manager approves.POST /{projectKey}/as-associate/{associateId}/in-business-unit/key=atlas-apac/approval-rules HTTP/1.1
Content-Type: application/json
{
"name": "Manager sign-off",
"status": "Active",
"predicate": "totalPrice > \"2000.00 AUD\"",
"requesters": [ { "associateRole": { "typeId": "associate-role", "key": "apac-buyer" } } ],
"approvers": {
"tiers": [
{ "and": [ { "or": [ { "associateRole": { "typeId": "associate-role", "key": "apac-manager" } } ] } ] }
]
}
}
{
"tiers": [
{
"and": [
{
"or": [
{ "associateRole": { "typeId": "associate-role", "key": "apac-director" } },
{ "associateRole": { "typeId": "associate-role", "key": "apac-deputy-director" } }
]
},
{
"or": [
{ "associateRole": { "typeId": "associate-role", "key": "compliance-reviewer" } }
]
}
]
}
]
}
{
"tiers": [
{ "and": [ { "or": [ { "associateRole": { "typeId": "associate-role", "key": "apac-manager" } } ] } ] },
{ "and": [ { "or": [ { "associateRole": { "typeId": "associate-role", "key": "finance-director" } } ] } ] }
]
}
Design for approver absence
An approver hierarchy that names a single approver stalls the moment that person is on vacation, is reassigned, or is deactivated. Because approvers are Associate Roles rather than individuals, several people can hold the approving role, but a rule still blocks if no active holder is available. Design for absence from the start:
- Assign approving roles to several people. More than one holder of a role means any of them can clear the tier.
- Use OR groups for interchangeable approvers. An
orof two roles, such as a director and a deputy director, lets either approve when the other is away. - Provide a higher-tier fallback. A senior role, or a manager who also holds a routine approver's role, can step in when the usual approver is unavailable.
Governance that cannot be satisfied is worse than none, because it silently blocks legitimate orders. Build at least one backup path into every tier that would otherwise depend on one person.
Tracking who is needed now
currentTierPendingApprovers field. That field is what a buyer portal reads to notify the right people at each stage, and you will use it on the next page when tracing a live flow. Designing the tiers well here is what makes those notifications meaningful: each tier should correspond to a real decision point in the organization.Worked example: three Atlas approval shapes
Design approver hierarchies for three escalating Atlas APAC scenarios, all on top of the threshold predicates from the previous page.
- Routine spend (single approver). Orders over AUD 2,000: one tier requiring
apac-manager. Fast, single sign-off for everyday purchasing. - Significant spend (AND/OR in one tier). Orders over AUD 5,000: one tier where either
apac-directororapac-deputy-directorapproves, andfinance-controllerapproves. The OR gives cover when one director is unavailable; the AND guarantees finance always sees it. - Strategic spend (sequential tiers). Orders over AUD 50,000: tier one is the significant-spend tier above; tier two adds
finance-directoralone. The large deal must clear the same controls and then escalate to a final sign-off, in order.
Each design uses only as much structure as the decision needs, and never more than five tiers.
Key takeaways
- An approver hierarchy is
tiers(1–5, ordered) →andgroups (all required) →orapprovers (any one required); each leaf is an Associate Role. - All tiers must approve in sequence; within a tier, AND-groups can be satisfied in any order.
- Use OR for interchangeable approvers (cover for absence) and AND for mandatory parallel approvers (such as finance plus a director).
- Design for approver absence: assign approving roles to several people, use OR groups for interchangeable approvers, and provide a higher-tier fallback so one person's absence cannot block an order.
- The active tier's outstanding roles surface as
currentTierPendingApprovers, which drives stage-by-stage notifications.