> For the complete documentation index, see llms.txt.
Skip to main content

Check out Port for yourself ➜ 

Jira integration action

The Jira integration action allows workflows to create issues directly in Jira using your installed Jira integration.

Prerequisites

  • A Jira integration installed in your Port organization.
  • The target Jira project and issue type must exist in your Jira site.
  • Your Jira credentials must have permission to create issues in the target project.
  • Actions processing must be enabled on your integration:

Enable actions processing for self-hosted installations

If you installed the Jira Ocean integration as hosted by Port (via the UI or OAuth), actions processing is enabled automatically and you can skip to Configuration.

For self-hosted deployments (Kubernetes/Helm or Docker), the actions processor is disabled by default. You need to enable it explicitly using the flags below, depending on how you deployed the integration:

Pass the following flags when installing or upgrading the Helm chart:

helm upgrade --install jira port-labs/port-ocean \
--set actionsProcessor.enabled=true \
# ... rest of your values

actionsProcessor.enabled=true - enables the actions processor so the integration can receive and execute Jira issue creation requests from Port.

Configuration

FieldTypeDescription
type"INTEGRATION_ACTION"Required. Must be "INTEGRATION_ACTION"
installationIdstringRequired. Your Jira integration installation ID
integrationProvider"jira"Required. Must be "jira"
integrationInvocationType"create_issue"Required. Operation type
integrationActionExecutionPropertiesobjectRequired. Jira-specific configuration

Execution properties

FieldTypeDescription
projectstringRequired. Jira project key (for example, OPS)
issueTypestringRequired. Issue type name (for example, Bug or Task)
summarystringRequired. Issue summary
descriptionstringIssue description
prioritystringIssue priority name (for example, High)
assigneeAccountIdstringAtlassian account ID of the assignee. Use the account ID, not the user's email address

Basic example

Create a Jira issue from a self-service trigger, passing project, issue type, and summary from the form inputs:

{
"identifier": "create-jira-issue",
"title": "Create Jira Issue",
"config": {
"type": "INTEGRATION_ACTION",
"installationId": "your-installation-id",
"integrationProvider": "jira",
"integrationInvocationType": "create_issue",
"integrationActionExecutionProperties": {
"project": "{{ .outputs.trigger.project }}",
"issueType": "{{ .outputs.trigger.issue_type }}",
"summary": "{{ .outputs.trigger.summary }}",
"description": "{{ .outputs.trigger.description }}"
}
}
}

Dynamic field values

Map workflow outputs into issue fields when you need values from earlier steps:

{
"integrationActionExecutionProperties": {
"project": "{{ .outputs.fetch_service.jira_project }}",
"issueType": "Task",
"summary": "[Port] {{ .outputs.trigger.title }}",
"description": "Created from workflow run {{ .workflowRun.identifier }}",
"priority": "High",
"assigneeAccountId": "{{ .outputs.fetch_owner.account_id }}"
}
}
Find assignee account IDs

If you ingest Jira users into Port, the jiraUser blueprint stores each user's Atlassian account ID. You can resolve it from catalog data in an earlier workflow step and pass it to assigneeAccountId.

Complete workflow example

A self-service workflow that creates a Jira issue from form inputs:

Workflow example (click to expand)
{
"identifier": "report-work-item",
"title": "Report Work Item",
"icon": "Jira",
"description": "Create a Jira issue from a self-service form",
"nodes": [
{
"identifier": "trigger",
"title": "Report Work Item",
"config": {
"type": "SELF_SERVE_TRIGGER",
"userInputs": {
"properties": {
"project": {
"type": "string",
"title": "Project key"
},
"issue_type": {
"type": "string",
"title": "Issue type",
"default": "Task"
},
"summary": {
"type": "string",
"title": "Summary"
},
"description": {
"type": "string",
"title": "Description",
"format": "markdown"
}
},
"required": ["project", "issue_type", "summary"]
}
}
},
{
"identifier": "create-jira-issue",
"title": "Create Jira Issue",
"config": {
"type": "INTEGRATION_ACTION",
"installationId": "jira-integration-123",
"integrationProvider": "jira",
"integrationInvocationType": "create_issue",
"integrationActionExecutionProperties": {
"project": "{{ .outputs.trigger.project }}",
"issueType": "{{ .outputs.trigger.issue_type }}",
"summary": "{{ .outputs.trigger.summary }}",
"description": "{{ .outputs.trigger.description }}"
}
}
}
],
"connections": [
{
"sourceIdentifier": "trigger",
"targetIdentifier": "create-jira-issue"
}
]
}

Limitations

  • Jira Cloud only: This action uses Port's Jira Cloud integration. For Jira Server (self-hosted), use a webhook node that calls the Jira REST API directly.
  • Secrets not supported: Integration actions do not support organization secrets or encrypted user inputs in JQ templates. See the integration actions overview.