With version 12.0, the namespace for tracked change APIs has moved from Core.Document.OfficeEditor to Core.Document.OfficeEditor.TrackedChangeManager. See the migration guide for details.
Tracked changes let users suggest, review, and manage edits in a DOCX document, making it easier to collaborate while preserving a clear history of what changed, who made each change, and when.
Tracked changes in the document and review sidebar.
Tracked changes can be created by typing in reviewing mode. They may be accepted or rejected from the reviewing panel while in reviewing mode or by clicking the tracked change in editing mode.
Inline tracked change in Editing mode with accept and reject controls.
TrackedChangeManager API
The Core.Document.OfficeEditor.TrackedChangeManager API provides programmatic control over tracked changes in the DOCX Editor. You can manage review workflows entirely through code, without relying on the default editor UI.
You can also use the API to build a fully custom review experience without relying on the default UI. For example, you can create a custom tracked changes panel, integrate changes into your own UI, or implement tailored review workflows using the provided methods and related events:
Retrieve changes – Access all tracked changes in document order.
Tracked changes are returned as an array of TrackedChange objects, ordered by their position in the document.
JSON
1{
2 "id": "number - The unique identifier of the object",
3 "type": "'inserted'|'deleted' | 'formatted' - The type of tracked change",
4 "author": "string - The author of the tracked change",
5 "date": "Date - The date of the tracked change",
6 "plainText": "string - The content of the tracked change to be inserted or deleted",
7 "getPagePositions": "function - Returns a promise that resolves to an array of objects containing {pageNumber: number, rect: Core.Math.Rect} for each annotation related to the tracked change"
Jump to a tracked change by ID using the navigateToTrackedChange API. This moves the text cursor to the beginning of the change and scrolls it into view.
You can programmatically select a tracked change by ID using the selectTrackedChange API, which highlights the change in the UI. You can also listen for selection changes using the trackedChangeSelected event, which is triggered whenever a tracked change is selected or deselected.
Use the getPagePositions() method to retrieve the on-page locations of a single tracked change, including its bounding rectangles and page numbers. This shows where the tracked-change markup appears in the document when the method is called. It can be useful for positioning UI elements such as tooltips, highlights, or custom overlays.