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
ExpandOptionalComma-separated list of additional data to include in the response. Common values: description, lead, issueTypes, url. If omitted, only key, name, and type are returned.

Sample Configuration

{
  "resource": "project",
  "operation": "list",
  "Host": "https://acmecorp.atlassian.net",
  "Email": "automation@acmecorp.com",
  "ApiToken": "{{ $credentials.jiraApiToken }}",
  "Expand": "description,lead"
}

Validation Errors

Error CodeCause
VAL_INVALID_EXPANDExpand contains an unrecognised expand parameter name.
AUTH_FAILEDInvalid credentials or expired API token.

Output Fields

FieldTypeDescription
statusstring"success" or "error"
projectsarrayArray of project objects. Each has key, name, type (software, business, service_desk), and optionally lead and description if expanded.
totalintegerTotal number of projects returned.
resourcestringAlways "project"
operationstringAlways "list"

Sample Output

{
  "status": "success",
  "projects": [
    {
      "key": "OPS",
      "name": "Operations",
      "type": "software",
      "lead": "Sarah Chen",
      "description": "Production operations and incident management"
    },
    {
      "key": "DEV",
      "name": "Development",
      "type": "software",
      "lead": "Marcus Webb",
      "description": "Core product engineering"
    },
    {
      "key": "SUPPORT",
      "name": "Customer Support",
      "type": "service_desk",
      "lead": "Priya Nair",
      "description": "Customer-facing support tickets"
    }
  ],
  "total": 3,
  "resource": "project",
  "operation": "list"
}

Expression Reference

ExpressionTypeExample ValueUse
{{ $output.listProjects.projects }}arrayAll project objectsLoop for per-project reporting
{{ $output.listProjects.total }}integer3Count total accessible projects
{{ $output.listProjects.projects.map(p => p.key) }}array["OPS", "DEV", "SUPPORT"]Build project key allow-list for validation
{{ $output.listProjects.projects.find(p => p.key === "OPS") }}objectOPS project objectVerify a project exists before creating issues
{{ $output.listProjects.projects.filter(p => p.type === "software") }}arraySoftware projects onlyFilter to engineering projects for sprint reporting

Node Policies & GuardRails

Workflow Examples

Example 1 — Validate Project Key Before Issue Creation

// Step 1: project/list
{
  "resource": "project",
  "operation": "list"
}
// Step 2: IfCondition — validate that requested project key exists
// Condition: $output.listProjects.projects.some(p => p.key === $json.requestedProject)
// Step 3 (if valid): issue/create
// Step 3 (if invalid): StopWorkflow with error message "Project not found"

Example 2 — Cross-Project Issue Count Report

// Step 1: project/list
// Step 2: Loop over projects
// Step 3 per project: issue/getAll
{
  "Jql": "project = {{ $loopItem.key }} AND status != Done AND created >= -30d",
  "Limit": 1
}
// (Only fetching 1 result to get the total count efficiently)
// Step 4: MongoDB/insert — record { project: $loopItem.key, openIssues: $output.getAllIssues.total }