Smart Values

Not all fields are born equal - some are born with extra abilities.

When a rule is run, you want to be able to customize your rule and components depending on what triggered the rule and what components have run previously. To do this we use smart fields - fields that can substitute in values at rule execution time. For example, to send an email to the reporter of the issue just created or substitute the initiator's user key into a comment action. e.g. This issue was updated by {{initiator.displayName}}.

Most actions/conditions have at least one field that is smart and we label them in the interface.  To find out what smart values are available, please jump to our more detailed documentation:

Please refer to the rule components documentation to view which component fields support smart-values.


We use the mustache library to do our smart substitutions.  We used this for security reasons as it wont allow for arbitrary code execution. The downside is that the syntax can sometimes be a little awkward.  To make a substitution you need to wrap the value in "double curly braces". E.g. {{somevalue}}

To reference child elements you simply use a dot. E.g. {{issue.key}}.

To iterate over a list please see Working with lists for more details.

Special values

{{baseUrl}} - Prints out the url of the Jira instance

{{#debug}}Hello world{{/}} - Adds the value to the Audit log and returns it.

{{now}} - References the current time. Can be used with other date functions.

{{issue.toUrl}} - Prints out the url to view the issue.

{{}} - Prints out the name of the running rule

{{}} - Accesses the user is the actor of the rule.

Accessing custom fields

We have added some sugar for accessing custom field values on issues to make it easier. Simply use the name - {{issue.My custom Field}}.

If the field is an object, you will need reference the value with in it. E.g. if it is a User custom field you will need to do - {{issue.My user field.displayName}}

The values are case insensitive and you can replace spaces with underscores. If there are multiple custom fields with same name or the same name as a system field, you will need to use the longer syntax.

Field names are translated using your rule actor's language setting.  If you are using smart-value field names for translated custom fields in your smart-values, then please use the language set for your rule actor user! If there are multiple fields of the same name you will need to use the format: {{issue.customfield_10001}}

If you want to access time tracking fields or work with more advanced issue edits, see the page on advanced fields.

Default values

If a field or value doesn't exist we typically just return an empty value. {{invalid reference}} - This doesn't print out anything.

If you always need a value you can specify a default value: {{invalid reference|"Hello world"}}. When "invalid reference" doesn't contain a value, "Hello world" will be printed.

This can be useful when using values as parameters: {{issue.dueDate.withLocale(issue.reporter.locale|"en_US")}}. This will use the US locale when there is no reporter or the reporter hasn't specified their locale.