Portal Community

When to Use

Configuration

Connection

FieldRequiredDescription
HostRequiredJira instance base URL. Example: https://acmecorp.atlassian.net
EmailRequiredAtlassian account email. Example: automation@acmecorp.com
ApiTokenRequiredAPI token from Atlassian security settings. Store in Credentials Manager.

Operation Fields

FieldRequiredDescription
IssueKeyRequiredThe key of the issue to send the notification about. Example: OPS-347.
SubjectRequiredEmail subject line. Example: "[P1 ESCALATION] Payment gateway incident — OPS-347". Supports expression interpolation.
MessageRequiredEmail body text. Plain text, supports newlines. Supports expression interpolation for dynamic content. Recipients will also receive the standard Jira issue link.
ToUsersOptionalArray 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 CodeCause
VAL_MISSING_ISSUE_KEYIssueKey is empty or null.
VAL_MISSING_SUBJECTSubject is empty or null.
VAL_MISSING_MESSAGEMessage is empty or null.
USER_NOT_FOUNDOne or more usernames in ToUsers do not exist in the Jira instance.
ISSUE_NOT_FOUNDNo issue exists with the given key, or insufficient access.
AUTH_FAILEDInvalid credentials or expired API token.

Output Fields

FieldTypeDescription
statusstring"success" or "error"
issueKeystringKey of the issue the notification was sent about.
notifiedbooleantrue if the notification was accepted by Jira for delivery.
resourcestringAlways "issue"
operationstringAlways "notify"

Sample Output

{
  "status": "success",
  "issueKey": "OPS-347",
  "notified": true,
  "resource": "issue",
  "operation": "notify"
}

Expression Reference

ExpressionTypeExample ValueUse
{{ $output.notifyIssue.notified }}booleantrueConfirm notification was dispatched before logging
{{ $output.notifyIssue.issueKey }}string"OPS-347"Reference in audit log entry

Node Policies & GuardRails

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"
  ]
}