Project Management migration

Migrate from Merlin Project to Asana

Field-level mapping, validation, and rollback between Merlin Project and Asana. We move data and schema; workflows are rebuilt natively in Asana.

Merlin Project logo

Merlin Project

Source

Asana

Destination

Asana logo

Compatibility

93%

14 of 15

objects map 1:1 between Merlin Project and Asana.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Merlin Project to Asana requires a file-export-based migration rather than an API-based migration, which is the most significant constraint on the source side. Merlin Project has no public REST API, so every object must be extracted by opening each view in the desktop application, configuring visible columns to include custom fields and Notes, and running CSV export per open view. We scope these exports by view type, validate column completeness against a pre-migration checklist, and parse the resulting CSVs into Asana's data model. Activities with duration and date fields map directly to Asana tasks; Dependencies stored as predecessor/successor references in CSV require a transform step to become Asana dependencies; Resources with hourly rates map to Asana Assignees with time tracking notes rather than a native rate field. The four non-exportable views (Mindmap, Kanban, Netplan, Reports) cannot be migrated programmatically. We document these as manual handoff items with screenshots the customer captures before migration and a written rebuild guide for Asana. We do not migrate Merlin Project reports, automations, or resource-level conflict indicators as these are in-app constructs without a data export path.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Merlin Project logo

Merlin Project

What's pushing teams away

  • The desktop-first design makes real-time team collaboration difficult — sharing data requires exporting files rather than having a shared web-based workspace.
  • Organizations requiring a documented public REST API for integrations with accounting systems, CRMs, or custom dashboards find Merlin Project has no such interface.
  • Teams used to browser-based project tools like Asana or Monday report a steep workflow adjustment when switching to a native desktop application.
  • Scaling to enterprise multi-user management requires manual license distribution with individual license codes rather than SSO or directory-based provisioning.
  • Projects requiring web-based client portals or external stakeholder access cannot be accommodated without exporting and hosting project data separately.

Choosing

Asana logo

Asana

What's pulling them in

  • Organizations with distributed teams cite Asana's multiple project views (List, Board, Calendar, Timeline) as the primary reason for adoption, allowing each team member to work in their preferred interface without changing the underlying data.
  • The platform's 100+ native integrations with tools like Slack, Google Drive, Salesforce, and Microsoft Teams reduce context-switching and keep work synchronized across the stack.
  • Small teams and non-profits value the free plan's generous limits: unlimited projects and tasks for up to 15 team members with basic views, enabling teams to validate fit before committing to a paid tier.
  • Marketing and creative teams specifically praise Asana's visual project organization, reporting dashboards, and timeline views for managing cross-functional campaign workflows.
  • Project managers report that Asana's dependency management and workload views help surface bottlenecks before they derail deadlines.

Object mapping

How Merlin Project objects map to Asana

Each row shows how a Merlin Project object lands in Asana, 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

maps to

Asana

Project

1:1
Fully supported

Merlin Project files map to Asana Projects. Each Merlin Project file is a self-contained project with nested Activities, Resources, and Assignments. We extract project metadata (name, start date, notes) from the Gantt view CSV and create a corresponding Asana Project with the project start date set as a custom field since Asana Projects do not have a native start date field separate from the first task due date. Projects are created before any child object import so that Asana GID references are available for task assignment.

Merlin Project

Activity

maps to

Asana

Task

1:1
Fully supported

Merlin Activities map to Asana Tasks within the target Project. We parse activity_name, start_date, end_date, duration, notes, and custom properties from the CSV. Custom properties defined per project in Merlin appear as additional columns in the export and map to Asana custom fields (text, date, number, or enum depending on content). Task due dates in Asana map from Merlin end_date; start_date is preserved as a custom field since Asana Tasks do not have a native separate start date.

Merlin Project

Milestone

maps to

Asana

Task (marked as Milestone)

1:1
Fully supported

Merlin Milestones export as Activity rows with a milestone flag column. We set the Asana Task's start and due date to the milestone date and mark it as a Milestone subtask within the parent task hierarchy or as a top-level task with the milestone checkbox enabled. Milestone notes migrate as task descriptions.

Merlin Project

Dependency

maps to

Asana

Dependency

1:1
Fully supported

Merlin Dependencies are stored as predecessor/successor references per Activity in CSV export. We parse dependency_type (Finish-to-Start, Start-to-Start, Finish-to-Finish, Start-to-Finish) and the predecessor task reference. Asana's dependency API supports Finish-to-Start natively; Start-to-Start and Finish-to-Finish dependencies are recorded as custom fields on the task since Asana's UI only exposes Finish-to-Start. We reconstruct the full dependency chain and create Asana dependencies using the Asana REST API after tasks are inserted.

Merlin Project

