Smart value basics

Smart values allow you to access and manipulate pretty much any issue data from Jira. While they do take a little bit of learning, they add significant power and personality to your rules.

What are smart values?

For example the smart value {{now.plusDays(5)}} references the current time and adds 5 days to it. {‌{issue.summary}‌} will print off the summary of the issue.

Let’s look at a quick example. Say you wanted to add a comment to an issue on transition, and address the reporter and assignee of the issue that was transitioned by name. All you need to do is insert the right smart values in the appropriate places in your comment:
comment on issue transition

Why the curly brackets?

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}‌}

How do I know what smart value to use?

90% of the time, you can simply choose the smart value from the available values in our reference guide.

However, we know many people have highly customized Jira instances. If you want to dig in a little deeper to find a smart value, then we highly recommend watching Andreas (co-founder) walk you through the steps in this webinar recording.

We also recommend reading the following more detailed sections on specific uses of smart values:

If you need to apply multiple transformations in one step, you can chain functions. For example, to change an issue's summary to lowercase, and to only use the first 10 characters, and also to add "!!" to the end you could chain these together as:

{{issue.summary.toLowerCase().substring(0, 10).concat("!!")}}

Accessing issue fields

Use the field's name - {{issue.My custom field name}}.

If the field is an object, reference the value within it. E.g. if it is a User custom field do {{issue.My user field.displayName}}

Field names are case insensitive and are translated using your rule actor's language setting. If you're trying to access custom fields with translated names in your smart values, then please use the language set for your rule actor user!

If there are multiple custom fields with the same name, or have the same name as a system field, you can also use the custom field id. {{issue.customfield_10001}}

See Accessing issue fields for more detailed information.

Using # for sections and lists

When you want to iterate over a number of items, use #, and it does the same for everything captured by the smart value. When you use # you must always end with {{/}} to close it. In the example below, the action prints a list of comment authors.

{{#issue.comments}}Author: {{author.displayName}}{{/}}

To treat items as a number, when using math functions use {{#=}}. For example, to perform a simple calculation to add 100 to an "Invoice Amount" custom field on your issue you can use:

{{#=}}{{issue.Invoice Amount}} + 100{{/}}

Default values

If a field or value doesn't exist it typically just returns an empty value. {{invalid reference}}

If you must have a value, you can specify a default value. For example, When "invalid reference" doesn't contain a value, you can print "Hello world" using {{invalid reference|Hello world}}.