Project Management migration

Migrate from Dart to Microsoft Project

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

Dart logo

Dart

Source

Microsoft Project

Destination

Microsoft Project logo

Compatibility

60%

6 of 10

objects map 1:1 between Dart and Microsoft Project.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Dart to Microsoft Project is a structural translation, not a flat record copy. Dart organizes work in Workspaces containing Projects with a task hierarchy; Microsoft Project represents the same work as a Gantt chart with an outline numbered task list where each row is a task. We reconstruct Dart's nested subtask tree as Microsoft Project outline rows using the parent_task_id reference, increment outline levels during load, and preserve the full task hierarchy as indent relationships. Custom fields in Dart are defined at the Workspace level and then assigned per task; we sequence field definition creation before any task record import to prevent silent data loss. The Microsoft Project API landscape is constrained — Project Desktop (.mpp) requires file-based import via Microsoft Project's own import engine, while Project Online uses a more capable REST interface; we scope the export strategy during discovery based on the destination subscription tier. We do not migrate Dart's AI features, automations, or native integrations as code; we deliver a written inventory of these for the customer's admin team to evaluate for rebuild in Power Automate or native Microsoft Project.

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

Dart logo

Dart

What's pushing teams away

  • Smaller installed base and ecosystem than Linear, Jira, Asana, or ClickUp — fewer prebuilt apps, no large marketplace, and limited third-party reporting connectors beyond the documented Slack, Discord, GitHub, and Zapier integrations.
  • AI-heavy positioning means heavy reliance on ChatGPT/Claude credentials and model availability; teams in regulated industries or with strict data-residency requirements may need to disable or vet those integrations carefully.
  • Public API rate limits and bulk endpoints are not published outside the OpenAPI spec, so large historical exports require a careful test loop rather than relying on a documented batch contract.
  • Business-tier features such as SAML SSO, SCIM, advanced analytics, and granular access management require the top tier; teams that need SSO without a deep AI roadmap find the Premium-to-Business price jump harder to justify.
  • As a newer product, change cadence is high — feature names, MCP server endpoints, and integration patterns have shifted recently (per the vendor's own help docs noting a simplified hosted MCP), which can introduce migration churn.

Choosing

Microsoft Project logo

Microsoft Project

What's pulling them in

  • Organizations already running Microsoft 365 and Azure AD adopt Microsoft PPM because it slots into existing identity, Teams, and SharePoint infrastructure without requiring a separate identity provider or SSO vendor.
  • Enterprise PMOs choose it for critical-path scheduling, baseline comparison, cross-project dependencies, and resource utilization reporting that standalone PM tools cannot replicate at this depth.
  • Project Online's integration with Power BI gives portfolio-level dashboards and cost-rollup reporting that satisfies executive governance requirements without third-party BI tooling.
  • Government, financial services, and healthcare organizations select it because FedRAMP, ISO 27001, and SOC 2 compliance certifications meet enterprise procurement requirements out of the box.
  • Large IT departments default to it as the market-leader in project portfolio management software, often driven by corporate licensing agreements that bundle it with other Microsoft 365 seats.

Object mapping

How Dart objects map to Microsoft Project

Each row shows how a Dart object lands in Microsoft Project, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Dart

Workspace

maps to

Microsoft Project

Project or Enterprise Project Web App

1:1
Fully supported

Dart Workspaces are the top-level organizational container and map to Microsoft Project as either standalone Project plans (Project Plan 1 or Plan 5) or as projects within Project Online's Project Web App (PWA). We migrate workspace metadata, team membership, and the workspace's root-level project list. Workspace permission roles are not a native Project construct; we document the role-to-resource mapping as a written deliverable for the customer's admin to configure in PWA resource engagement sheets.

Dart

Project

maps to

Microsoft Project

Project

1:1
Fully supported

Dart Projects are the work container within a Workspace and map directly to a Microsoft Project file (MPP or cloud Project plan). Project metadata including name, description, start date, and target end date migrate to the Project Summary fields. The full task list nested under the Dart Project is loaded into the Project as outline rows. We preserve the project-level custom fields from Dart as Project-level custom fields in Microsoft Project.

Dart

Task

maps to

Microsoft Project

Task (Outline Row)

1:1
Fully supported

Dart Tasks map to Microsoft Project Task rows. Standard fields (name, description, due date, start date, status, priority, assignee) migrate to their Microsoft Project equivalents (Name, Notes, Deadline, Start, Status, Priority, Resource Names). Microsoft Project uses an outline hierarchy for subtasks; we reconstruct the parent-child relationships from Dart's parent_task_id by creating outline indent levels during task import.

Dart

Subtask

maps to

Microsoft Project

Task (Outline Row at Sub-level)

1:many
Fully supported

Dart subtasks do not have a separate object — they are Tasks with a parent_task_id reference to a parent Task. We resolve this by reading the full task tree, sorting by depth level, and creating outline indent levels in Microsoft Project that reflect the nesting. Outline Number and WBS fields in Microsoft Project preserve the hierarchical path for reporting. Subtask notes, dates, and custom field values map independently per row.

Dart

Assignee

maps to

Microsoft Project

Resource or Resource Assignment

1:1
Fully supported

Dart Assignees reference user IDs by email. We cross-reference Dart assignee emails against the Microsoft Project resource list. If the resource does not exist in the destination Project or PWA resource pool, we create a placeholder resource with the name and flag it for the customer's admin to resolve before the final assignment pass. Assignment hours are estimated from Dart's task workload estimate if available.

Dart

Custom Fields (Definition)

maps to

Microsoft Project

Custom Fields

lossy
Mapping required

Custom fields in Dart are defined at the Workspace level and applied per-task within a Project. We extract all field definitions (field name, type, options) separately from the field values, then recreate the destination custom fields in Microsoft Project before any task record import. This sequencing is required because Microsoft Project ignores custom field values on tasks if the field definition has not been created at the project level. Field type mapping: Dart text, number, date, and dropdown map to Microsoft Project Text, Number, Date, and Flag or Dropdown custom fields respectively.

Dart

Custom Field Values

maps to

Microsoft Project

Custom Field Values

1:1
Fully supported

After the field definitions are created in the destination Project, we load task custom field values from Dart. Values are matched to tasks by the Dart task ID preserved as a Project-level custom field (Dart_ID__c) on every task row. If a task value references a custom field option that does not exist in Microsoft Project (for example, a dropdown value created after scoping), we set the value to blank and flag it in the reconciliation report for the customer's admin to map.

Dart

Time Entry

maps to

Microsoft Project

Custom Number Field or Project Online Timesheet

lossy
Fully supported

Dart time entries are linked resources with duration, billable flag, and user reference. Microsoft Project standard does not have a native time tracking object. For Project Plan 5 or Project Online, we map time entry duration to a custom Number field (Time_Logged_hrs__c) on the task and note that full time-tracking requires Project Online's timesheet module, which requires PWA configuration. We deliver a written recommendation on whether to use custom fields or PWA timesheets based on the customer's billing and reporting needs.

Dart

Attachment

maps to

Microsoft Project

SharePoint Document or Project Attachment

1:1
Fully supported

Dart stores attachments as separate linked resources per task or project. We download each attachment to temporary storage, upload to the destination SharePoint site (for Project Online) or embed in the .mpp file (for Project Desktop), then create a link from the migrated task row to the file location. SharePoint URL preservation is not guaranteed because the SharePoint site structure may change; we document the final URL mapping in the migration deliverable. For large attachment sets (over 2,000 files), this adds a meaningful parallel pass to the migration timeline.

Dart

Sprint

maps to

Microsoft Project

Custom Fields or Project Phase

lossy
Fully supported

Dart's sprint cycle rollover feature, cited positively in Capterra reviews, maps to Microsoft Project as either a custom Text field (Sprint_Name__c) on task rows or as Project Phases (available in Project Online). If the customer uses Dart's sprint model, we ask during scoping whether they prefer sprint names as a custom task field or as Phase values in PWA. We do not migrate sprint archiving rules as these are Dart-specific behavioral settings.

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.

Dart logo

Dart gotchas

High

Sparse public API documentation limits pre-migration discovery

Medium

Workspace-level custom field definitions require separate migration step

Medium

Attachment storage model requires double-handling

Microsoft Project logo

Microsoft Project gotchas

High

Project for the web is being retired and merged into Microsoft Planner

Medium

Planner-tier portfolio features are incomplete despite Plan 5 labeling

Medium

Web app constraint controls are weaker than the Windows desktop client

High

Project requires a separate license not bundled with standard Microsoft 365

Medium

Project Online API is edition-gated and inconsistently documented

Pair-specific challenges

  • Microsoft Project lacks a standard REST API for data export

    Project Desktop uses the .mpp file format which requires Microsoft Project itself to open and export — there is no REST endpoint to read a local .mpp file programmatically. Project Online exposes a ProjectData.js OData endpoint and a REST API for Project Online, but access requires an active Project Online subscription and appropriate SharePoint permissions. During scoping, we must determine whether the destination is Project Desktop with .mpp file import, Project for the Web (cloud), or Project Online (PWA). The export mechanism changes materially: .mpp import requires the Microsoft Project import engine running in a Windows environment, while Project Online allows API-driven export. We cannot begin migration design without confirming the destination tier.

  • Dart custom field definitions must precede task data load

    Dart stores custom field definitions at the Workspace level, separate from the field values stored on tasks. If we load task records into Microsoft Project before recreating the corresponding custom field definitions, the imported values silently drop — Microsoft Project has no mechanism to accept values for undefined custom fields. We always sequence field definition creation as the first step after project creation, followed by a full field definition validation pass before any task data moves. This adds one to two planning days to the migration scope and is non-negotiable for data integrity.

  • Subtask hierarchy requires outline-level reconstruction

    Dart represents subtasks as Tasks with a parent_task_id pointing to the parent Task. Microsoft Project does not have a separate subtask object — it uses outline indentation levels where indent depth equals the hierarchy depth. We must read the full Dart task tree, compute depth levels, and then set Microsoft Project Outline Level and WBS fields during import. Tasks with circular parent references (edge case in Dart's data) are flagged and excluded from the hierarchy with a warning in the reconciliation report.

  • Attachments as linked resources require double-handling

    Dart stores attachment metadata (URL, filename, MIME type, size) as a linked resource on tasks rather than embedding the file content. We must make one API call per attachment to retrieve its URL and metadata, download the binary, upload it to the destination SharePoint site or embed it in the .mpp file, and then create a link from the migrated task to the new file. For migrations with thousands of attachments, this adds a sequential pass that can add days to the transfer phase and requires sufficient SharePoint storage allocation in the destination environment.

Migration approach

Six steps for a successful Dart to Microsoft Project data migration

  1. Discovery and destination tier confirmation

    We audit Dart across all Workspaces and Projects, extracting task count, subtask depth levels, attachment volume, custom field definitions and value counts, time entry records, and assignee list. Critical to this step: we confirm the Microsoft Project destination tier — Project Desktop (file-based .mpp), Project for the Web (cloud), or Project Online (PWA with SharePoint). The export mechanism and SharePoint dependency are determined here and drive the entire technical design. We also map Dart workspace names to proposed Project names and flag any name conflicts in the destination environment.

  2. Custom field definition creation

    We extract every Dart custom field definition from each Workspace (field name, type, picklist values) and recreate the equivalent custom fields in the destination Microsoft Project plan(s). For Project Online, this means using the Project Web App custom field interface to create enterprise-level custom fields mapped per project. For Project Desktop, we use the custom fields dialog on each imported Project. We validate that every custom field definition exists and is of the correct type before any task data is loaded. This step produces a field definition manifest that the customer's admin signs off on before data migration begins.

  3. Project structure and task hierarchy export

    We export all Dart Projects from each Workspace, reconstructing the full task hierarchy as a flat list with depth metadata (parent_task_id, outline_level computed from nesting depth). Tasks are sorted by hierarchy so that parent tasks are exported before their children, ensuring that when imported into Microsoft Project in sequence, each child task can be indented under its parent. We validate the hierarchy for circular references and orphan tasks during this pass and report any anomalies to the customer's admin before the project import.

  4. Resource and assignee resolution

    We extract all distinct assignee user IDs from Dart task records, resolve them to email addresses, and match against the destination Microsoft Project resource list. If the resource pool in Project Online or the resource sheet in Project Desktop does not contain a matching user, we create a placeholder resource with a flag and add it to a reconciliation queue. The customer's admin reviews and resolves placeholder resources (rename, reassign to a named resource, or mark inactive) before the assignment pass runs. This step is sequential with step 3 because task import cannot be finalized without resolved resource assignments.

  5. Production migration in dependency order

    We run production migration in this order: custom field definitions (validation confirmed), Projects (created with summary fields), tasks in hierarchy order (with outline levels set per row), custom field values per task, resource assignments per task, time entries mapped to custom number fields, and attachments downloaded and re-uploaded to SharePoint with relink to task. Each phase emits a row-count reconciliation report. For Project Online, we use the Project Online REST API with rate-limit handling and exponential backoff. For Project Desktop, we use the Microsoft Project import engine with CSV task data followed by the .mpp file export.

  6. Cutover, validation, and integration handoff

    We freeze Dart writes during cutover, run a final delta migration of any tasks modified during the migration window, then enable Microsoft Project as the system of record. We deliver a project map (Dart Project to Microsoft Project plan), a custom field manifest (Dart field to Project field), an attachment relocation report (original Dart URL to new SharePoint URL), and a resource reconciliation list. We do not migrate Dart automations, AI prompts, or integrations as code; we deliver a written inventory of each with a note on the recommended Power Automate or Microsoft Graph equivalent for the customer's admin to rebuild. We support a one-week post-cutover window to resolve reconciliation issues.

Platform deep dives

Context on both ends of the pair

Dart logo

Dart

Source

Strengths

  • Seamless integration with Flutter as a mobile-first project management option
  • Consistent and predictable syntax and API behavior according to developer reviews
  • Highly rated by small teams on G2 and Capterra with 4.4 to 5.0 star ratings
  • Simple interface that teams find straightforward to adopt
  • Supports monthly and yearly billing cycles with credit card and ACH payment options

Weaknesses

  • Limited public API documentation makes migration scoping harder
  • Small review sample size of 53 verified reviews on G2 means limited migration precedent data
  • Flutter-specific integration suggests limited appeal outside mobile-first teams
  • Custom field definitions are workspace-level and must be migrated separately from data
  • Attachment storage as linked resources requires an extra API pass and file re-upload step
Microsoft Project logo

Microsoft Project

Destination

Strengths

  • Deep critical-path scheduling with baseline comparison and cross-project dependency tracking unmatched by lighter PM tools.
  • Native Azure AD authentication, Teams integration, and Power BI reporting sit on infrastructure enterprises already license and manage.
  • Enterprise governance controls including demand intake workflows, resource request approval, and portfolio-level capacity analysis.
  • Supports both Waterfall and Agile methodologies within the same project, accommodating hybrid delivery teams.
  • Scalable from Project Plan 1 for small teams to Project Server on-premises for regulated industries with strict data-sovereignty requirements.

Weaknesses

  • Ease-of-use scores trail the category average by a wide margin; onboarding friction frustrates new users consistently across G2 and Capterra reviews.
  • Pricing ranks 42nd of 49 tools in its category — the total cost of ownership including IT administration and training is rarely recovered for small or mid-market teams.
  • No built-in client portal, external stakeholder sharing, or proofing workflow, limiting use cases to internal PMO environments only.
  • The web interface (Project for the web / Planner Premium) has materially weaker constraint controls and resource auto-leveling than the Windows desktop client.
  • Project for the web is being consolidated into Microsoft Planner, creating uncertainty about which product tier will host project portfolio data long-term.

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 Dart and Microsoft Project.

  • 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

    Dart: Not publicly documented outside the OpenAPI spec — confirmed during scoping and validated empirically before any bulk extraction..

  • Data volume sensitivity

    B

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

Estimator

Estimate your Dart to Microsoft Project 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 Dart to Microsoft Project data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 500 tasks with no attachments and a single Workspace. Migrations with large attachment volumes (over 2,000 files), complex nested subtask hierarchies (over 5 depth levels), multiple Workspaces each requiring a separate Project plan, or SharePoint attachment re-upload pass move to seven to ten weeks because of the multi-pass file handling and per-project custom field creation. The destination tier (Project Desktop vs. Project Online) also affects timeline — Project Online allows API-driven import which is faster than the .mpp file-based import required for Project Desktop.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dart.
Land in Microsoft Project, 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