Project Management migration
Field-level mapping, validation, and rollback between Merlin Project and Jira. We move data and schema; workflows are rebuilt natively in Jira.
Merlin Project
Source
Jira
Destination
Compatibility
9 of 11
objects map 1:1 between Merlin Project and Jira.
Complexity
CModerate
Timeline
4-6 weeks
Overview
Moving from Merlin Project to Jira is a migration from a file-based desktop project management tool to a web-native issue-tracking platform. The structural gap is significant: Merlin Project organizes work as Activities with Resources and Assignments in a Gantt-centric model; Jira organizes work as Issues (Epic, Story, Task, Bug, Subtask) on a Board with Sprints. We address this gap by interpreting Merlin's task hierarchy and dependency chains into Jira's Epic-Story-Subtask structure during scoping, preserving predecessor-successor relationships as Jira issue links, and mapping Resources to Jira Assignee fields. A critical constraint on the source side is that Merlin Project has no public API — every migration runs on CSV exports generated manually from within the application, and Mindmap, Kanban, Netplan, and Reports views cannot be exported at all. We provide an export preparation checklist and flag those non-exportable views for manual re-creation in Jira. Jira's REST API receives the transformed data with rate-limit handling and parent-record lookup resolution. We do not migrate Merlin Project workflows, automations, or scheduling rules as Jira Automations; we deliver a written inventory of these for the customer's admin to rebuild.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Merlin Project object lands in Jira, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Merlin Project
Project
Jira
Project
1:1Merlin Project files map to Jira Projects. Each Merlin Project file (or group of related files) becomes one Jira Project with a defined Project Key. We use the Merlin Project name as the Jira Project name and derive a two-to-ten character Project Key from the name's initials. If the customer maintains multiple Merlin Project files for a single program, we consolidate them into a single Jira Project with Epics representing sub-initiatives.
Merlin Project
Activity
Jira
Issue (Epic, Story, Task, Bug, or Subtask)
1:1Merlin Project Activities map to Jira Issues with the activity type determining the Issue Type. High-level planning Activities (parent tasks with no parent) map to Epic. Deliverable-level activities map to Story. Administrative or tracked-but-not-delivered tasks map to Task. Bug-type work (if defect logging exists) maps to Bug. Sub-activities with a parent Activity map to Subtask. We preserve the activity name as Issue Summary, the start and end dates as Due Date and Custom Start Date fields, and duration as a calculated estimate field. Notes migrate as Issue Description (rich text). Custom properties defined in Merlin Project export become Jira custom fields.
Merlin Project
Milestone
Jira
Issue (Type: Epic or Milestone marker)
1:1Merlin Project Milestones (zero-duration timeline markers) map to Jira Issues. We create them as Epic with a zero estimate or as a dedicated Issue Type if the customer's Jira instance has a Milestone type configured. The milestone date migrates to Due Date and a custom milestone_target__c field. Milestone status (completed, not completed) migrates to Issue Status. Parent-project milestone grouping is preserved via Epic Link or a custom parent_milestone__c field.
Merlin Project
Dependency
Jira
Issue Link (Blocks, Depends on, Relationship)
1:1Merlin Project's four dependency types (Finish-to-Start, Start-to-Start, Finish-to-Finish, Start-to-Finish) map to Jira Issue Links. FS dependencies where activity B cannot start until activity A finishes map to Jira Blocks relationship. We interpret SS, FF, and SF dependencies and represent them as Blocks or Depends on links with a note in the link comment field indicating the original dependency type, since Jira's standard link types do not natively support all four dependency semantics. We create Jira issue links only after both issues are created in Jira to avoid dangling reference errors.
Merlin Project
Resource (Person)
Jira
User (Assignee)
1:1Merlin Project Resources of type Person map to Jira User accounts. We extract resource names and email addresses from the Merlin Project Resource export. The customer's Jira admin provisions User accounts (or we use the Jira API to provision users if they have admin credentials). We match by email during migration so that each resource assignment in Merlin Project resolves to the correct Jira Assignee on the corresponding Issue. Any unmatched resources go to a reconciliation queue for manual provisioning before the activity migration phase.
Merlin Project
Resource (Equipment or Material)
Jira
Component or Custom Field
lossyMerlin Project Equipment and Material resources have no direct Jira equivalent because Jira does not have a native resource pool with cost rates. We map Equipment resources to Jira Components with the component name matching the resource name, and Material resources to a custom multi-select picklist field resource_materials__c. If the customer requires time-phased resource allocation with capacity planning, we document Advanced Roadmaps configuration as a post-migration step.
Merlin Project
Assignment
Jira
Issue Assignee + Work (Custom Field)
1:1Merlin Project Assignments (the linking table between Activities and Resources with allocation percentage and work units) map to Jira Issue Assignee plus a custom work_allocation__c field carrying the allocation percentage. Jira does not natively support split assignments across multiple assignees per issue without third-party apps, so if a Merlin Project Activity has multiple assigned Resources, we create a primary Assignee from the first Resource and document additional assignees in a custom multi-user field secondary_assignees__c. Work hours migrate to an estimate or time tracking field if Jira time tracking is enabled.
Merlin Project
Attachment
Jira
Attachment (via Jira API)
1:1Merlin Project file attachments migrate to Jira Issue attachments via Jira's REST API. We extract the file list from the Merlin Project Attachments view CSV (file names and paths) and retrieve the actual file binaries from the Merlin Project file package. Files are uploaded to the corresponding Jira Issue using the issue key as the target. We chunk large attachment batches to respect Jira's file size limits (10 MB per file in Jira Cloud). If the Merlin Project file package is encrypted or password-protected, we flag it for manual handling.
Merlin Project
Custom Fields
Jira
Custom Fields
1:1Merlin Project custom properties defined at the Activity or Resource level migrate to Jira custom fields. We map the Merlin Project custom field name and data type to the nearest Jira custom field type (text, number, date, select, multi-select, user picker). Custom fields must be pre-created in Jira with the correct field type before migration; we provide the schema specification during the configuration phase. If a Merlin Project custom field uses a data type that Jira does not support natively (e.g., duration with mixed units), we map it to a text custom field with the original value preserved.
Merlin Project
Project Comments and Annotations
Jira
Issue Comments
1:1Merlin Project notes attached to Activities, Resources, or the project level migrate to Jira Issue Comments on the corresponding Issue. If a note is project-level rather than activity-level, we attach it to the project's first Epic or to a designated Project Notes issue created for this purpose. Rich text formatting in Merlin Project notes is preserved as Jira's comment wiki markup. Comments are ordered by the original Merlin Project timestamp.
Merlin Project
Scheduling Constraints
Jira
Custom Fields or Labels
lossyMerlin Project scheduling constraints (As Late As Possible, As Soon As Possible, Fixed Dates) have no native Jira equivalent. We capture the constraint type and date values in a custom field scheduling_constraint__c (text) and a custom field constraint_date__c (date) on the migrated Issue. The dependency chain already preserved via Jira issue links allows Jira's scheduling engine to independently evaluate feasibility. Customers using Advanced Roadmaps configure the constraint behavior post-migration in the Advanced Roadmaps planning view.
| Merlin Project | Jira | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Activity | Issue (Epic, Story, Task, Bug, or Subtask)1:1 | Fully supported | |
| Milestone | Issue (Type: Epic or Milestone marker)1:1 | Fully supported | |
| Dependency | Issue Link (Blocks, Depends on, Relationship)1:1 | Fully supported | |
| Resource (Person) | User (Assignee)1:1 | Fully supported | |
| Resource (Equipment or Material) | Component or Custom Fieldlossy | Fully supported | |
| Assignment | Issue Assignee + Work (Custom Field)1:1 | Fully supported | |
| Attachment | Attachment (via Jira API)1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| Project Comments and Annotations | Issue Comments1:1 | Mapping required | |
| Scheduling Constraints | Custom Fields or Labelslossy | Mapping required |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Merlin Project gotchas
No public API — migrations run on CSV exports only
Mindmap, Kanban, Netplan, and Reports views are not exportable
CSV export captures only the currently open view's column set
Multi-user license management is per-seat with manual license codes
Scheduling conflicts detected by Merlin are not exported
Jira gotchas
Unsupported workflow validators silently skipped during migration
Custom fields converted to flat text labels when migrating to non-Jira platforms
Historical status-change timestamps lost when exporting without a Marketplace plugin
Attachment import failures from oversized files and JQL reference corruption
Points-based API rate limits enforced on Jira Cloud apps from March 2026
Pair-specific challenges
Migration approach
Discovery and export preparation
We audit every Merlin Project file in scope. This includes identifying all projects, counting Activities (by view), Milestones, Dependencies, Resources, Assignments, Attachments, and custom field definitions. We assess which views are in use and whether Kanban, Mindmap, Netplan, or Reports views contain unique data not already captured in the Gantt or WBS exports. We deliver an export preparation checklist specifying exactly which columns must be visible in each Merlin Project view before running CSV export, including all custom properties and constraint fields. The customer runs the exports under our guidance and provides the resulting CSV files plus any Merlin Project file packages containing attachment binaries.
Jira configuration and issue type schema design
We configure the Jira destination before any data arrives. This includes provisioning the Jira Project (with Project Key derived from the Merlin Project name), setting up the Issue Type Scheme (Epic, Story, Task, Bug, Subtask with appropriate defaults), creating or updating the Workflow and Screen configurations, and pre-creating all Jira custom fields that map to Merlin Project custom properties and constraint fields. If the customer has Jira Premium, we include Advanced Roadmaps configuration in the scope. Schema is deployed into a Jira Sandbox first for validation before any production migration step.
Sandbox migration and reconciliation
We run a full migration into the Jira Sandbox using production-like data volume. The customer's project manager or Jira admin reconciles record counts (Issues in, Epics in, subtasks in), spot-checks 20-40 random issues against the Merlin Project source, and validates that dependency chains are represented correctly as Jira issue links. Any field mapping corrections, custom field type adjustments, or issue type scheme changes happen in Sandbox before production migration. Sign-off on the Sandbox migration is required before we proceed to production.
User provisioning and resource-to-assignee mapping
We extract every distinct Merlin Project Resource (Person) from the Resource export and match by email against the Jira destination User table. Equipment and Material resources map to Components and custom fields respectively. Any Merlin Project resource without a matching Jira User goes to a reconciliation queue. The customer's Jira admin provisions missing Users or we provision them via the Jira API if granted admin credentials. Migration cannot proceed past issue import because Jira requires a valid Assignee reference on every issue.
Production migration in dependency order
We run production migration in record-dependency order: Jira Project and issue type schema (already validated in Sandbox), Milestones and Epics (parent-level items), Activities mapped to Stories and Tasks (with Epic Link populated), Subtasks (with parent Issue key resolved), Issue Links (after both linked issues exist), Attachments (via Jira Bulk API with 10 MB file size limit handling), Comments (in timestamp order), and custom field values. Each phase emits a row-count reconciliation report. Jira's REST API rate limits (10,000 requests per minute in Cloud) are respected with exponential backoff and batch chunking.
Cutover, validation, and non-exportable view documentation
We freeze Merlin Project writes during cutover, run a final delta pass for any records modified during the migration window, then enable Jira as the system of record. We deliver a Non-Exportable View Report documenting every Kanban board, Mindmap structure, Netplan view, and Report that requires manual re-creation, with screenshots from the customer's pre-migration screenshots. We deliver a dependency mapping document with the original Merlin Project dependency types and their Jira link equivalents. We support a one-week hypercare window for reconciliation issues. We do not rebuild Merlin Project scheduling rules, custom formatting styles, or project templates as Jira configurations; those are documented for the customer's admin.
Platform deep dives
Merlin Project
Source
Strengths
Weaknesses
Jira
Destination
Strengths
Weaknesses
Complexity grading
Moderate Project Management migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Merlin Project and Jira.
Object compatibility
4 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Merlin Project: Not applicable.
Data volume sensitivity
Merlin Project doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Merlin Project to Jira migration scoping. Not seeing yours? Book a call.
Walk through your Merlin Project to Jira migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Merlin Project
Other ways to arrive at Jira
Same-Project Management migrations
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.