Project Management migration
Field-level mapping, validation, and rollback between Dart and Microsoft Project. We move data and schema; workflows are rebuilt natively in Microsoft Project.
Dart
Source
Microsoft Project
Destination
Compatibility
6 of 10
objects map 1:1 between Dart and Microsoft Project.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Microsoft Project
Project or Enterprise Project Web App
1:1Dart 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
Microsoft Project
Project
1:1Dart 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
Microsoft Project
Task (Outline Row)
1:1Dart 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
Microsoft Project
Task (Outline Row at Sub-level)
1:manyDart 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
Microsoft Project
Resource or Resource Assignment
1:1Dart 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)
Microsoft Project
Custom Fields
lossyCustom 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
Microsoft Project
Custom Field Values
1:1After 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
Microsoft Project
Custom Number Field or Project Online Timesheet
lossyDart 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
Microsoft Project
SharePoint Document or Project Attachment
1:1Dart 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
Microsoft Project
Custom Fields or Project Phase
lossyDart'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.
| Dart | Microsoft Project | Compatibility | |
|---|---|---|---|
| Workspace | Project or Enterprise Project Web App1:1 | Fully supported | |
| Project | Project1:1 | Fully supported | |
| Task | Task (Outline Row)1:1 | Fully supported | |
| Subtask | Task (Outline Row at Sub-level)1:many | Fully supported | |
| Assignee | Resource or Resource Assignment1:1 | Fully supported | |
| Custom Fields (Definition) | Custom Fieldslossy | Mapping required | |
| Custom Field Values | Custom Field Values1:1 | Fully supported | |
| Time Entry | Custom Number Field or Project Online Timesheetlossy | Fully supported | |
| Attachment | SharePoint Document or Project Attachment1:1 | Fully supported | |
| Sprint | Custom Fields or Project Phaselossy | Fully supported |
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.
Dart gotchas
Sparse public API documentation limits pre-migration discovery
Workspace-level custom field definitions require separate migration step
Attachment storage model requires double-handling
Microsoft Project gotchas
Project for the web is being retired and merged into Microsoft Planner
Planner-tier portfolio features are incomplete despite Plan 5 labeling
Web app constraint controls are weaker than the Windows desktop client
Project requires a separate license not bundled with standard Microsoft 365
Project Online API is edition-gated and inconsistently documented
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Dart
Source
Strengths
Weaknesses
Microsoft Project
Destination
Strengths
Weaknesses
Complexity grading
Standard Project Management migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Dart and Microsoft Project.
Object compatibility
3 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
Dart: Not publicly documented outside the OpenAPI spec — confirmed during scoping and validated empirically before any bulk extraction..
Data volume sensitivity
Dart 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 Dart to Microsoft Project migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Dart
Other ways to arrive at Microsoft Project
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.