Blog ·
Jira smart values: the date ones a scheduled rule needs
Jira smart values are placeholders in double curly brackets that Jira Automation replaces with real data when a rule runs. {{issue.summary}} becomes the title of the work item the rule is acting on, and {{now.plusDays(7).jiraDate}} becomes a date a week from the run. They are what turns one fixed rule into one that writes a different title, due date or message every time. This guide covers how to read them, then the date and time values that a scheduled rule leans on, the traps in them, and how to test one before it lands in a hundred ticket titles.
Statements about Jira Automation are as of September 2026, from Atlassian's own documentation. Atlassian's pages now call a rule a flow. This guide says rule, which is still the word most Jira admins use.
How a smart value reads #
Atlassian's documentation describes the syntax this way:
Each smart value is constructed using a specific syntax called dot notation inside double mustache brackets.
A smart value starts with an object and walks down through its properties:
| Smart value | What it returns |
|---|---|
{{issue.key}} |
The key of the work item the rule is acting on |
{{issue.summary}} |
Its summary |
{{issue.assignee.displayName}} |
The name of its assignee |
{{issue.duedate}} |
Its due date |
{{issue.url}} |
A link to it |
{{createdIssue}} |
The previous work item the rule itself created |
{{now}} |
The current date and time |
Atlassian's tip for an unfamiliar one is to read it backwards: {{issue.assignee.displayName}} is the display name of the assignee of the work item.
Anything followed by parentheses is a function, an operation on the value. {{now.plusDays(5)}} adds five days to the current time. {{issue.summary.toLowerCase()}} lowercases the summary. Functions chain, so you can move a date and then format it in one expression.
Two more pieces of syntax are worth knowing on day one:
- A default for an empty value. A smart value that points at nothing returns nothing, silently. Adding a pipe and a quoted fallback, as in
{{issue.assignee.displayName|"Unassigned"}}, prints the fallback instead. - A loop over a list. Putting
#in front of a value that holds several items repeats the enclosed text for each one, and{{/}}closes it.{{#issue.comments}}Author: {{author.displayName}}{{/}}prints every comment author.
Jira smart values for dates: the formats #
Date values matter most when a rule runs on a schedule, because a scheduled rule usually has to say which week or month its ticket is for. {{now}} on its own prints a raw timestamp, such as 2020-08-18T02:40:37.0+0000 in Atlassian's example. That is rarely what you want in a title, so you add a format to the end.
These are the formats Atlassian lists, shown with its own sample date:
| Format | Output |
|---|---|
jiraDate |
1979-11-01 |
jiraDateTime |
1979-11-01T06:23:12.0-0500 |
shortDate |
11/1/79 |
mediumDate |
Nov 1, 1979 |
longDate |
November 1, 1979 |
fullDate |
Thursday, November 1, 1979 |
shortTime |
6:23 AM |
format("dd/MM/yyyy") |
01/11/1979 |
So Weekly report {{now.jiraDate}} produces Weekly report 2026-09-30, and {{now.format("MMMM yyyy")}} produces September 2026. The format() function takes Java date patterns, which is where month names, week numbers and custom separators come from.
Use jiraDate when the value goes into a date field. A due date field wants a date in that shape. The friendlier formats are for text: summaries, descriptions, comments, emails.
Date math #
You can move a date before you format it.
| Function | What it does |
|---|---|
plusDays(n), minusDays(n) |
Moves by calendar days. Weeks, months, years, hours and minutes work the same way |
plusBusinessDays(n) |
Moves by working days |
toBusinessDay |
The same date if it is a working day, otherwise the next one |
toBusinessDayBackwards |
The previous working day |
startOfMonth, endOfMonth |
The start or end of the month |
firstBusinessDayOfMonth, lastBusinessDayOfMonth |
The first or last working day of the month |
firstOfTheMonth(1) |
The first Monday of the month (1 is Monday, 7 is Sunday) |
lastOfTheMonth(5) |
The last Friday of the month |
ofTheMonth(2, 1) |
The second Monday of the month |
withNextDayOfWeek("TUE") |
The next Tuesday |
diff(date).days |
The distance between two dates, in the unit you name |
A few combinations cover most recurring work:
- Due in a week:
{{now.plusDays(7).jiraDate}} - Due in three working days:
{{now.plusBusinessDays(3).jiraDate}} - Due at month end:
{{now.endOfMonth.jiraDate}} - Age of a ticket in a comment:
{{now.diff(issue.created).days.abs}} days old
Three traps in date smart values #
{{now}} is in UTC #
Atlassian's reference says {{now}} "Returns the current date and time in UTC+00:00". A rule that runs at 8:00 on Monday in Sydney runs while it is still Sunday in UTC, so {{now.jiraDate}} prints Sunday's date in the title. Teams west of UTC hit the same thing with evening runs.
The fix is to convert first: {{now.convertToTimeZone("Australia/Sydney").jiraDate}}. Note that there are two similar functions. convertToTimeZone works out what the time is in that zone. setTimeZone keeps the same clock time and only relabels the zone, which is almost never what a title needs.
A working day is Monday to Friday #
Every function with BusinessDay in its name uses one definition of a working day. The reference defines one as Monday to Friday, 9am to 6pm. The page describes no holiday calendar and no setting for a different working week. {{now.plusBusinessDays(3)}} will land on a public holiday without complaint, and a team that works Sunday to Thursday gets dates counted for someone else's week.
A misspelled value fails quietly #
A smart value that matches nothing returns an empty value. The rule still runs, the ticket is still created, and the title reads Weekly report followed by a blank. Nothing in the ticket tells you a smart value was supposed to be there. This is why testing matters more here than in most of Jira.
How to test a smart value #
Atlassian documents three tools, and they are quick to use.
- Check for errors. In the rule builder, open More actions and select Check for errors before you save. It validates what you typed in the fields.
- The Log action. Build a throwaway rule with the Manual trigger from work item, add a Log action containing the smart value, run it from any work item, and read the result in the audit log.
{{#debug}}. Wrap a smart value in{{#debug}}and{{/}}inside a real rule. It is processed as normal and its value is also printed to the audit log, so you do not need an extra step.
Atlassian also suggests copying a rule and disabling the original before you experiment, so there is always a working version to go back to.
Test with the trigger the rule will really use. The smart values panel only lists values valid for that trigger and those steps. A scheduled rule with no JQL has no work item to act on, so {{issue.summary}} is empty there. In that kind of rule the values you can count on are {{now}} and, after a create action, {{createdIssue}}.
Smart values in a recurring ticket #
The most common scheduled rule creates the same ticket every week or month. Smart values do three jobs in it:
- Tell the tickets apart.
Access review {{now.format("MMMM yyyy")}}instead of twelve tickets a year all called Access review. - Set the due date.
{{now.plusBusinessDays(5).jiraDate}}in the due date field. - Link the follow-up. After the create action,
{{createdIssue.key}}lets a later step comment on, or add subtasks to, the ticket that was just made.
Our Jira automation examples guide builds six of these rules step by step, and the cron expression guide covers the schedule side. If you are choosing between approaches, Jira recurring tasks compares them.
A shorter route for recurring titles and dates #
If recurring tickets are the only reason you are learning smart values, an app built for that job asks for much less. Recurring Work Items for Jira is ours. A rule in it is a schedule plus a ticket template, and the template accepts a small set of tokens in the summary, the description, the due date and every subtask.
| The job | Jira Automation smart value | Recurring Work Items token |
|---|---|---|
| Run date in the title | {{now.jiraDate}}, in UTC unless converted |
{{now.date}}, read in the rule's own time zone |
| Month name and year | {{now.format("MMMM yyyy")}} |
{{now.monthName}} {{now.year}} |
| Due a week after the run | {{now.plusDays(7).jiraDate}} |
{{now.plusDays(7).date}}, or the 1 week after option |
| A counter in the title | Build one yourself | {{occurrence.number}} |
| A misspelled placeholder | Prints an empty value | The editor refuses to save and names the token |
| Run lands on a non-working day | Add a condition to the rule | A setting on the rule, using the project's working week |
The token list is deliberately short. It covers the run's date and time, date arithmetic, the rule's name and the occurrence count. There is no access to fields of other work items, no lists, no math expressions and no text functions.
When smart values are the right tool #
Stay with Jira Automation and its smart values when:
- The rule reacts to an event. A transition, a comment, a field change. Our app only creates work on a schedule.
- You need data from the work item. Assignee names, custom fields, linked items, comment lists. Tokens know about the run and the rule, nothing else.
- You need text or number handling. Substrings, conditional logic, sums across subtasks.
- One or two scheduled rules are all you have, and they already work. A tested smart value is a perfectly good way to title a ticket.
The app earns its place when a project has many recurring tickets, when the working week or holidays matter, or when a silently blank title has already cost somebody a morning.
Common questions #
Where do I type a smart value? In any field of a rule step that shows the double curly brackets button. Selecting it opens a panel of the values that are valid for that rule.
Why is my smart value empty? Usually a typo, a field that has no value on that work item, or a rule with no work item in scope. Add a default with the pipe syntax while you find out, and log the value to see what it returns.
Why is the date one day off? {{now}} is UTC. Convert it with convertToTimeZone before formatting.
Can smart values skip public holidays? The working-day functions count Monday to Friday. The date and time reference describes no holiday list.
Do parentheses matter? For date formats, no. Atlassian notes that {{now.jiraDate}} and {{now.jiraDate()}} return the same result.