Portal Community

When to Use

Configuration

Connection

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

Operation Fields

FieldRequiredDescription
ProjectKeyRequiredThe key of the target project. Example: PROJ, DEV, SUPPORT. Case-insensitive; the node normalises to uppercase.
IssueTypeRequiredIssue type name. Accepted values: Bug, Task, Story, Epic, Sub-task. Must exist in the project's issue type scheme.
SummaryRequiredIssue title / one-line description. Maximum 255 characters. Supports expression interpolation: {{ $json.alertTitle }}.
DescriptionOptionalDetailed issue body. Plain text. Supports multi-line strings and expression interpolation for dynamic content such as stack traces.
PriorityOptionalIssue priority. Accepted values: Lowest, Low, Medium, High, Highest. Defaults to the project's default priority if omitted.
AssigneeOptionalUsername or email of the assignee. The node resolves this to an Atlassian account ID automatically. Leave empty to leave unassigned.
LabelsOptionalArray of label strings to apply. Example: ["production", "alert", "p1"]. Labels must already exist in the Jira instance or will be created automatically.
CustomFieldsOptionalJSON object of custom field values. Keys are Jira field IDs (e.g. customfield_10014). Values follow Jira field format. Example: {"customfield_10014": "EPIC-7"}.
Custom field IDs: Custom field IDs are instance-specific (e.g. customfield_10014 for Epic Link on one instance may differ on another). Discover your instance's field IDs by calling GET /rest/api/3/field on your Jira instance or by inspecting the issue create metadata endpoint.

Sample Configuration

Create a Bug from a Datadog monitoring alert:

{
  "resource": "issue",
  "operation": "create",
  "Host": "https://acmecorp.atlassian.net",
  "Email": "automation@acmecorp.com",
  "ApiToken": "{{ $credentials.jiraApiToken }}",
  "ProjectKey": "OPS",
  "IssueType": "Bug",
  "Summary": "[P1 ALERT] {{ $json.alert.title }} — {{ $json.alert.source }}",
  "Description": "## Alert Details\n\n**Alert:** {{ $json.alert.title }}\n**Service:** {{ $json.alert.service }}\n**Environment:** {{ $json.alert.env }}\n**Triggered At:** {{ $json.alert.triggeredAt }}\n\n## Error\n\n```\n{{ $json.alert.message }}\n```\n\n**Runbook:** {{ $json.alert.runbookUrl }}",
  "Priority": "Highest",
  "Assignee": "oncall@acmecorp.com",
  "Labels": ["production", "alert", "datadog", "{{ $json.alert.service }}"],
  "CustomFields": {
    "customfield_10014": "OPS-EPIC-42",
    "customfield_10020": { "id": "{{ $json.sprint.id }}" }
  }
}

Validation Errors

Error CodeCause
VAL_MISSING_PROJECT_KEYProjectKey is empty or whitespace.
VAL_MISSING_ISSUE_TYPEIssueType is empty or not a recognised value.
VAL_MISSING_SUMMARYSummary is null or empty.
VAL_SUMMARY_TOO_LONGSummary exceeds 255 characters.
VAL_INVALID_PRIORITYPriority value is not in the accepted list.
VAL_INVALID_CUSTOM_FIELDSCustomFields is not valid JSON or contains malformed field values.
AUTH_FAILEDCredentials are incorrect or the API token has been revoked.
PROJECT_NOT_FOUNDThe specified ProjectKey does not exist or the authenticated user lacks access.
ISSUE_TYPE_NOT_IN_PROJECTThe specified IssueType is not configured in the project's issue type scheme.

Output Fields

FieldTypeDescription
statusstring"success" or "error"
issueIdstringInternal numeric Jira ID for the new issue. Example: "10482"
issueKeystringHuman-readable issue key. Example: "OPS-347". Use this in downstream nodes to link, comment, or transition the issue.
selfstringFull Jira REST API URL to the created issue. Example: "https://acmecorp.atlassian.net/rest/api/3/issue/10482"
resourcestringAlways "issue"
operationstringAlways "create"

Sample Output

{
  "status": "success",
  "issueId": "10482",
  "issueKey": "OPS-347",
  "self": "https://acmecorp.atlassian.net/rest/api/3/issue/10482",
  "resource": "issue",
  "operation": "create"
}

Expression Reference

ExpressionTypeExample ValueUse
{{ $output.createIssue.issueKey }}string"OPS-347"Pass to Slack message, comment body, or downstream issue operations
{{ $output.createIssue.issueId }}string"10482"Internal ID for attachment or comment operations
{{ $output.createIssue.self }}stringJira API URLEmbed in notification messages as a direct link
{{ $output.createIssue.status }}string"success"Guard condition before downstream steps

Node Policies & GuardRails

Workflow Examples

Example 1 — Create Jira Bug from Datadog Alert

Datadog webhook fires on a P1 alert → BizFirst workflow creates the Jira issue → posts Slack notification with issue key.

// Step 1: WebhookTrigger receives Datadog alert payload
// Step 2: issue/create
{
  "resource": "issue",
  "operation": "create",
  "ProjectKey": "OPS",
  "IssueType": "Bug",
  "Summary": "[P1] {{ $json.alert.title }}",
  "Description": "Service: {{ $json.alert.service }}\nEnv: production\n\n{{ $json.alert.message }}",
  "Priority": "Highest",
  "Assignee": "{{ $json.oncallEngineer }}",
  "Labels": ["p1", "production", "auto-created"]
}

// Step 3: Slack/postMessage
{
  "channel": "#incidents",
  "text": ":red_circle: P1 Bug created: *{{ $output.createIssue.issueKey }}* — {{ $json.alert.title }}\nhttps://acmecorp.atlassian.net/browse/{{ $output.createIssue.issueKey }}"
}

Example 2 — Create Story from Approved Backlog Item

Product tool webhook sends approved backlog item → BizFirst creates Story → assigns to team.

{
  "resource": "issue",
  "operation": "create",
  "ProjectKey": "PROD",
  "IssueType": "Story",
  "Summary": "{{ $json.item.title }}",
  "Description": "**Acceptance Criteria:**\n{{ $json.item.acceptanceCriteria }}\n\n**Business Value:** {{ $json.item.businessValue }}\n**Story Points:** {{ $json.item.storyPoints }}",
  "Priority": "Medium",
  "Labels": ["{{ $json.item.epic }}", "sprint-{{ $json.sprintNumber }}"],
  "CustomFields": {
    "customfield_10016": {{ $json.item.storyPoints }}
  }
}

Example 3 — Compliance Change Request from Web Form

Change request form submission → creates Jira Task with full audit fields → notifies change advisory board.

{
  "resource": "issue",
  "operation": "create",
  "ProjectKey": "CHANGE",
  "IssueType": "Task",
  "Summary": "Change Request: {{ $json.form.systemName }} — {{ $json.form.changeType }}",
  "Description": "**Requester:** {{ $json.form.requesterEmail }}\n**System:** {{ $json.form.systemName }}\n**Change Type:** {{ $json.form.changeType }}\n**Planned Window:** {{ $json.form.plannedStart }} to {{ $json.form.plannedEnd }}\n**Justification:** {{ $json.form.justification }}\n**Rollback Plan:** {{ $json.form.rollbackPlan }}",
  "Priority": "Medium",
  "Labels": ["change-request", "{{ $json.form.environment }}", "{{ $json.form.riskLevel }}"]
}