When to Use
- SLA breach escalation: When an issue breaches its response SLA, a workflow automatically sends a Jira notification to the support manager and team lead with a message detailing the issue key, customer name, breach duration, and current assignee.
- Stakeholder status updates: When a critical issue transitions to "In Progress", notify all stakeholders (product owner, account manager, customer success) via Jira's built-in notification so they receive a branded email with a direct Jira link.
- Release notification: When issues are moved to "Released" status in batch (post-deployment workflow), notify the QA lead and product manager for each issue so they can coordinate user acceptance testing.
- Incident team assembly: When a P1 incident issue is created, immediately notify the engineering manager, on-call SRE, and customer success lead with the incident summary and a link to the Jira issue war room.
- Assignment notification for external contributors: When a Jira issue is assigned to an external contractor or vendor who may not receive standard Jira watchers notifications, explicitly notify them via this operation with full context.
Configuration
Connection
| Field | Required | Description |
Host | Required | Jira instance base URL. Example: https://acmecorp.atlassian.net |
Email | Required | Atlassian account email. Example: automation@acmecorp.com |
ApiToken | Required | API token from Atlassian security settings. Store in Credentials Manager. |
Operation Fields
| Field | Required | Description |
IssueKey | Required | The key of the issue to send the notification about. Example: OPS-347. |
Subject | Required | Email subject line. Example: "[P1 ESCALATION] Payment gateway incident — OPS-347". Supports expression interpolation. |
Message | Required | Email body text. Plain text, supports newlines. Supports expression interpolation for dynamic content. Recipients will also receive the standard Jira issue link. |
ToUsers | Optional | Array of Jira usernames or email addresses to notify. If omitted, Jira may use default notification scheme. Recommended to always specify explicitly. Example: ["manager@acmecorp.com", "oncall@acmecorp.com"]. |
Jira internal mail: Notifications are sent via Jira's configured SMTP. For Jira Cloud, this is Atlassian's managed email infrastructure. Delivery depends on Jira's notification settings and the recipients' email preferences. If recipients have disabled Jira email notifications in their Atlassian profile, they will not receive the email.
Sample Configuration
Escalate a breached SLA incident to management:
{
"resource": "issue",
"operation": "notify",
"Host": "https://acmecorp.atlassian.net",
"Email": "automation@acmecorp.com",
"ApiToken": "{{ $credentials.jiraApiToken }}",
"IssueKey": "{{ $json.issueKey }}",
"Subject": "[SLA BREACH] {{ $json.issueKey }} — {{ $json.issueSummary }} — Response overdue by {{ $json.breachMinutes }} minutes",
"Message": "This is an automated escalation.\n\nIssue {{ $json.issueKey }} has breached the {{ $json.slaTier }} SLA response target.\n\nCurrent Assignee: {{ $json.assignee }}\nStatus: {{ $json.status }}\nCreated: {{ $json.createdAt }}\nSLA Target: {{ $json.slaTarget }}\nOverdue By: {{ $json.breachMinutes }} minutes\n\nImmediate action required. Please update the issue or reassign to an available team member.\n\nView issue: https://acmecorp.atlassian.net/browse/{{ $json.issueKey }}",
"ToUsers": [
"engineering-manager@acmecorp.com",
"support-lead@acmecorp.com",
"{{ $json.assignee }}"
]
}
Validation Errors
| Error Code | Cause |
VAL_MISSING_ISSUE_KEY | IssueKey is empty or null. |
VAL_MISSING_SUBJECT | Subject is empty or null. |
VAL_MISSING_MESSAGE | Message is empty or null. |
USER_NOT_FOUND | One or more usernames in ToUsers do not exist in the Jira instance. |
ISSUE_NOT_FOUND | No issue exists with the given key, or insufficient access. |
AUTH_FAILED | Invalid credentials or expired API token. |
Output Fields
| Field | Type | Description |
status | string | "success" or "error" |
issueKey | string | Key of the issue the notification was sent about. |
notified | boolean | true if the notification was accepted by Jira for delivery. |
resource | string | Always "issue" |
operation | string | Always "notify" |
Sample Output
{
"status": "success",
"issueKey": "OPS-347",
"notified": true,
"resource": "issue",
"operation": "notify"
}
Expression Reference
| Expression | Type | Example Value | Use |
{{ $output.notifyIssue.notified }} | boolean | true | Confirm notification was dispatched before logging |
{{ $output.notifyIssue.issueKey }} | string | "OPS-347" | Reference in audit log entry |
Node Policies & GuardRails
- Do not use for high-volume broadcast: This operation sends individual notifications via Jira's email system. For broad communications to many recipients, use a dedicated email node (EmailSmtp) or Slack. Jira notification emails are intended for issue-contextual alerts.
- Respect user notification preferences: Recipients can disable Jira email notifications in their Atlassian profile. Do not rely solely on this operation for critical escalations — pair it with a Slack notification as a fallback.
- Rate limiting applies: Sending bulk notifications in a tight loop may trigger Jira's rate limiter. Use Delay nodes between notification calls in batch workflows.
- Validate recipients: Always validate that
ToUsers addresses correspond to actual Jira users to avoid USER_NOT_FOUND errors breaking the workflow. Use user/get to validate recipients before calling notify.
Workflow Examples
Example 1 — SLA Breach Escalation
// Step 1: ScheduledTrigger (every 15 minutes)
// Step 2: issue/getAll — find SLA-breached issues
{
"Jql": "project = SUPPORT AND issuetype = Bug AND priority = High AND created <= -4h AND status != Done",
"Limit": 50
}
// Step 3: Loop over issues
// Step 4 per issue: issue/notify
{
"IssueKey": "{{ $loopItem.key }}",
"Subject": "[SLA BREACH] {{ $loopItem.key }} — {{ $loopItem.summary }}",
"Message": "Issue {{ $loopItem.key }} has exceeded the 4-hour response SLA.\nAssignee: {{ $loopItem.assignee }}\nCreated: {{ $loopItem.created }}\n\nImmediate action required.",
"ToUsers": ["support-manager@acmecorp.com"]
}
Example 2 — Incident Stakeholder Notification on P1 Creation
// Triggered after issue/create creates a P1 incident
{
"resource": "issue",
"operation": "notify",
"IssueKey": "{{ $output.createIssue.issueKey }}",
"Subject": "[P1 INCIDENT CREATED] {{ $output.createIssue.issueKey }} — {{ $json.alert.title }}",
"Message": "A P1 incident has been automatically created.\n\nSummary: {{ $json.alert.title }}\nService: {{ $json.alert.service }}\nEnvironment: production\n\nAll hands: please review and coordinate via the Jira issue.",
"ToUsers": [
"cto@acmecorp.com",
"engineering-manager@acmecorp.com",
"customer-success@acmecorp.com"
]
}