# How to See Who Changed What in Jira — Field-Level Issue History

September 23, 2026 ·

<!-- -->

5 min read

[NGPilot](https://ngpilot.com)

Every Jira issue keeps a diary. Status flips, priority bumps, reassignments, edited specs — Jira writes all of it down. The problem is reading it back: the built-in history turns a description edit into one unhelpful line, and "who changed this?" across forty issues becomes forty clicks or a REST script. This guide covers three ways to actually read Jira issue history, from the free built-in tab to field-level diffs and a cross-issue CSV report.

**Quick answer:** Jira's History tab shows every change but collapses long-text edits to "Description updated" and only covers one issue at a time. For field-level answers — what exactly changed, across many issues, exportable for audits — install [Issue History for Jira](https://marketplace.atlassian.com/apps/675742747/): a panel on every issue with word-level diffs, a JQL-driven multi-issue report, CSV export, and a Rovo agent that answers "what changed?" in plain language. Free for up to 10 users.

## Method 1 — the Built-in History Tab (Free, Shallow)[​](#method-1--the-built-in-history-tab-free-shallow "Direct link to Method 1 — the Built-in History Tab (Free, Shallow)")

Open any issue, scroll to the **History** tab. Every change is there: who, when, and old → new values for simple fields like status, assignee, and priority.

**Good for:** "when did this move to Done?" on a single issue with a short history.

**What's missing:** long text fields are the blind spot — an edit that deletes three acceptance criteria shows as *Description updated*, with no before, no after, and no way to diff without leaving Jira. And the view is strictly per issue: there is no search across histories, no filter by field, and no export. The moment the question spans issues ("everything that offboarded admin touched"), the History tab becomes a manual tour.

## Method 2 — the REST Changelog API (Complete, Scripted)[​](#method-2--the-rest-changelog-api-complete-scripted "Direct link to Method 2 — the REST Changelog API (Complete, Scripted)")

Jira's REST API exposes the full changelog, including values the UI hides:

```
curl -u email@example.com:API_TOKEN \

  "https://your-site.atlassian.net/rest/api/3/issue/PROJ-42/changelog"
```

Each entry carries `items[]` with `field`, `fromString`, `toString`, author, and timestamp — the raw material for a complete answer.

**Good for:** admins building a one-off audit extraction, or wiring change feeds into other tooling.

**What's missing:** it is a script you now own — pagination, rate limits, and value formatting included. Every audit request becomes a rerun, and the output still needs a diff view for long text before anyone can read it. Powerful, but nobody wants this as their day-to-day interface.

JQL offers partial help without any scripting: the `CHANGED` and `WAS` operators work on a fixed set of fields (`status`, `assignee`, `priority`, `fix version`, `sprint`):

```
status CHANGED AFTER -7d

assignee CHANGED BY "former.admin@company.com"
```

**What's missing:** the field list is fixed — no JQL ever answers "whose description changed last month?", and the operators return issues, not the change values themselves.

## Method 3 — a History Panel with Diffs, Reports, and a Rovo Agent (Recommended)[​](#method-3--a-history-panel-with-diffs-reports-and-a-rovo-agent-recommended "Direct link to Method 3 — a History Panel with Diffs, Reports, and a Rovo Agent (Recommended)")

[Issue History for Jira](https://marketplace.atlassian.com/apps/675742747/) turns the changelog into something readable at three scopes:

1. **One issue** — a panel lists every field change newest-first: author, time, and exact before → after values, with paging for long histories.
2. **One edit** — long text changes get a focused diff with word-level highlighting, so "Description updated" becomes the three words that actually moved.
3. **A whole issue set** — the global report runs over any JQL filter, with date and field filters, and exports to a formula-safe CSV that spreadsheets cannot corrupt.

Because the report is JQL-driven, audit-style questions are saved filters rather than projects:

```
project = FIN AND updated >= -30d      # everything financial that moved this month

assignee CHANGED BY "former.admin@company.com"   # bulk-edit fallout, one table
```

There is also a fourth door: in **Rovo chat**, the Issue History agent answers plain-language questions — *"what changed recently on this issue?"*, *"who last edited the acceptance criteria?"* — from live Jira data, with sources. Every query runs as the asking user, so the agent only ever surfaces history the asker could already read, and the app holds a read-only scope and stores nothing.

## Find the Answer, Then Keep It[​](#find-the-answer-then-keep-it "Direct link to Find the Answer, Then Keep It")

The CSV export is where history stops being a curiosity and becomes a record: issue key, field, author, timestamp, old value, new value — one row per change, ready for an audit pack, a change advisory board, or a post-incident review. Filter the report before exporting ("status changes on these 40 issues in the last 30 days") or the evidence becomes homework.

## Which Method Should You Use?[​](#which-method-should-you-use "Direct link to Which Method Should You Use?")

| Need                                                                | Use                    |
| ------------------------------------------------------------------- | ---------------------- |
| "When did this issue move to Done?"                                 | Built-in History tab   |
| A one-off complete extraction for scripting                         | REST changelog API     |
| Field-level diffs, cross-issue reports, CSV, plain-language answers | Issue History for Jira |

For the third row — compliance evidence, dispute resolution, release retrospectives, and the everyday "who changed this?" — the setup cost is one install, and it pays back the first time a diff answers a question a changelog line couldn't. Install [Issue History for Jira](https://marketplace.atlassian.com/apps/675742747/) and make the history readable where the work happens.

## Related Resources[​](#related-resources "Direct link to Related Resources")

* [Track Issue History in Jira](/solutions/track-issue-history-in-jira.md) — the scenario guide: audit questions, diff reading, and permission-safe history
* [How to View JSON in Jira](/blog/jira-json-viewer.md) — read the structured data other apps store on your issues
* [Issue History Rovo Agent for Jira](/apps/issue-history-rovo-agent-for-jira.md) — full documentation: the panel, the report, CSV export, and the Rovo agent

## Related guides

* [How to Create Mermaid Diagrams in Jira](/blog/how-to-create-mermaid-diagrams-jira.md)
* [Export Jira Issues to Excel or CSV](/blog/export-jira-issues-to-excel.md)
* [Bulk Download Jira Attachments](/blog/bulk-download-jira-attachments.md)
* [How to Migrate Confluence Content](/blog/how-to-migrate-confluence-content.md)
* [How to Add a Block Quote in Confluence](/blog/block-quote-confluence.md)

Explore NGPILOT[Browse Solutions](/solutions.md)[All Apps](/apps.md)[Atlassian Marketplace →](https://marketplace.atlassian.com/vendors/1226848/?utm_source=ngpilot.com\&utm_medium=blog\&utm_campaign=hub-links)

**Tags:**

* [jira](/blog/tags/jira.md)
* [issue-history](/blog/tags/issue-history.md)
* [audit](/blog/tags/audit.md)
* [changelog](/blog/tags/changelog.md)
* [how-to](/blog/tags/how-to.md)
* [compliance](/blog/tags/compliance.md)