Resource (Person)

maps to

Asana

User (Assignee)

1:1
Fully supported

Merlin Resources of type Person map to Asana Users by email lookup. The Merlin Resource export includes resource name, email (if entered), type, and hourly rate. We match by email against the destination Asana workspace members. Any Merlin Resource without an email or without a matching Asana User is placed in a reconciliation queue for the customer's admin to provision access before the migration runs. Hourly rates from Merlin are stored in a custom field on the migrated tasks for reference.

Merlin Project

Resource (Equipment/Material)

maps to

Asana

Custom Field or Tag

lossy
Fully supported

Merlin Resource types for equipment and materials do not have a direct Asana equivalent. Equipment resources map to a custom multi-select field (resource_type) on tasks with the value set to the equipment name. Material resources map to tags on the task. We recommend the customer's admin defines these custom fields in Asana before migration begins.

Merlin Project

Assignment

maps to

Asana

Task Assignee

1:1
Fully supported

Merlin Assignments (the linking table between Activities and Resources) export as rows with activity reference, resource reference, allocation percentage, and work units. We resolve the Asana Task GID from the Activity mapping, the Asana User GID from the Resource-User lookup, and set the task assignee. Allocation percentage is preserved as a note on the task since Asana does not have a native task-level allocation percentage field; we recommend a workload management review after migration.

Merlin Project

Attachment

maps to

Asana

Attachment

1:1
Fully supported

Merlin Attachments export as a CSV list with file names, paths, and parent activity references. We extract the file list and upload each file to the corresponding Asana Task as an attachment via the Asana Attachments API. File metadata (original upload date, file size) is preserved in the attachment record. Attachments are uploaded after all tasks exist in Asana to ensure the parent task GID is available.

Merlin Project

Custom Fields (Activity-level)

maps to

Asana

Custom Fields

1:1
Mapping required

Merlin Custom Fields defined at the Activity level appear as additional columns in the Activity CSV export if the exported view has those columns visible. We map column data types to Asana custom field types: text strings to text, dates to date, numbers to numeric, and enumerated values to enum. We create the custom fields in Asana under the project or organization's field library before migration, then populate values during task insert. Any custom field not visible in the exported view is omitted and flagged in the export checklist.

Merlin Project

Notes (Activity-level)

maps to

Asana

Task Description (Comments)

1:1
Fully supported

Merlin Activity Notes appear as a column in the exported view if the Notes column is visible. We migrate the Notes content as the Asana Task description (rich text). If the customer used Merlin's internal comments or annotations, these are not separately exportable and are flagged as a manual handoff item for the customer to copy manually into Asana task comments post-migration.

Merlin Project

Scheduling Constraints

maps to

Asana

Custom Fields

1:1
Mapping required

Merlin scheduling constraints (As Late As Possible, As Soon As Possible, Fixed Dates) are in-app flags that do not have a standard export field. We ask customers to document constraint values manually before migration and map them to Asana custom fields (constraint_type, constraint_date). Scheduling conflict indicators shown in Merlin's UI are not exported data and are not migrated; the destination system re-evaluates constraint validity independently.

Merlin Project

Mindmap View

maps to

Asana

Manual Rebuild (Documentation)

1:1
Not supported

Merlin Mindmap views cannot be exported to CSV or any interchange format. The brainstorming structure captured in Mindmap views is documented as a manual rebuild item. We ask the customer to screenshot the Mindmap view before migration and deliver a written guide for recreating the structure as a task hierarchy in Asana. This is a post-migration admin task, not a programmatic migration item.

Merlin Project

Kanban View

maps to

Asana

Manual Rebuild (Asana Board)

1:1
Not supported

Merlin's Kanban view is a visual board representation of Activities with status columns. The underlying Activity data is captured in the Activity export, but the board layout and column structure are not exportable. We migrate the Activity status column (if visible in the exported view) to an Asana custom field that can serve as the basis for an Asana Board view. The specific column structure and WIP limits from Merlin Kanban are documented for manual rebuild in Asana's Board view.

Merlin Project

Netplan View

maps to

Asana

Manual Rebuild (Asana Timeline with Dependencies)

1:1
Not supported

The Merlin Netplan view is a network diagram visualization over the dependency and scheduling data. It has no export format. The underlying Activities, Dependencies, and scheduling data are fully captured in the Activity and Dependency exports. We deliver a written guide for the customer to rebuild the network view in Asana's Timeline view using the migrated dependency chain. The Netplan visualization itself is not migratable.

Merlin Project

Reports View

maps to

Asana

Manual Rebuild (Asana Dashboards/Portfolios)

1:1
Fully supported

