Project Management migration
Field-level mapping, validation, and rollback between CONTACT Project Office and Microsoft Project. We move data and schema; workflows are rebuilt natively in Microsoft Project.
CONTACT Project Office
Source
Microsoft Project
Destination
Compatibility
6 of 10
objects map 1:1 between CONTACT Project Office and Microsoft Project.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from CONTACT Project Office to Microsoft Project is a migration that begins with data discovery rather than a defined API. Public documentation on CONTACT Project Office is sparse, which means every engagement starts with a scoping call to inventory what actually exists in the source instance — Projects, Tasks, Subtasks, Resources, Assignees, Custom Fields, Attachments, and Comments — before defining what can be extracted and how it maps into Microsoft Project's schema. We work from whatever export format the source instance produces, normalizing the output into a FlitStack AI staging format before load. We migrate task hierarchies (WBS), baseline data where available, resource pools, and Custom Fields mapped to Microsoft Project's typed custom field slots. We do not migrate workflows, automations, or reporting configurations as code; we deliver a written inventory of these for the customer's admin to rebuild in Microsoft Project after cutover.
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 CONTACT Project Office 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.
CONTACT Project Office
Project
Microsoft Project
Project
1:1CONTACT Project Office Projects map directly to Microsoft Project project files or Project Online project records. We use the source Project Name as the destination project name and the source project start date or creation date as the project StartDate. If the source export includes a project-level description or status field, we map it to the Project Summary Task Name field or a custom Project-level text field. The destination project must be provisioned (or a .mpp template created) before any task hierarchy insert begins.
CONTACT Project Office
Task
Microsoft Project
Summary Task and Task
1:1CONTACT Project Office Tasks map to Microsoft Project Task records. Summary tasks in Microsoft Project (those with child tasks indented beneath them) represent the same hierarchy as the source WBS. We preserve the task Name, Start and Finish dates, Duration, and the predecessor/successor dependency chain if exported as predecessor ID references. Task hierarchy is resolved before insert so that parent task IDs are available for child task assignment during the load sequence.
CONTACT Project Office
Subtask
Microsoft Project
Task (sub-level)
1:manySubtasks in CONTACT Project Office map to Microsoft Project Tasks with an outline level greater than 1. We flatten the subtask structure into a single task table with OutlineLevel and WBS code preserving the original hierarchy depth. If the source distinguishes between a subtask and a summary task (a row with children versus a row without), we assign Task.Summary = True for rows that have children in the source. The OutlineNumber is computed from the parent's outline position plus a sequential child index.
CONTACT Project Office
Resource
Microsoft Project
Resource
1:1CONTACT Project Office Resources map to Microsoft Project Resources. The source resource Name, Email (if available), Max Units, and calendar data map to Resource.Name, Resource.Initials, Resource.MaxUnits, and Resource.BaseCalendar respectively. If the source export includes an hourly cost rate or material label, we set Resource.StandardRate and Resource.Type (0 = Material, 1 = Work). Resource groups from the source map to Resource.Group.
CONTACT Project Office
Assignment
Microsoft Project
Assignment
1:1CONTACT Project Office task assignments map to Microsoft Project Assignments (task-resource rows). We resolve the source task ID and source resource ID to the Microsoft Project TaskUID and ResourceUID generated during the task and resource loads. The source assignment units or effort percentage maps to Assignment.Units, and the source start/finish dates for the assignment map to Assignment.Start and Assignment.Finish. If the source assignment has a percent complete value, we set Assignment.PercentWorkComplete after the assignment row is inserted.
CONTACT Project Office
Custom Field
Microsoft Project
Custom Field
lossyCONTACT Project Office custom field definitions vary by instance. We inventory the custom field names and data types during data discovery and pre-create the corresponding Microsoft Project custom fields (up to 10 per object type, per Microsoft Project limits). Text fields map to TextN custom fields; number fields map to NumberN; date fields map to DateN; flag fields map to FlagN. Custom field values migrate as Lookup table entries if the source field uses a picklist-style enumeration, or as raw values if the source field is free-form text. The customer approves the field-type mapping during schema validation before any data loads.
CONTACT Project Office
Comment
Microsoft Project
Note
1:1CONTACT Project Office Comments attached to tasks map to Microsoft Project Notes on the corresponding Task record. If the source comment has an author name and timestamp, we prepend that metadata to the note body. Notes are inserted after all task records exist so that the TaskUID is available for the Note.TaskUID foreign key. If the source stores comments as a separate entity with a many-to-one relationship to tasks, we join them to the task during normalization before the Notes phase.
CONTACT Project Office
Attachment
Microsoft Project
Document (SharePoint/PWA)
lossyCONTACT Project Office file attachments do not have a documented export path in the available source evidence. We flag attachments during data discovery as a separate migration scope. If the destination is Project Online or Project for the web, we document the SharePoint document library path and provide a file-level copy script using the source export location and the destination SharePoint URL. For Project desktop destinations, attachments are migrated to a parallel file directory and documented as a manual relinking step for the customer admin.
CONTACT Project Office
Milestone
Microsoft Project
Milestone
1:1If the source CONTACT Project Office data includes task records flagged as milestones (zero duration, milestone indicator), we map those to Microsoft Project Milestone tasks (Task.IgnoreProjectCalendar = Yes and Task.Type = 1 for Fixed Duration, or Task.Milestone = True). The milestone Name and Finish date transfer directly. The milestone's position in the WBS is preserved via OutlineNumber.
CONTACT Project Office
Baseline
Microsoft Project
Baseline
lossyBaseline data migration is conditional on what the source export contains. If the source CONTACT Project Office export includes baseline dates or planned values, we set Microsoft Project Task.BaselineStart, Task.BaselineFinish, Task.BaselineWork, and Task.BaselineCost for each task. We validate that the destination project has a Baseline number selected (Baseline0 through Baseline10) before inserting. If the source does not include baseline data, we set the Microsoft Project baseline on the first post-migration snapshot as the customer's admin task.
| CONTACT Project Office | Microsoft Project | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Summary Task and Task1:1 | Fully supported | |
| Subtask | Task (sub-level)1:many | Fully supported | |
| Resource | Resource1:1 | Fully supported | |
| Assignment | Assignment1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Comment | Note1:1 | Fully supported | |
| Attachment | Document (SharePoint/PWA)lossy | Fully supported | |
| Milestone | Milestone1:1 | Fully supported | |
| Baseline | Baselinelossy | 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.
CONTACT Project Office gotchas
Public documentation is limited; API surface is gated to customers
Project structure is template-driven and may include CIM Database links
Hybrid agile + classical tasks coexist in the same project
Ratings and peer feedback are sparse — discovery has to be customer-led
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
Data discovery and export format identification
We schedule a data discovery call with the customer's CONTACT Project Office administrator to inventory the source instance: active projects, task counts, resource records, custom field definitions, attachment locations, comment volume, and any baseline or historical data. We identify the available export mechanism — whether a built-in export function, a database query, a screen-level CSV dump, or a manual data pull. If no documented API exists, we define a manual extraction workflow and normalize the result into a FlitStack AI staging format. The discovery output is a written scope document with source record counts and a confirmed export format.
Microsoft Project destination provisioning
We confirm the target Microsoft Project product: Project Plan 3 web (Project for the web), Project Online PWA, or the desktop client with a provisioned Project Online tenant. We pre-create the destination project in the target environment and pre-create all custom fields (up to 10 per object type) using the types decided during data discovery. If the destination is Project Online, we validate the tenant's SharePoint document library configuration for attachment targets. The customer approves the destination schema before any data loads begin.
Source data normalization and hierarchy reconstruction
We transform the source export into FlitStack AI staging records: one Project record, task records with computed OutlineLevel and WBS path, resource records with BaseCalendar assignments, and assignment rows with resolved task-resource IDs. If the source produces flat task rows without parent references, we reconstruct the hierarchy from indentation levels or path prefixes. Custom field values are normalized to the type-mapped destination custom fields. This phase emits a normalized staging CSV for each object type, validated for required field presence and foreign key completeness.
Sandbox or pilot migration and reconciliation
We run a full load into a non-production Microsoft Project environment (Project Online Sandbox or a desktop .mpp opened in the desktop client) using the normalized staging data. The customer's project manager or PMO lead reconciles record counts: projects in, tasks in (with outline levels verified), resources in, assignments in, custom field values spot-checked against the source. Any missing parent links, unresolvable resource references, or custom field type mismatches are corrected in the normalization layer before a second pilot run validates the fix.
Production migration in dependency order
We run the production migration in record-dependency sequence: Projects first (to establish the project context), Resources next (to satisfy resource lookups on assignments), Tasks with WBS hierarchy resolved (parent rows inserted before children), Custom Fields on tasks and resources (after the base records exist), Assignments (with resolved TaskUID and ResourceUID), Notes (after tasks exist), and Baseline data (last, if available). Each phase produces a row-count reconciliation report. We use the Microsoft Project desktop client import function or Project Online REST API depending on the destination product.
Cutover, validation, and automation inventory handoff
We freeze writes to the source CONTACT Project Office instance during cutover and run a final delta migration of any records modified during the final window. We validate the destination Microsoft Project plan: task count, hierarchy depth, resource assignments, custom field coverage, and note presence. We deliver a written inventory of any CONTACT Project Office workflows, automations, or reporting configurations that were not migrated (per FlitStack AI scope) so that the customer's admin can rebuild them in Microsoft Project. We provide a one-week hypercare window for reconciliation issues raised during the first week of active use in Microsoft Project.
Platform deep dives
CONTACT Project Office
Source
Strengths
Weaknesses
Microsoft Project
Destination
Strengths
Weaknesses
Complexity grading
Moderate Project Management migration. 7 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 CONTACT Project Office and Microsoft Project.
Object compatibility
7 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
CONTACT Project Office: Not publicly documented — confirmed with CONTACT support per tenant during scoping..
Data volume sensitivity
CONTACT Project Office 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 CONTACT Project Office to Microsoft Project migration scoping. Not seeing yours? Book a call.
Walk through your CONTACT Project Office 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 CONTACT Project Office
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.