Query by history

Azure Boards | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

The history of a work item tells you who opened the item, what changed, and why. This information helps you track how an item changes over time. When you enter information in the history field, provide as much information as possible to help the next work item owner understand what has happened and what they have to do.


There is no Discussion work item field. To query work items with comments entered in the Discussion area, you filter on the History field. The full content of the text entered into the Discussion text box is added to the History field.

Supported operators and macros

Query clauses that specify the History field can use the Contains Words and Does Not Contain Words operators. Search against an exact phrase or to use the wildcard character, *. You can only use the wildcard character at the end of a partial word or phrase.

The History field is automatically indexed for full-text search when full-text search is available. See Full-Text and partial word searches

Query the History of a work item

You can use either the web portal or Team Explorer to view the history of a work item or find work items based on the contents of the History field. When you perform a search on the contents of the History field, it returns only work items that have changes recorded in that field. That is, it doesn't register changes that were made to text in other fields.

Screenshot of Query Editor to Search for items based on words contained in the History field.
Screenshot of Query Editor to Search for items based on words contained in the History field, earlier versions.

List items based on the contents of the History field

You use the query editor to add the History field to a query clause. Comments entered into the Discussion area are queryable. Change history entries, such as which fields were changed, aren't queryable. To quickly find items based on words entered into the Discussion area, or Description or other rich-text fields, consider using work item search.

You use the query editor to add the History field to a query clause. Comments entered into the History field are queryable. Change history entries, such as which fields were changed, aren't queryable.

You can filter for work items by the date on which they were changed or for a specific time period. If you limit the scope of your query, it can help with performance by only returning those results that fit the date range that you want to include.

Filter for Include these query clauses
Items whose History field contains the word "reproducible"
History Contains Words reproducible
Items whose History field doesn't contain the word "beta" History Does Not Contain Words beta
Items that contain the phrase "stack traces" and were closed but reactivated             History Contains Words stack traces
And State Was Ever Closed
And State <> Closed
Items closed within a specified time period             State = Done
And Closed Date > 7/1/2015
And Closed Date <= 7/21/2015
Items I've been associated with            History Contains Words MyName
Or Assigned To Was Ever _ @Me

Tips for using the query editor

  • Type the complete word or phrase that is specified in the History field of those work items that you want to find.
  • Enter the full text for the word that you want to search. The History field is indexed for full-text search. If you enter only a partial word, the query will not return work items that contain the full word. For example, if the History field contains the phrase reproducible behavior and you search for repro, the work item will not be found. However, if you search for the complete word reproducible, the work item will be found. You can also search for the string with a wild card, such as repro*.
  • The query editor ignores common words or stop words as defined in Configure and Manage Stopwords and Stoplists for Full-Text Search.
  • On the query editor toolbar, choose Run query or Run query, earlier version icon and confirm that your query returns expected results.
  • If you don't receive the results you expect, adjust the word or phrase that you entered, and run the query again.

View the history of work items

An entry is made to the History field each time a work item is saved. To view the history of changes, open an existing work item, and then choose the history tab icon or History tab, or for some work item types, choose the Details tab.

The history details shown depend on the platform, version, and client you user.

Screenshot of Work item form, Web portal, Choose History tab.

The state change history diagram appears first. To see the entire history of state changes, choose Show all.

Screenshot of Work item form, Web portal, State change history diagram (web portal only).

Choose an entry in the left pane to view the details of changes made.

Screenshot of Work item form, History tab, Web portal, Details.


With TFS 2017 and later versions, the History field is no longer a rich-text field. To annotate the work item history, add to the Description or Discussion fields.

To view only the comments that were added to the log, choose the Discussion Only tab. To view all changes made to the item, choose the All Changes tab, and then choose the show all changes link for a specific date and time.

Screenshot of Work item form, History tab, Web portal, earlier versions

Fields that support history, auditing, and revision tracking

You can use the following fields to filter queries and create reports. Several of these fields are populated with information as a work item progresses from one state to another. Other fields update when the work item is modified. Some fields don't appear on the work item form, but they are tracked for the WITs listed.

Field name Description Work item type

Changed By

The name of the team member who modified the work item most recently.

Reference name=System.ChangedBy, Data type=String


Change Date

The date and time when a work item was modified.

Reference name=System.ChangedDate, Data type=DateTime


Closed Date 1

The date and time when a work item was closed.

Reference name=Microsoft.VSTS.Common.ClosedDate, Data type=DateTime


Created Date

The date and time when a work item was created.

Reference name=System.CreatedDate, Data type=DateTime

History The record of changes that were made to the work item after it was created. Every time that the work item is updated, information is appended to the history, which specifies the date of the change, who made the changes, and which fields were changed.
History field queries return work items whose Discussion comments or Description fields contain words that match the keywords entered. You can't use the History field to query on changes made to other fields.

You can't add formatted text to the history field. Once you've saved the work item, you can't alter the history.

The History field, along with the Description, Steps to Repro and Title fields are automatically indexed for full-text search as described in Query fields, operators, and macros.

Reference name=System.History, Data type=History


Resolved Date 1

The date and time when the work item was moved into a Resolved state.

Reference name=Microsoft.VSTS.Common.ResolvedDate, Data type=DateTime

Bug (Agile, CMMI)


A number that is assigned to the historical revision of a work item.

Reference name=System.Rev, Data type=Integer


State Change Date

The date and time when the value of the State field changed.

Reference name=Microsoft.VSTS.Common.StateChangeDate, Data type=DateTime

Test Suite Audit

Tracks additional operations performed when modifying a test suite, for example: adding tests to a test suite or changing configurations. This field can be viewed through the History tab or through a separate query. There will be a consolidated history view, including changes performed to work items field and changes resulting from related artifacts such as test points and configurations.

Reference name=Microsoft.VSTS.TCM.TestSuiteAudit, Data type=PlainText

Test Suite

A system managed field (not editable) that increments with changes made to a work item.

Reference name=System.Watermark, Data type=Integer



  1. For these fields to be defined for a WIT, they must be included in the WORKFLOW section of the WIT definition. For example, this syntax is included within the FIELDS definition when transitioning to a Resolved state:

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">  
       <SERVERDEFAULT from="clock" />  

To learn more about creating and saving queries, see also:

Get history programmatically

See Work item tracking for ways to extract history information programmatically.

SDK resources

To programmatically interact with queries, see Query for Bugs, Tasks, and Other Work Items.