Merlin Reports are in-app generated charts and summaries with no export capability. The underlying data driving those reports (Activities, Resources, assignments) is fully migrated. Asana's reporting (Dashboards, Portfolios, custom formulas) replaces Merlin Reports. We deliver a written report inventory from the customer's screenshots taken before migration with recommended Asana Dashboard widget configurations for each.

Gotchas + challenges

What specifically takes care here

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 logo

Merlin Project gotchas

High

No public API — migrations run on CSV exports only

High

Mindmap, Kanban, Netplan, and Reports views are not exportable

Medium

CSV export captures only the currently open view's column set

Medium

Multi-user license management is per-seat with manual license codes

Low

Scheduling conflicts detected by Merlin are not exported

Asana logo

Asana gotchas

High

Automation rules have no export representation

High

API rate limits cap bulk migration throughput

Medium

Portfolios are view-only objects that do not hold data

Medium

Custom field enum options cannot be updated via API

Low

Subtasks do not appear in project views by default

Pair-specific challenges

  • No API forces per-view manual CSV export

    Merlin Project exposes no REST API. Every object we migrate must be exported manually from within the Merlin Project application by opening the relevant view, configuring visible columns to include custom fields and Notes, and running CSV export. We cannot initiate exports programmatically. This means migration timelines depend on manual export completion by the customer, and we provide a detailed export preparation checklist specifying which views to open, which columns to make visible, and how to run the export. Projects with many views require multiple export runs. We validate each CSV against the checklist before processing.

  • Mindmap, Kanban, Netplan, and Reports views cannot be exported

    Four view types in Merlin Project have no export path to any standard format. The data in these views exists as visual representations of Activities and Dependencies already captured in the Activity export. We ask customers to screenshot these views before migration begins and deliver a written inventory of what must be manually recreated in Asana: Kanban board structure as an Asana Board view, Netplan network diagram as an Asana Timeline with dependency lines, Reports as Asana Dashboard widgets, and Mindmap brainstorming structure as a task hierarchy. This adds post-migration manual work that is not included in the standard migration scope.

  • CSV export captures only the open view's visible columns

    When exporting from Merlin Project, only columns currently visible in the exported view are included. Custom fields, Notes, resource rates, and constraint flags are omitted unless the view is pre-configured to show them. We address this by providing a column checklist for each view export: Activity name, start date, end date, duration, notes, custom fields, resource assignment, and constraint columns must all be visible before running the export. We validate the exported CSV row count and column set before processing begins and request re-export with corrected columns if anything is missing.

  • Dependency types beyond Finish-to-Start have limited Asana support

    Merlin Project supports four dependency types: Finish-to-Start, Start-to-Start, Finish-to-Finish, and Start-to-Finish. Asana's dependency UI natively supports only Finish-to-Start. Start-to-Start and Finish-to-Finish dependencies are stored as custom fields on the task rather than as native dependency records. We parse all four dependency types from the Merlin export, create Finish-to-Start dependencies natively in Asana via the API, and tag the non-standard dependency types on the affected tasks with a custom field for the customer's admin to manage in Asana or resolve to Finish-to-Start.

  • Resource hourly rates have no native Asana equivalent

    Merlin Resources carry hourly rates for cost tracking. Asana has no native hourly rate field on tasks or assignees. We preserve Merlin resource rates in a custom field on the migrated tasks (resource_hourly_rate__c) as a reference value. Asana's workload management feature shows allocation by task count but not cost. Customers needing cost tracking post-migration should consider an Asana-compatible resource management integration or export the custom rate field to a BI tool for reporting.

Migration approach

