Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Pending Approvers Reminder email and Approval Group Status

Natasha Richardson
December 9, 2024

Hello,

I am going to try and be as descriptive as possible here and full disclosure I am new to using the template language. I am working with some of the limitations of JSM and approval groups. We need to achieve 2 things: Send an email reminder to pending approvers; Add a comment stating the status of each groups approval. The overall goal is to understand which group has approved and which group is still pending since JSM does not show this status in the JSM portal.

Challenges for first scenario 

When groups are designated as approvers, every member of those groups are individually listed on the API side, without any association to their respective groups. When one member fulfills the approval requirement for their group, the approval status of the other members remains marked as pending. The entire approval step is linked to both groups; therefore, even if one member has approved (we have configured it so that only one approval is necessary from each group), the finalDecision flag continues to indicate pending. Consequently, when utilizing the Pending Approvers group to send email reminders, all users receive the email, regardless of whether their group approval has been fulfilled.

API example:

 

id": "XXX",

"name": "Name of your Approval Step",

"finalDecision": "pending",

"canAnswerApproval": false,

"approvers": 

[{"approver": 

{"accountId": "useraccountid ",

"emailAddress": "useremailaddress ",

"displayName": "userdisplayname "

"active": true,

"approverDecision": "approved"

 

 

My workaround

Apparently, you can use smartvalues in the Send Email To field and so I've tried this which is kind of working but it's not looping through all of the users for some reason

Create Variable

VariableName: pendingApproverEmails

Smart value: {{#issue.Approvals}}{{#if(equals(name, "Name of approval step"))}}{{#approvers}}{{#if(equals(approverDecision, "pending"))}}{{approver.emailAddress}},{{/}}{{/}}{{/}}{{/}}

The output is this: ,username@ourdomain.com,,

There should be 3 users it finds and sends the email to in this test case

(Update: Actually this won't work and just presents the same problem. All users with a 'pending' status will receive the email even if someone from their group has already provided the approval.)

 

Challenges for second scenario 

The second scenario, I think I am just having issues with the template logic.

I keep getting "Closing tag (if) does not match opening tag error."

 

atlcommuniyu.PNG

 

 

I am open to other suggestions on how to achieve this so please feel free to add your thoughts on that as well.

Thank you!

2 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

0 votes
Shreyas_Quietmill
Atlassian Partner
July 22, 2026
(Disclosure: I'm a Marketplace vendor in this space; partial answer below.)
You have found a real data-model limitation, not just a template-syntax issue: the approvals API reports every member as an individual approver with an individual decision, and it keeps no link back to the group that put them there. So once one member of a group approves, Jira still reports the other members as "pending" — nothing in the data says their group is satisfied. Any smart-value template is working against that upstream data model, which is why the group-aware filtering will not work correctly no matter how the if-blocks are arranged.

Practically: your goal 1 (remind only pending approvers) is achievable — both via automation smart values on pending approvers, and it is what my app Approval Nudge does out of the box (reminder comments mentioning only approvers whose decision is still pending, with caps, escalation, and optional re-send of Jira's real approval email). Your goal 2 (comment which groups have approved vs pending) is not something it solves — to be clear about that, since it is half your question: group-level aggregation would need the group-to-member mapping maintained somewhere Jira does not keep it. If goal 1 alone is worth solving properly — pricing: free for sites with up to 10 JSM agents; larger sites pay $0.75 per agent per month — full pricing on the Marketplace page:
Questions welcome — I'll answer here.
Evie Z_
Community Manager
Community Managers are Atlassian Team members who specifically run and moderate Atlassian communities. Feel free to say hello!
July 27, 2026

@Shreyas_Quietmill 
This topic is now closed as the discussion has become outdated. If you have more questions or want to continue the conversation, feel free to start a new topic. For more details on why we close older threads, check out our Rules of engagement - Atlassian Community .
Thank you for your understanding!

Like Shreyas_Quietmill likes this
0 votes
Arbab Ali
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
July 6, 2025

Group 

DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
PREMIUM
TAGS
AUG Leaders

Atlassian Community Events