Jira Cloud Platform Integration with SmythOS
Want to automate your team's project management and issue tracking? Connect the Jira Cloud Platform to SmythOS and empower your agents to create, update, and manage issues programmatically.
List of Jira Components
Quickly compare Jira components by what they do and their key I/O. Click any component name to jump directly to its detailed guide.
Component | Action | What it Does | Inputs | Key Outputs | Use Case |
---|---|---|---|---|---|
Create Issue | Write | Creates a new issue in a Jira project. | required domain_name , project_key , summary | id , key , url | Automatically creating a bug report from a support ticket. |
Update Issue Summary | Write | Updates the summary (title) of an existing issue. | required domain_name , issue_key , summary | Response | Clarifying the title of a bug report. |
Transition Issue | Write | Changes the status of an issue (e.g., "To Do" to "In Progress"). | required domain_name , issue_key , transitionId | Response | Moving a task to "Done" when a PR is merged. |
Assign Issue | Write | Assigns an issue to a specific user. | required domain_name , issue_key , accountId | Response | Automatically assigning new bugs to a QA lead. |
Add Comment | Write | Adds a new comment to a specific issue. | required domain_name , issue_key , comment | commentId , url | Posting automated status updates to a task. |
Label Jira Issue | Write | Adds labels to an existing issue for categorization. | required domain_name , issue_key , label | Response | Tagging an issue with "security" or "frontend". |
Get Jira Issue | Read | Retrieves detailed information about a single issue. | required domain_name , issue_key | id , summary , description | Fetching context before updating a task. |
Get Transitions | Read | Retrieves the possible status transitions for an issue. | required domain_name , issue_key | transitions | Finding the correct transitionId to move an issue to "In Review". |
Get Issue Comments | Read | Retrieves all comments from a specific issue. | required domain_name , issue_key | comments | Analyzing discussion on a feature request. |
Delete Issue | Write | Permanently deletes an issue. | required domain_name , issue_key | Response | Removing a ticket created in error. |
Find Users | Search | Searches for users within your Jira instance. | required domain_name , query | Response | Finding a user's accountId to assign them an issue. |
Get All Users | Read | Retrieves all users within your Jira instance. | required domain_name | users | Auditing active Jira users. |
Add User To Group | Write | Adds a user to a specific Jira group. | required domain_name , groupId , accountId | Response | Automating user provisioning for new team members. |
Remove User From Group | Write | Removes a user from a specific Jira group. | required domain_name , groupId , accountId | Response | De-provisioning access for departing team members. |
Find Groups | Search | Searches for groups within your Jira instance. | required domain_name , query | groups | Finding the correct groupId for user management. |
Create Group | Write | Creates a new Jira group. | required domain_name , name | groupId | Programmatically setting up new team groups. |
Remove Group | Write | Deletes an existing Jira group. | required domain_name , groupId | Response | Cleaning up unused or obsolete groups. |
Get Group Users | Read | Retrieves all users belonging to a specific Jira group. | required domain_name , groupId | users | Auditing group memberships. |
Archive Issues | Write | Archives a list of issues. | required domain_name , issueIdsOrkeys | numberOfIssuesUpdated , errors | Bulk archiving old issues for cleanup. |
Unarchive Issues | Write | Unarchives a list of issues. | required domain_name , issueIdsOrkeys | numberOfIssuesUpdated , errors | Restoring previously archived issues. |
Get Comment | Read | Retrieves a single comment from a Jira issue by its ID. | required domain_name , issue_key , commentId | commentId , content , author | Fetching the content of a specific comment. |
Delete Comment | Write | Permanently removes a specific comment from a Jira issue. | required domain_name , issue_key , comment_id | Response | Removing an outdated automated status comment. |
Prerequisites
Before you begin, please ensure you have the following:
- An active SmythOS account. (Sign up here).
- A Jira Cloud instance.
- An Atlassian account with permissions to access the desired Jira projects.
- An API Token generated from your Atlassian account.
Getting Started With Jira Cloud
The connection is handled via Basic Authentication, which requires your user email and an API token, combined and encoded in Base64 format.
Step 1: Generate a Jira API Token
- Log in to your Atlassian Account.
- Click Create API token.
- Give your token a memorable label (e.g., "SmythOS Agent") and click Create.
- Copy the generated API Token immediately. It will not be shown again.
Step 2: Encode Your Credentials in Base64
- Combine your Atlassian account email and the API Token into a single string with a colon in between:
your-email@example.com:YourAPIToken
. - Use a Base64 encoding tool (like the "Encode/Decode" component in SmythOS) to encode this entire string.
- Copy the resulting Base64 encoded string.
Step 3: Store Your Encoded Credentials in SmythOS Vault
Your encoded credentials are a sensitive secret. Use the SmythOS Vault
to store them securely.
- In your SmythOS dashboard, navigate to the Vault.
- Create a new secret and paste your Base64 encoded string as the value. Give it a memorable name, like
jira_base64_auth
. - For more details, see the Vault Documentation.
Step 4: Configure a Jira Component
- In your SmythOS agent graph, drag and drop any Jira component.
- Click the component to open its Settings panel.
- In the
Base 64 Encoded User Email and API Token
field, select the secret you saved in the Vault. - Your connection is now configured for that component.
Which Jira Component Should I Use?
If you need to… | Target | Use this Component | Why this one? |
---|---|---|---|
Create a new bug report | A project key and summary | Create Issue | The primary method for programmatically creating new issues. |
Move a task to "In Progress" | An issue key and a transition ID | Transition Issue | The correct way to change an issue's workflow status. |
Find the ID for the "Done" status | An issue key | Get Transitions | This is a prerequisite for Transition Issue , as it gives you the valid transitionId . |
Assign a bug to a developer | An issue key and an account ID | Assign Issue | The standard way to set or change the assignee of an issue. |
Find a user's ID to assign them a task | A user's name or email | Find Users | The best way to get a user's accountId needed for assignments. |
Add a "customer-reported" tag | An issue key and a label | Label Jira Issue | Allows for programmatic categorization of your issues. |
Component Details
This section provides detailed information for each Jira Cloud Platform component.
Create Issue
Creates a new issue in a specified Jira project.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain (e.g., your-company ). |
project_key | string | Yes | The key of the project (e.g., PROJ ). |
summary | string | Yes | The title or summary of the issue. |
description | string | Optional | The detailed body of the issue. Supports Jira's wiki markup. |
issue_type | string | Optional | The type of issue (e.g., "Bug", "Task"). Default: "Task". |
Outputs
Field | Type | Description |
---|---|---|
id | string | The unique ID of the newly created issue. |
key | string | The human-readable key of the issue (e.g., PROJ-123 ). |
url | string | The direct URL to view the issue in Jira. |
Response | object | The full, raw JSON response from the Jira API. |
Update Issue Summary
Updates the summary (title) of an existing Jira issue.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain (e.g., your-company ). |
issue_key | string | Yes | The key of the issue to update (e.g., PROJ-123 ). |
summary | string | Yes | The new summary text for the issue. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful update returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Transition Issue
Changes the status of an issue by performing a workflow transition.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to transition. |
transitionId | string | Yes | The ID of the workflow transition to perform. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful transition returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Assign Issue
Assigns a Jira issue to a specific user.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to assign. |
accountId | string | Yes | The Atlassian account ID of the user to assign the issue to. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful assignment returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Add Comment
Adds a new comment to a specific Jira issue.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to comment on. |
comment | string | Yes | The text content of the comment. |
Outputs
Field | Type | Description |
---|---|---|
commentId | string | The unique ID of the newly created comment. |
url | string | The direct URL to the comment. |
Response | object | The raw JSON response from the API. |
Label Jira Issue
Adds labels to an existing issue for categorization.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to label. |
label | string | Yes | The label to add to the issue. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful update returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Get Jira Issue
Retrieves the full details of a specific issue using its key.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to retrieve (e.g., PROJ-123 ). |
Outputs
Field | Type | Description |
---|---|---|
id | string | The unique ID of the issue. |
summary | string | The summary/title of the issue. |
description | object | The issue's description in Atlassian Document Format. |
projectId | string | The ID of the project the issue belongs to. |
Response | object | The raw JSON response from the API. |
Get Transitions
Retrieves the list of possible workflow transitions for an issue's current status.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to check. |
Outputs
Field | Type | Description |
---|---|---|
transitions | array | An array of transition objects, each with an id and name (e.g., {"id": "21", "name": "Start Progress"} ). |
Response | object | The full, raw JSON response from the Jira API. |
Get Issue Comments
Retrieves all comments from a specific Jira issue.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue whose comments you want to retrieve. |
Outputs
Field | Type | Description |
---|---|---|
comments | array | An array of comment objects, each containing the author, body, and creation time. |
Response | object | The raw JSON response, including pagination details. |
Delete Issue
Permanently deletes a Jira issue.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue to delete. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful deletion returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Find Users
Searches for users within your Jira instance based on a query string.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
query | string | Yes | The string to search for in user names or emails. |
maxResults | integer | Optional | The maximum number of users to return. Default: 50. |
startAt | integer | Optional | The index of the first user to return. Default: 0. |
Outputs
Field | Type | Description |
---|---|---|
users | array | An array of user objects, each containing accountId , displayName , and emailAddress . |
Response | object | The raw JSON response from the API. |
Get All Users
Retrieves a paginated list of all users within your Jira instance.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
maxResults | integer | Optional | The maximum number of users to return per page. Default: 50. |
startAt | integer | Optional | The index of the first user to return. Default: 0. |
Outputs
Field | Type | Description |
---|---|---|
users | array | An array of user objects, each containing accountId , displayName , and emailAddress . |
Response | object | The raw JSON response from the API, including pagination details. |
Add User To Group
Adds a specified user to a Jira group.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
groupId | string | Yes | The ID of the group to add the user to. |
accountId | string | Yes | The Atlassian account ID of the user to add. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful addition returns the group object. |
Headers | object | The HTTP headers from the API response. |
Remove User From Group
Removes a specified user from a Jira group.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
groupId | string | Yes | The ID of the group to remove the user from. |
accountId | string | Yes | The Atlassian account ID of the user to remove. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful removal returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Find Groups
Searches for groups within your Jira instance based on a query string.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
query | string | Yes | The string to search for in group names. |
maxResults | integer | Optional | The maximum number of groups to return. Default: 50. |
startAt | integer | Optional | The index of the first group to return. Default: 0. |
Outputs
Field | Type | Description |
---|---|---|
groups | array | An array of group objects, each containing name and groupId . |
Response | object | The raw JSON response from the API. |
Create Group
Creates a new Jira group.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
name | string | Yes | The name of the new group. |
Outputs
Field | Type | Description |
---|---|---|
groupId | string | The ID of the newly created group. |
name | string | The name of the newly created group. |
Response | object | The raw JSON response from the API. |
Remove Group
Deletes an existing Jira group.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
groupId | string | Yes | The ID of the group to delete. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful deletion returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Get Group Users
Retrieves a paginated list of users belonging to a specific Jira group.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
groupId | string | Yes | The ID of the group whose users you want to retrieve. |
maxResults | integer | Optional | The maximum number of users to return per page. Default: 50. |
startAt | integer | Optional | The index of the first user to return. Default: 0. |
Outputs
Field | Type | Description |
---|---|---|
users | array | An array of user objects, each containing accountId , displayName , and emailAddress . |
Response | object | The raw JSON response from the API, including pagination details. |
Archive Issues
Archives a list of Jira issues. Archived issues are hidden from most views but can be unarchived.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issueIdsOrkeys | array | Yes | An array of strings, where each string is an issue ID or key to be archived. |
Outputs
Field | Type | Description |
---|---|---|
numberOfIssuesUpdated | integer | The count of issues successfully archived. |
errors | array | A list of any errors that occurred during the process for specific issues. |
Response | object | The raw JSON response from the API. |
Unarchive Issues
Unarchives a list of previously archived Jira issues, making them visible again.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issueIdsOrkeys | array | Yes | An array of strings, where each string is an issue ID or key to be unarchived. |
Outputs
Field | Type | Description |
---|---|---|
numberOfIssuesUpdated | integer | The count of issues successfully unarchived. |
errors | array | A list of any errors that occurred during the process for specific issues. |
Response | object | The raw JSON response from the API. |
Get Comment
Retrieves a single, specific comment from a Jira issue by its ID.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue containing the comment. |
commentId | string | Yes | The unique identifier of the comment to retrieve. |
Outputs
Field | Type | Description |
---|---|---|
commentId | string | The unique ID of the retrieved comment. |
content | object | The body of the comment in Atlassian Document Format. |
author | object | Details of the user who wrote the comment. |
url | string | The direct URL to the comment. |
Response | object | The raw JSON response from the API. |
Delete Comment
Permanently removes a specific comment from a Jira issue.
Inputs
Field | Type | Required | Notes |
---|---|---|---|
domain_name | string | Yes | Your Jira Cloud domain. |
issue_key | string | Yes | The key of the issue containing the comment. |
comment_id | string | Yes | The ID of the comment to delete. |
Outputs
Field | Type | Description |
---|---|---|
Response | object | A successful deletion returns an empty response body. |
Headers | object | The HTTP headers from the API response. |
Best Practices & Advanced Tips
- Secure Your Credentials: Your
useremail:api_token
string is a direct credential. Always Base64 encode it and store the result in the SmythOSVault
. - Understand the Workflow: Many Jira actions are multi-step. To change an issue's status, you must first
Get Transitions
to find the correct ID, thenTransition Issue
. To assign an issue, you may need toFind Users
first to get theiraccountId
. - Use JQL for Advanced Searches: While not a dedicated component, Jira's power comes from JQL (Jira Query Language). You can use a generic API component in SmythOS to make calls to Jira's
/rest/api/3/search
endpoint with a JQL query for highly specific searches. - Custom Fields: To update custom fields on an issue, you will need to use the
Update Issue
endpoint with a custom JSON body. This typically requires a generic API call component where you construct the full payload according to the Jira REST API documentation.
Troubleshooting Common Issues
-
Error:
401 Unauthorized
- Cause: The Base64 encoded
useremail:api_token
string is incorrect, or the user's account does not have access. The API token may have been revoked. - Solution: Carefully re-create and re-encode your credential string. Ensure the user email is correct and the API token is valid in your Atlassian account settings.
- Cause: The Base64 encoded
-
Error:
403 Forbidden
- Cause: The authenticated user does not have the necessary project permissions to perform the action (e.g., trying to create an issue in a project they can't access).
- Solution: Check the user's project role and permission scheme directly in Jira.
-
Error:
404 Not Found
- Cause: An incorrect
domain_name
,issue_key
, orproject_key
was provided. - Solution: Double-check all identifiers for typos. Ensure the issue or project exists and the user has permission to view it.
- Cause: An incorrect
-
"Transition is not available" Error
- Cause: You are attempting to use a
transitionId
that is not valid for the issue's current status in the workflow. - Solution: Always call the
Get Transitions
component for the specific issue right before you attempt to transition it to get the list of currently available transitions.
- Cause: You are attempting to use a
What's Next?
You are now ready to build powerful development and project management workflows with the SmythOS Jira Integration!
Consider these ideas:
-
Build an Agent That...
- Acts as a bridge to your customer support tool. When a support ticket is escalated to "bug," the agent automatically creates a linked Jira issue. When the Jira issue is marked "Done," the agent posts an internal note back on the support ticket.
- Manages your release process. When a developer merges a PR into the
release
branch in GitHub, an agent finds all related Jira issues and transitions them to a "Ready for Release" status. - Creates a daily stand-up report by fetching all issues assigned to a specific user that were updated in the last 24 hours and sending a summary to a Microsoft Teams channel.
-
Explore Other Integrations:
- When a new issue is created, send a notification to a Slack or Discord channel.
- Use an LLM component to summarize a long customer email, then use that summary as the description when creating a Jira issue.
- Connect Jira to a time-tracking tool, automatically creating log entries based on issue transitions.