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 list attachments for. Example: OPS-347.

Sample Configuration

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

Validation Errors

Error CodeCause
VAL_MISSING_ISSUE_KEYIssueKey is empty or null.
ISSUE_NOT_FOUNDNo issue exists with the given key, or the user lacks access.
AUTH_FAILEDInvalid credentials or expired API token.

Output Fields

FieldTypeDescription
statusstring"success" or "error"
attachmentsarrayArray of attachment metadata objects. Each has id, fileName, fileSize, mimeType, author, created.
totalintegerTotal number of attachments on the issue.
issueKeystringIssue key the attachments belong to.
resourcestringAlways "attachment"
operationstringAlways "getAll"

Sample Output

{
  "status": "success",
  "attachments": [
    {
      "id": "10044",
      "fileName": "incident-OPS-347-logs-2026-05-26-1430.txt",
      "fileSize": 48312,
      "mimeType": "text/plain",
      "author": "BizFirst Automation",
      "created": "2026-05-26T14:30:08.000Z"
    },
    {
      "id": "10045",
      "fileName": "payment-gw-screenshot-2026-05-26.png",
      "fileSize": 127448,
      "mimeType": "image/png",
      "author": "Sarah Chen",
      "created": "2026-05-26T15:12:44.000Z"
    }
  ],
  "total": 2,
  "issueKey": "OPS-347",
  "resource": "attachment",
  "operation": "getAll"
}

Expression Reference

ExpressionTypeExample ValueUse
{{ $output.getAllAttachments.attachments }}arrayAll attachment objectsLoop for archival or deletion
{{ $output.getAllAttachments.total }}integer2Check attachment count before processing
{{ $output.getAllAttachments.attachments[0].id }}string"10044"Pass to attachment/get or attachment/remove
{{ $output.getAllAttachments.attachments.map(a => a.fileSize).reduce((s,n) => s+n, 0) }}integerTotal bytesStorage consumption reporting
{{ $output.getAllAttachments.attachments.find(a => a.fileName.endsWith('.pdf')) }}objectPDF attachmentFind the compliance document attachment

Node Policies & GuardRails

Workflow Example — Archival with Dedup Guard

// Step 1: attachment/getAll — list existing attachments
{
  "IssueKey": "{{ $json.issueKey }}"
}
// Step 2: IfCondition — check if new file already exists
// Condition: !$output.getAllAttachments.attachments.some(a => a.fileName === $json.newFileName)
// Step 3 (if not duplicate): attachment/add
{
  "IssueKey": "{{ $json.issueKey }}",
  "FilePath": "{{ $json.filePath }}",
  "FileName": "{{ $json.newFileName }}"
}
// Step 4 (if duplicate): log and skip — no upload needed