How It Works
Field Mapping

Field Mapping

Standard Field Mappings

These fields are mapped automatically with high confidence. You will see them pre-ticked in the mapping UI.

ADO FieldJira FieldNotes
System.TitlesummaryTruncated to 255 characters if longer
System.DescriptiondescriptionHTML → Atlassian Document Format (ADF) conversion
System.StatestatusVia workflow transition (see State Mapping below)
Microsoft.VSTS.Common.PrioritypriorityNumeric (1–4) → Named (Highest, High, Medium, Low)
Microsoft.VSTS.Scheduling.StoryPointsstory_points (customfield_10016)Numeric
Microsoft.VSTS.Scheduling.Effortstory_pointsFallback if StoryPoints not set
System.AssignedToassigneeMatched by email address
System.CreatedByreporterMatched by email address
System.TagslabelsSemicolon-separated in ADO → space-replaced labels in Jira
System.AreaPathcomponentsLast segment of area path → Jira component
System.IterationPathSprint (customfield_10020)Via pre-created Jira sprint
Microsoft.VSTS.Common.AcceptanceCriteriaAppended to descriptionRendered as a section in the ADF body
Microsoft.VSTS.TCM.ReproStepsAppended to descriptionFor Bug type; rendered as "Steps to Reproduce"
Microsoft.VSTS.TCM.SystemInfoAppended to descriptionRendered as "Environment" section

Priority Mapping

ADO PriorityJira Priority
1Highest
2High
3Medium
4Low
(not set)Medium

State Mapping

ADO states vary by process template (Agile, Scrum, CMMI). Migrayt maps them to Jira status names and then transitions each issue to the correct state after creation.

ADO StateJira Status
NewTo Do
ActiveIn Progress
In ProgressIn Progress
CommittedIn Progress
ResolvedDone
ClosedDone
DoneDone
ApprovedTo Do
ProposedTo Do
ReadyTo Do
BacklogBacklog
In ReviewIn Review
TestingIn Review
InvestigatingIn Progress
RemovedCancelled
CancelledCancelled
On HoldBlocked
BlockedBlocked
Note:

If your Jira project workflow does not have a "Cancelled" or "Blocked" status, Migrayt skips the transition and the item remains in its default creation status ("To Do"). This is flagged in the post-migration report.

Custom state overrides can be passed in the migration options:

"state_overrides": {
  "Resolved": "In Review",
  "Custom State": "In Progress"
}

Custom Field Mapping

Custom fields in ADO are detected during the scan phase and presented in the field mapping UI. For each custom field, Migrayt:

  1. Searches for an exact-name-match custom field in your Jira project
  2. If not found, searches for a fuzzy name match with the same field type
  3. If no match, marks the field as unmapped — the data will not be carried over

Supported custom field types

ADO Field TypeJira Field Type
String / TextText field (single-line or multi-line)
IntegerNumber field
DoubleNumber field
DateTimeDate field
BooleanCheckbox field
Picklist (string)Select list (single-choice)
Picklist (integer)Select list (single-choice)
Identity (user)User picker

Picklist value mapping

For picklist (dropdown) fields, Migrayt also maps the individual values. For example, if ADO has a "Region" field with values North, South, East, West, and Jira has a "Region" field with Northern, Southern, Eastern, Western, the AI suggests value-level mappings.

You can override these in the mapping UI before the migration starts.

Description Conversion (HTML → ADF)

ADO stores descriptions as HTML. Jira Cloud's REST API v3 uses Atlassian Document Format (ADF), a structured JSON format. Migrayt converts the following HTML constructs:

HTMLADF Node
<p>paragraph
<h1><h6>heading with correct level
<ul>, <li>bulletListlistItem
<ol>, <li>orderedListlistItem
<pre>, <code>codeBlock
<strong>, <b>strong mark
<em>, <i>em mark
<a href>link mark
<img src>Inline image (URL rewritten after attachment upload)
HTML entitiesUnescaped to Unicode

Constructs that cannot be converted (such as complex tables) are preserved as plain text paragraphs.

Fields That Cannot Be Migrated

The following fields have no direct Jira equivalent and are not migrated:

ADO FieldReason
System.CreatedDateJira Cloud does not allow setting created on issues via API
System.ChangedDateRead-only on Jira issues
System.BoardColumnBoard configuration is not part of issue data
Microsoft.VSTS.Common.ActivatedDateNo equivalent
Microsoft.VSTS.Common.ResolvedDateNo equivalent
Microsoft.VSTS.CMMI.BlockedRepresented via status transition to "Blocked"

All unmapped fields are listed in the pre-migration review screen and in the post-migration report.

Reporter Attribution

Jira Cloud API does not allow setting reporter to an arbitrary user unless the calling account is a site admin. If the migration service account is not a site admin, the reporter is set to the migration service account and the original ADO createdBy is prepended to the description:

[Originally created by: alice@company.com on 2024-01-15]

[Original description follows]
...