Overview

Enable your agents to manage issues, projects, and workflows through Jira. Create and update issues, track project progress, manage assignments, and streamline your project management with AI-powered automation.

Prerequisites

Before using the Jira integration, ensure you have:

Setting Up Jira Integration

1. Connect Your Jira Account

  1. Navigate to CrewAI Enterprise Integrations
  2. Find Jira in the Authentication Integrations section
  3. Click Connect and complete the OAuth flow
  4. Grant the necessary permissions for issue and project management
  5. Copy your Enterprise Token from Account Settings

2. Install Required Package

uv add crewai-tools

Available Actions

Usage Examples

Basic Jira Agent Setup

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

# Get enterprise tools (Jira tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

# Create an agent with Jira capabilities
jira_agent = Agent(
    role="Issue Manager",
    goal="Manage Jira issues and track project progress efficiently",
    backstory="An AI assistant specialized in issue tracking and project management.",
    tools=[enterprise_tools]
)

# Task to create a bug report
create_bug_task = Task(
    description="Create a bug report for the login functionality with high priority and assign it to the development team",
    agent=jira_agent,
    expected_output="Bug report created successfully with issue key"
)

# Run the task
crew = Crew(
    agents=[jira_agent],
    tasks=[create_bug_task]
)

crew.kickoff()

Filtering Specific Jira Tools

from crewai_tools import CrewaiEnterpriseTools

# Get only specific Jira tools
enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token",
    actions_list=["jira_create_issue", "jira_update_issue", "jira_search_by_jql"]
)

issue_coordinator = Agent(
    role="Issue Coordinator",
    goal="Create and manage Jira issues efficiently",
    backstory="An AI assistant that focuses on issue creation and management.",
    tools=enterprise_tools
)

# Task to manage issue workflow
issue_workflow = Task(
    description="Create a feature request issue and update the status of related issues",
    agent=issue_coordinator,
    expected_output="Feature request created and related issues updated"
)

crew = Crew(
    agents=[issue_coordinator],
    tasks=[issue_workflow]
)

crew.kickoff()

Project Analysis and Reporting

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

project_analyst = Agent(
    role="Project Analyst",
    goal="Analyze project data and generate insights from Jira",
    backstory="An experienced project analyst who extracts insights from project management data.",
    tools=[enterprise_tools]
)

# Task to analyze project status
analysis_task = Task(
    description="""
    1. Get all projects and their issue types
    2. Search for all open issues across projects
    3. Analyze issue distribution by status and assignee
    4. Create a summary report issue with findings
    """,
    agent=project_analyst,
    expected_output="Project analysis completed with summary report created"
)

crew = Crew(
    agents=[project_analyst],
    tasks=[analysis_task]
)

crew.kickoff()

Automated Issue Management

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

automation_manager = Agent(
    role="Automation Manager",
    goal="Automate issue management and workflow processes",
    backstory="An AI assistant that automates repetitive issue management tasks.",
    tools=[enterprise_tools]
)

# Task to automate issue management
automation_task = Task(
    description="""
    1. Search for all unassigned issues using JQL
    2. Get available assignees for each project
    3. Automatically assign issues based on workload and expertise
    4. Update issue priorities based on age and type
    5. Create weekly sprint planning issues
    """,
    agent=automation_manager,
    expected_output="Issues automatically assigned and sprint planning issues created"
)

crew = Crew(
    agents=[automation_manager],
    tasks=[automation_task]
)

crew.kickoff()

Advanced Schema-Based Operations

from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools

enterprise_tools = CrewaiEnterpriseTools(
    enterprise_token="your_enterprise_token"
)

schema_specialist = Agent(
    role="Schema Specialist",
    goal="Handle complex Jira operations using dynamic schemas",
    backstory="An AI assistant that can work with dynamic Jira schemas and custom issue types.",
    tools=[enterprise_tools]
)

# Task using schema-based operations
schema_task = Task(
    description="""
    1. Get all projects and their custom issue types
    2. For each custom issue type, describe the action schema
    3. Create issues using the dynamic schema for complex custom fields
    4. Update issues with custom field values based on business rules
    """,
    agent=schema_specialist,
    expected_output="Custom issues created and updated using dynamic schemas"
)

crew = Crew(
    agents=[schema_specialist],
    tasks=[schema_task]
)

crew.kickoff()

Troubleshooting

Common Issues

Permission Errors

  • Ensure your Jira account has necessary permissions for the target projects
  • Verify that the OAuth connection includes required scopes for Jira API
  • Check if you have create/edit permissions for issues in the specified projects

Invalid Project or Issue Keys

  • Double-check project keys and issue keys for correct format (e.g., “PROJ-123”)
  • Ensure projects exist and are accessible to your account
  • Verify that issue keys reference existing issues

Issue Type and Status Issues

  • Use JIRA_GET_ISSUE_TYPES_BY_PROJECT to get valid issue types for a project
  • Use JIRA_GET_ISSUE_STATUS_BY_PROJECT to get valid statuses
  • Ensure issue types and statuses are available in the target project

JQL Query Problems

  • Test JQL queries in Jira’s issue search before using in API calls
  • Ensure field names in JQL are spelled correctly and exist in your Jira instance
  • Use proper JQL syntax for complex queries

Custom Fields and Schema Issues

  • Use JIRA_DESCRIBE_ACTION_SCHEMA to get the correct schema for complex issue types
  • Ensure custom field IDs are correct (e.g., “customfield_10001”)
  • Verify that custom fields are available in the target project and issue type

Filter Formula Issues

  • Ensure filter formulas follow the correct JSON structure for disjunctive normal form
  • Use valid field names that exist in your Jira configuration
  • Test simple filters before building complex multi-condition queries

Getting Help

Need Help?

Contact our support team for assistance with Jira integration setup or troubleshooting.