Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.raleyapps.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Raley Emails Notifications uses a Velocity-based template language to generate dynamic message content. Templates combine static HTML or text with Velocity expressions that are evaluated at send time against the triggering Jira issue.
Cloud note: Not all HTML tags are supported in cloud templates. Certain tags are stripped for XSS security. Test your template using the Preview button before going live.

Context Variables

These variables are available in every template:
VariableDescription
$issueThe triggering Jira issue object
$issue.keyIssue key (e.g., ABC-123)
$issue.fields.summaryIssue summary
$issue.fields.status.nameCurrent status name
$issue.fields.assignee.displayNameAssignee display name
$issue.fields.assignee.emailAddressAssignee email
$issue.fields.reporter.displayNameReporter display name
$issue.fields.priority.namePriority name
$issue.fields.issuetype.nameIssue type name
$issue.fields.descriptionIssue description
$issue.fields.createdCreated date (raw)
$issue.fields.updatedLast updated date (raw)
$issue.fields.customfield_XXXXXAny custom field by its Jira field ID
$commentThe triggering comment (available on comment events)
$comment.bodyComment body text
$projectThe Jira project object
$jirassimoHelper object with utility functions

Hello World

The simplest possible template:
<p>Issue <strong>$issue.key</strong> - $issue.fields.summary has been updated.</p>
<p>Current status: $issue.fields.status.name</p>
<p><a href="$issueUrl">View issue</a></p>

Displaying Fields

Standard fields:
<p>Summary: $issue.fields.summary</p>
<p>Assignee: $issue.fields.assignee.displayName</p>
<p>Priority: $issue.fields.priority.name</p>
Custom fields (replace 10001 with your field’s actual ID):
<p>Department: $issue.fields.customfield_10001</p>

Using Conditionals

Show content only when a condition is true:
#if ($issue.fields.priority.name == "High")
  <p style="color:red;">⚠ This is a high priority issue.</p>
#end
Conditional with else:
#if ($issue.fields.assignee)
  <p>Assigned to: $issue.fields.assignee.displayName</p>
#else
  <p>This issue is currently unassigned.</p>
#end

Iterating with #foreach

Loop over a list (e.g., issue links, components, or digest issue sets):
#foreach ($component in $issue.fields.components)
  <li>$component.name</li>
#end

Using Helpers

Format a date:
$jirassimo.formatDate($issue.fields.created, "dd MMM yyyy HH:mm")
Look up a setting value (e.g., map a user email to a Slack channel):
$jirassimo.settingValue($issue.fields.customfield_10000)

Predefined Templates

The app includes ready-made templates for common use cases accessible from the Template Wizard inside the notification editor. Use these as a starting point rather than building from scratch. Available predefined templates include:
  • Basic issue notification
  • Customer request update (JSM)
  • Approval required (JSM)
  • Comment notification
  • Status change notification
  • Digest summary

Examples of Version and Project Data

Access project-level data:
<p>Project: $project.name ($project.key)</p>
Access version data (for version-triggered notifications):
#if ($version)
  <p>Version: $version.name — Released: $version.released</p>
#end

Need Help?


Explore Other RaleyApps

Raley Intake Forms

Create powerful intake forms directly inside Jira and JSM.

Raley Procurement and Quotation

Manage purchase orders and sales quotes from within Jira.

Raley Bookman

Asset booking management inside the JSM portal.

Raley Favorites

Save and quickly access your most important Jira issues.
Browse all RaleyApps on the Atlassian Marketplace →