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 Jira issue key to retrieve. Format: {PROJECT}-{NUMBER}. Example: PROJ-123, OPS-47. Case-insensitive.
Single-field input: issue/get requires only the issue key. All available fields are returned automatically — there is no field-selection filter. To retrieve multiple issues at once, use issue/getAll with a JQL query.

Sample Configuration

{
  "resource": "issue",
  "operation": "get",
  "Host": "https://acmecorp.atlassian.net",
  "Email": "automation@acmecorp.com",
  "ApiToken": "{{ $credentials.jiraApiToken }}",
  "IssueKey": "{{ $json.jiraIssueKey }}"
}

Validation Errors

Error CodeCause
VAL_MISSING_ISSUE_KEYIssueKey is empty or null.
VAL_INVALID_ISSUE_KEY_FORMATIssueKey does not match the PROJ-NNN pattern.
ISSUE_NOT_FOUNDNo issue exists with the given key, or the authenticated user lacks access to it.
AUTH_FAILEDInvalid credentials or expired API token.

Output Fields

FieldTypeDescription
statusstring"success" or "error"
issueIdstringInternal Jira numeric ID. Example: "10482"
issueKeystringIssue key. Example: "PROJ-123"
summarystringIssue title / one-line summary.
descriptionstringIssue description body. May be null if not set.
status_valstringCurrent workflow status name. Example: "In Progress", "To Do", "Done".
prioritystringPriority name. Example: "High", "Medium".
assigneestringDisplay name of the current assignee. Null if unassigned.
resourcestringAlways "issue"
operationstringAlways "get"

Sample Output

{
  "status": "success",
  "issueId": "10482",
  "issueKey": "PROJ-123",
  "summary": "[P1 ALERT] Payment gateway timeout — checkout-service",
  "description": "Service: checkout-service\nEnv: production\n\nERROR: Connection timeout after 30s to payment-gw.internal:8443",
  "status_val": "In Progress",
  "priority": "Highest",
  "assignee": "Sarah Chen",
  "resource": "issue",
  "operation": "get"
}

Expression Reference

ExpressionTypeExample ValueUse
{{ $output.getIssue.summary }}string"[P1 ALERT] Payment timeout"Include in Slack message or report
{{ $output.getIssue.status_val }}string"In Progress"Gate transitions — skip if already "Done"
{{ $output.getIssue.assignee }}string"Sarah Chen"Address notifications to the current assignee
{{ $output.getIssue.priority }}string"Highest"Route high-priority issues to dedicated escalation channel
{{ $output.getIssue.issueKey }}string"PROJ-123"Build browse URL: https://acmecorp.atlassian.net/browse/{{ $output.getIssue.issueKey }}
{{ $output.getIssue.description }}stringFull description textExtract context for downstream enrichment

Node Policies & GuardRails

Workflow Examples

Example 1 — Status Gate Before Transition

Read current issue status before attempting a workflow transition to avoid invalid transition errors.

// Step 1: issue/get
{
  "resource": "issue",
  "operation": "get",
  "IssueKey": "{{ $json.issueKey }}"
}

// Step 2: IfCondition — gate on status
// Condition: {{ $output.getIssue.status_val }} !== "Done"

// Step 3 (if not done): issue/executeTransition
{
  "resource": "issue",
  "operation": "executeTransition",
  "IssueKey": "{{ $json.issueKey }}",
  "TransitionId": "{{ $json.transitionId }}"
}

Example 2 — Enrich PR Notification with Jira Context

GitHub webhook triggers on PR open → extract Jira key from branch name → fetch issue → post enriched Slack alert.

// Step 1: WebhookTrigger (GitHub PR opened)
// Step 2: Extract issue key from branch name (e.g. "feature/PROJ-123-payment-fix")
// Step 3: issue/get with extracted key
{
  "resource": "issue",
  "operation": "get",
  "IssueKey": "{{ $json.extractedKey }}"
}

// Step 4: Slack/postMessage
{
  "channel": "#engineering",
  "text": "PR opened: {{ $json.pr.title }}\n*Jira:* {{ $output.getIssue.summary }} ({{ $output.getIssue.status_val }})\n*Assignee:* {{ $output.getIssue.assignee }}\n*Priority:* {{ $output.getIssue.priority }}"
}