Jira
Jira integration actions allow workflows to create issues and change issue status 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.
- To use change issue status, credentials must also be able to view the issue and execute workflow transitions in its project.
- Actions processing must be enabled on your integration:
- Hosted by Port / UI / OAuth installations: actions processing is enabled automatically.
- Self-hosted (Helm or Docker): actions processing is disabled by default and must be explicitly enabled. See Enable actions processing (self-hosted) below.
Enable actions processing (self-hosted)
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:
- Helm
- Docker
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.
Add the following environment variables to your Docker run command or docker-compose configuration:
docker run \
-e OCEAN__ACTIONS_PROCESSOR__ENABLED=true \
# ... rest of your env vars
ghcr.io/port-labs/port-ocean-jira:latest
Configuration
| Field | Type | Description |
|---|---|---|
type | string | Required. Must be "INTEGRATION_ACTION" |
installationId | string | Required. Your Jira integration installation ID |
integrationProvider | string | Required. Must be "jira" |
integrationInvocationType | enum | Required. One of the values listed in available actions |
integrationActionExecutionProperties | object | Required. Jira-specific configuration |
The remaining sections describe the execution properties of the action.
Available actions
Currently, Jira integration actions support these operations:
| Action | Invocation type | Description |
|---|---|---|
| Create an issue | create_issue | Create an issue in a Jira project |
| Change issue status | change_issue_status | Move an issue to a named workflow status |
Create an issue
Creates an issue in a Jira project. Set integrationInvocationType to create_issue.
Execution properties
| Field | Type | Description |
|---|---|---|
project | string | Required. Jira project key (for example, OPS) |
issueType | string | Required. Issue type name (for example, Bug or Task) |
summary | string | Required. Issue summary |
description | string | Issue description |
priority | string | Issue priority name (for example, High) |
assigneeAccountId | string | Atlassian account ID of the assignee. Use the account ID, not the user's email address |
Basic example
Create a Jira issue (click to expand)
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
Dynamic field values (click to expand)
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 }}"
}
}
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.
Change issue status
Moves a Jira issue to a named workflow status. In the workflow builder, add this node from Change Jira Issue Status. Set integrationInvocationType to change_issue_status.
The action loads the issue's current status and available workflow transitions. If the issue is already in the target status (case-insensitive match), the node completes without calling Jira again. Otherwise Port resolves a transition whose target status name matches status and applies it.
Execution properties
| Field | Type | Description |
|---|---|---|
issueKey | string | Required. Jira issue key to update (for example, PORT-123) |
status | string | Required. Target status name (for example, In Progress or Done) |
Status names must match a transition available from the issue's current workflow state. If no transition targets the requested status, the action fails and lists the available target status names from Jira.
You pass the target status name (for example Done), not a transition label from the Jira UI (for example Resolve or Close). Port applies the first transition Jira returns whose destination status matches status (case-insensitive). When your workflow defines more than one transition to the same status, this action cannot pick a specific path; only that first match is used.
Basic example
Change a Jira issue status (click to expand)
Move an issue to Done using values from an earlier workflow step:
{
"identifier": "change-jira-issue-status",
"title": "Change Jira Issue Status",
"config": {
"type": "INTEGRATION_ACTION",
"installationId": "your-installation-id",
"integrationProvider": "jira",
"integrationInvocationType": "change_issue_status",
"integrationActionExecutionProperties": {
"issueKey": "{{ .outputs.trigger.issue_key }}",
"status": "Done"
}
}
}
Node output fields
When the action runs as a workflow node, the node output includes:
| Field | Type | Description |
|---|---|---|
issueKey | string | The Jira issue key that was updated |
status | string | The status name after the transition (or no-op) |
issueUrl | string | Browse URL for the issue in Jira, when available |
Complete workflow examples
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.