Disclosure: I build an approvals app for JSM. Nothing in this guide needs it — everything below is native behaviour.
The complete guide gives group approvals a short section: set a group as the approver source and two behaviours surprise admins — members are notified individually, and the view of who has already approved is limited. Those two sentences deserve an episode of their own, because underneath them sit a counting rule the configuration screen never states, notification gaps Atlassian tracks openly, and a pending list that does exist — one layer below the UI.
The shipped source field is Approver groups — a group picker (multiple groups). One naming trap first: the change-management doc tells you to select "Group approvals" as the approval field, but the custom-field type you actually attach is the group picker. If you're hunting the field list for something called "Group approvals", that's why you can't find it.
The interesting part is what "how many must approve" means once groups are involved. The approval step stores its configuration as workflow properties, and one of them — approval.condition.type — carries the semantics. The properties KB gives three values: number (a specific number of people, for user-picker sources), percent, and numberPerPrincipal, "when a specific number of people from each group should approve". That last value is the one the configuration screen never explains: with a group source, the count is per group, not across the pool. Two groups with "1 must approve" means one approval from each. And "everyone" means everyone in every group — an error-message KB spells it out verbatim. A correction is owed here: the previous episode said the step "doesn't understand sets". At the property layer it does, and I've amended that line there.
Two hard edges before you lean on this. The same KB warns that "Existing approval properties cannot be edited or deleted once set" — the semantics are fixed at configuration time. And the per-group counting has an open bug, JSDCLOUD-10451: with "1 per group" configured, Jira keeps asking the remaining members of a group whose quota is already satisfied. Atlassian's workaround field reads "There is no workaround at this time." Declines, meanwhile, have no threshold at all — a single decline ends the step, and the request to change that (JSDCLOUD-4223) sits Under Consideration.
Notification is individual. Each member of each group gets the approval email; there is no group-inbox concept. From there it thins out:
The gap is narrower than "the UI shows nothing". In the agent view, the approvals panel does render group state — admins in this thread report it showing the groups and the approvals within each. What is actually missing:
The per-person state exists — one layer down. GET /rest/servicedeskapi/request/{issueIdOrKey}/approval returns, for each approval, an approvers array where every entry carries the user and an approverDecision: approved, declined or pending. The API docs say it plainly: use this to determine the status of an approval and the list of approvers. Permission needed: viewing the request. This is the list the portal won't show you.
Three catches, so you don't over-trust it:
pending. An admin on this thread pasted the response body and described it exactly: members listed individually, no association to their groups, finalDecision still pending after one group's requirement was met."Approvals[Approvals]" = pending() finds requests waiting on a person, but pending() can't take a group (JSDCLOUD-15383). And the reminder email Jira itself sends has a known counting flaw — with two approvers, tickets one of them already decided still appear in the pending list (JSDCLOUD-14352, 87 votes).The sharpest failures are not display problems. They happen when the people or the configuration move while an approval is in flight:
The working model, then: counting is per group and frozen at configuration time; email is the only channel that reliably reaches every member; the agent panel shows state, the portal shows arithmetic, and the API shows people — one short of a complete picture each. And the moment a group or a configuration changes mid-flight, you are in the failure catalogue, not the docs. The complete guide links every episode as it lands.
Shreyas_Quietmill
0 comments