Six steps for a successful Merlin Project to Asana data migration

  1. Export preparation and column checklist

    We provide the customer with a structured export checklist specifying the five Merlin Project views to open and export: Activity/Gantt view, Resource view, Assignment view, Attachment view, and any view containing custom fields. For each view, we list the exact columns that must be visible before export, including Notes, custom properties, resource rates, and constraint flags. The customer runs these exports from within Merlin Project on macOS or iPad. We review each exported CSV for row count, column completeness, and data quality before processing begins.

  2. Project and workspace setup in Asana

    We create the target Asana Projects using the Asana API, setting project name, default view (Timeline recommended for projects with Gantt heritage), and project start date as a custom field. If the customer has multiple Merlin Project files, we create corresponding Asana Projects and map them 1:1. We create any custom fields in Asana (resource type, hourly rate, constraint type, milestone flag) under the project's field library or organization library before any task data is loaded.

  3. Dependency parsing and non-standard dependency tagging

    We parse the Merlin Activity CSV for dependency columns (predecessor references and dependency type). Finish-to-Start dependencies are converted to Asana dependency records via the Asana API after the dependent tasks exist. Start-to-Start, Finish-to-Finish, and Start-to-Finish dependencies are parsed, stored in a custom field on the successor task (dependency_type__c), and the customer is notified of the non-standard mapping for manual resolution in Asana if needed. The full dependency chain is validated against the Merlin export to confirm no references are orphaned.

  4. User reconciliation and resource mapping

    We extract every Merlin Resource referenced in the Assignment export, match by email against the Asana workspace members list, and build a resource-to-user lookup table. Any Merlin Resource without an email or without a matching Asana User is flagged in the reconciliation report. The customer's admin provisions the missing Asana users before the migration proceeds to the task insert phase. Resource type (Person, Equipment, Material) and hourly rates are mapped to custom fields on the tasks.

  5. Task, attachment, and engagement migration

    Activities are inserted as Asana Tasks via the Asana API in dependency order (tasks with no predecessors first, then successors once predecessor GIDs are known). Custom field values from the Merlin Activity export populate the corresponding Asana custom fields. Attachments are uploaded to the corresponding task GID. Activity Notes migrate as task descriptions. Non-exportable view documentation (screenshots of Mindmap, Kanban, Netplan, Reports) is collected from the customer's pre-migration capture and packaged as a manual rebuild guide delivered alongside the migrated data.

  6. Cutover, validation, and manual rebuild handoff

    We run a final delta migration for any Merlin records modified during the export and migration window, then deliver the completed Asana workspace with row-count reconciliation against the source CSVs. We deliver the non-exportable view rebuild guide covering Mindmap structure, Kanban board layout, Netplan network diagram, and Reports with recommended Asana equivalents. We support a three-day hypercare window for data discrepancy resolution. We do not rebuild Merlin automations in Asana as these are not exportable; the rebuild guide is a documented handoff for the customer's admin.

Platform deep dives

Context on both ends of the pair

Merlin Project logo

Merlin Project

Source

Strengths

  • Native macOS and iPad application with consistent Apple UI patterns and offline-first operation.
  • Full Gantt chart with WBS work breakdown, milestone tracking, and multiple dependency types including Finish-Start, Start-Start, Finish-Finish, and Start-Finish.
  • Multi-device sync across Mac, iPad, iPhone, and Apple Vision Pro using Merlin Project's native synchronization protocol.
  • Resource management with person, equipment, and material resource types including hourly rates for cost tracking.
  • 30-day free trial with full feature access, no credit card required for evaluation.

Weaknesses

  • No documented public REST API — all data exchange requires manual CSV exports per open view, which limits automation and integration options.
  • Desktop-first architecture makes real-time multi-user collaboration and web-based stakeholder access difficult without exporting files.
  • Multi-user enterprise management relies on individual license code distribution rather than SSO, SCIM, or directory-based user provisioning.
  • Mindmap, Kanban, Netplan, and Reports views cannot be exported to any standard format, requiring manual re-creation of these elements after migration.
  • Collaboration features are limited to Merlin Project's native sync between own devices; there is no shared web workspace for external team members.
Asana logo

Asana

Destination

Strengths

  • Unlimited projects and tasks on the free plan for teams up to 15 members.
  • 100+ native integrations including Salesforce, Slack, Google Drive, and Microsoft Teams.
  • Four distinct project views (List, Board, Calendar, Timeline) in a single interface.
  • Dependency management with start/end dates and predecessor links for critical path tracking.
  • Portfolio dashboards for executives to track cross-project status and workload.

Weaknesses

  • Per-seat pricing scales expensively: Advanced tier costs nearly double Starter for a 50-seat team.
  • API does not expose all UI-accessible data; some fields require screen-scraping for full fidelity.
  • Automation rule limits on lower tiers are restrictive, causing power users to upgrade or leave.
  • No native document/wiki capability forces teams to use external tools for knowledge management.
  • Rate limits (150 req/min on free, 1,500 req/min on paid) constrain bulk migration throughput.

Complexity grading

How hard is this migration?

Standard Project Management migration. 3 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Merlin Project and Asana.

  • Object compatibility

    B

    3 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Merlin Project: Not applicable.

  • Data volume sensitivity

    B

    Merlin Project doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Merlin Project to Asana migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Merlin Project to Asana data migrations

Answers to the questions buyers ask most during Merlin Project to Asana migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Merlin Project to Asana migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Simple migrations with a single Merlin Project file, under 500 Activities, a flat dependency chain, and no non-exportable view dependencies land between two and four weeks. Migrations with multiple project files, complex multi-type dependency structures (Start-to-Start, Finish-to-Finish alongside Finish-to-Start), high attachment volume, or extensive custom field sets requiring manual Asana rebuild move to six to ten weeks. The primary variable is how quickly the customer completes the manual CSV exports from within Merlin Project; we can parallelize the Asana-side setup while exports are in progress.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Merlin Project.
Land in Asana, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day