> ## Documentation Index
> Fetch the complete documentation index at: https://modem.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Jira

> Capture Jira issues and let the agent search, create, and update them

export const Prompt = ({text, variant = 'accent'}) => {
  const [copied, setCopied] = useState(false);
  const handleCopy = async () => {
    try {
      await navigator.clipboard.writeText(text);
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    } catch {}
  };
  const clipboardIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copy</title>
            <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
            <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>;
  const checkIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copied</title>
            <polyline points="20 6 9 17 4 12" />
        </svg>;
  const promptIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style={{
    flexShrink: 0,
    opacity: 0.4
  }}>
            <title>Prompt</title>
            <path d="M20 2H2v20h2V4h16v12H6v2H4v2h2v-2h16V2zM6 7h12v2H6zm8 4H6v2h8z" />
        </svg>;
  return <div className={`prompt prompt-${variant}`} style={{
    marginTop: '12px',
    marginBottom: '12px'
  }}>
            {promptIcon}
            <span className="prompt-text">{text}</span>
            <button className="prompt-copy" onClick={handleCopy} title="Copy to clipboard" type="button">
                {copied ? checkIcon : clipboardIcon}
            </button>
        </div>;
};

The Jira integration connects your Atlassian Jira site to Modem. It captures issue and comment activity in real time so it can be analyzed and linked to the people behind it, and it gives the Modem Agent the ability to search, create, update, and comment on issues directly from chat.

<Warning>Jira integration is currently in beta. Features and behavior may change.</Warning>

<Info>
  One Jira connection covers every project on your site. If you use **Jira Service Management** (service desk) projects, their request
  conversations are captured as support tickets instead of issues — see the [Jira Service Desk](/docs/integrations/jira-service-desk) page for
  how those are handled.
</Info>

## Prerequisites

* Admin access in the Modem organization where you want to connect Jira
* Access to the Atlassian Jira site you want to connect, with permission to authorize apps
* A Modem organization on a plan that includes Jira

## Setup

<Steps>
  <Step title="Start the connection">
    Go to **Settings** → **Integrations** → **Jira** in your Modem dashboard and click **Connect Jira**.
  </Step>

  <Step title="Authorize Modem">
    You'll be redirected to Atlassian to authorize Modem. Review the requested permissions, choose the Jira **site** you want to
    connect, and approve.
  </Step>

  <Step title="Choose projects to monitor">
    Back in Modem, pick which Jira projects to monitor from the project list. You can filter by project type (Software, Service,
    Business, Discovery) and toggle projects on or off at any time. Start narrow and expand as needed.
  </Step>
</Steps>

After authorization, Modem registers a webhook on your Jira site and begins receiving activity for the projects you selected.

<Tip>
  Connecting more than one Atlassian site? Each site is its own Modem connection. Run the connect flow again and select the other site
  when Atlassian asks which one to authorize.
</Tip>

## What Gets Captured

### Issues and comments

Modem captures issue activity for your monitored projects as it happens:

* **New and updated issues**
* **Comments** added or edited on those issues

The issue **summary** is used as the title for each captured conversation, so it shows up under a readable heading, with comments threaded beneath it.

### Issue metadata

Each captured update is stored alongside the current state of its issue, including:

* **Status** and status category (e.g. To Do, In Progress, Done)
* **Issue type** (bug, story, task, etc.) and **priority**
* **Reporter / creator** and **assignee**
* **Created and updated timestamps**
* **Jira issue URL** for jumping back to the source issue

### People

Modem resolves issue authors to Modem [people](/docs/guides/people) profiles using their email address when Jira returns one. This gives you a unified view of each person's activity across Jira and your other connected sources, and rolls activity up to the [companies](/docs/guides/people#companies) behind them.

## Real-Time Capture

Jira capture is real-time: Modem starts ingesting activity from the moment you connect and select projects. New issues and comments are captured as Jira sends webhook events. There is no historical backfill of past issues today.

## What the Agent Can Do

With Jira connected, you can ask the Modem Agent to work with your issues. Read operations run on demand; write operations require your approval before they execute.

* **Search issues** by keyword, project, status, or raw JQL
* **List projects** on your connected site
* **Read full issue details** by key (e.g. `ENG-123`)
* **Create or update issues** from feedback conversations (requires approval)
* **Add comments** to existing issues (requires approval)
* Link Modem topics to existing Jira issues

<Info>
  Write actions (creating or updating issues, adding comments) always ask for your approval before they run. Read actions like search and
  lookups run without a prompt.
</Info>

### Example Prompts

These work from the dashboard, Slack DMs, or by mentioning `@modem` in a channel.

Simple:

<Prompt text="What open Jira issues are assigned to the platform team?" />

<Prompt text="Show me ENG-123 and summarize the discussion" />

<Prompt text="Create a Jira bug for the login timeout complaints in the API project" />

Advanced:

<Prompt text="Look at the top bug report topics from the last 2 weeks and create Jira issues for any that don't already have one" />

<Prompt text="Summarize all Slack and Discord feedback about search performance and add it as a comment on ENG-456" />

<Prompt text="Which open Jira issues have the most related user complaints? Rank them by feedback volume." />

<Tip>
  With the [Slack integration](/docs/integrations/slack) installed, you can do all of this directly from Slack by messaging the Modem bot, no
  need to leave your conversation.
</Tip>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Issues aren't appearing">
    First confirm the integration shows a healthy status in **Settings** → **Integrations** → **Jira**, and that the relevant project is
    toggled on in the project list. Then allow a few minutes for webhook delivery and processing, and make sure the issue had a change
    (new issue, update, or comment) since connecting.
  </Accordion>

  <Accordion title="Connection shows an error or asks you to re-authorize">
    Open **Settings** → **Integrations** → **Jira** to see the error detail. If Modem prompts you to **Authorize** or **Re-authorize**,
    the access has expired or the required permissions changed; click through to grant access again. If the error persists, contact
    [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="Agent can't find or act on issues">
    * Verify Jira is connected and healthy in **Settings** → **Integrations** → **Jira** - Make sure the issue exists on the site you
      connected - Be specific with project keys or names - Remember that creating issues and adding comments require approval, so check
      for a pending approval prompt
  </Accordion>

  <Accordion title="Authors aren't linking to people">
    Issue authors are matched to Modem people by email address. If Jira doesn't return an email for the author, their activity won't be
    linked automatically.
  </Accordion>
</AccordionGroup>

## Disconnecting

To disconnect Jira:

1. Go to **Settings** → **Integrations** → **Jira**
2. Click **Disconnect**

This removes the connection and deletes the webhook from your Jira site, so new activity is no longer synced and the agent can no longer act on Jira. Historical data remains in Modem after disconnecting.

## Related

<CardGroup cols={2}>
  <Card title="Jira Service Desk" icon="https://mintcdn.com/modem-844d7a4a/LmhsPduwU_kokopO/icons/jira-service-desk.svg?fit=max&auto=format&n=LmhsPduwU_kokopO&q=85&s=b3d97dc2e46bf9447a77408d2b91b5f9" href="/docs/integrations/jira-service-desk" width="24" height="24" data-path="icons/jira-service-desk.svg">
    Capture customer support requests from Jira Service Management projects.
  </Card>

  <Card title="Integrations Overview" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/link.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e774d33588635d44c6c935b78ed55f13" href="/docs/integrations/overview" width="24" height="24" data-path="icons/link.svg">
    Compare Jira with other data sources and agent tools.
  </Card>
</CardGroup>
