Record an auditable timestamp of a Compliance Approval

Use case

Fields like “Compliance Approval Timestamp” should only be updated as part of specific transitions (e.g., after passing a compliance review). These must not be editable by users, to satisfy audit and regulatory requirements. This is why you don't add them to editable screens.

To update fields which are not added to the edit screen these kind of operations need to be performed or run as the "Jira Workflow Toolbox app user" to ensure the fields are consistently updated.

If you want to automatically set other potentially editable fields check out our other examples like:

Set a date field to the current date

Set a date field to a future date

Add three days skipping weekends automatically to a Date Picker

🛠️ Configuration

Target issue*

Choose Current issue

Fields*

Select a Date Time Picker field or a Date Picker field. In our use case it's called Compliance Approval Timestamp

Expression*

Set the expression editor to General mode and enter the following expression:

%{dateTimeToString({system.currentDateTime} , "YYYY-MM-DDThh:mm:ss.sZ" , RUN_AS_LOCAL, RUN_AS_LANG)}

Alternatively, the expression editor can be set to Jira expression mode and the following expression can be used:

Bash
new Date()

Run as*

Choose Jira Workflow Toolbox app user .

Pro tip

Running this post functions as the dedicated Jira Workflow Toolbox app user ensures the correct execution of the field update - whether or not the field is present on the relevant edit screen.

Use case Workflow function Parser functions
Set the due date based on the priority

Update fields

getMatchingValue()

Obtain the difference between two dates

Update fields


Assign an issue to the user who last commented on it

Update fields


Add three days skipping weekends automatically to a Date Picker

Update fields


Keep parent's priority in sync

Update fields


Set the assignee based on the issue type

Update fields

getMatchingValue()

Set the fix version to affects version when resolving an issue

Update fields


Use the app user to update non-editable fields

Update fields


Automatically add incident reporters to problem tickets

Update fields

append()

fieldValue()

linkedIssues()

toStringList()

Copy labels of a sub-task to the parent issue upon closing

Update fields


Assign an issue to the project lead, if the issue is unassigned on creation

Update fields


Add watchers from another field

Update fields

Transition issue

union()

toStringList()

Add a sub-task's summary and key to the description of its parent

Update fields


Set a date field to a future date

Update fields

dateTimeToString()

Record an auditable timestamp of a Compliance Approval

Update fields

dateTimeToString()

Copy field values from epic to issues under it after creation

Update fields Transition issue

epic()

issuesUnderEpic()

filterByStatus()

Set a date field to the current date

Update fields

dateTimeToString()

Assign important issues to the project lead

Update fields


Set the priority to Highest if the 'Infrastructure' component is selected

Update fields


Background priority calculation

Update fields

avg()