Project Management migration
Field-level mapping, validation, and rollback between WP Project Manager and Microsoft Project. We move data and schema; workflows are rebuilt natively in Microsoft Project.
WP Project Manager
Source
Microsoft Project
Destination
Compatibility
9 of 12
objects map 1:1 between WP Project Manager and Microsoft Project.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from WP Project Manager to Microsoft Project is a migration that requires SQL-level extraction from the plugin's custom WordPress tables because WP Project Manager exposes no public REST API, webhook system, or bulk export endpoint. The plugin stores all project data in wp_cpm_projects, wp_cpm_messages, wp_cpm_task_relations, and wp_cpm_task_comments, with assignees stored as WordPress user IDs referencing wp_users. We read from a staging copy of the WordPress database, resolve WordPress user identities to Microsoft Project Resources by email, reconstruct task dependency trees from wp_cpm_task_relations, and land Milestone records as Microsoft Project Milestone tasks. We do not migrate Invoice records, Kanban board state, or Workflow-style automations; we document them in a written inventory for the customer's PMO to rebuild in Microsoft Project manually or via Power Automate. File attachments transfer via SFTP alongside the database export, with absolute URLs stripped and normalized to relative paths in the destination.
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 WP Project Manager 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.
WP Project Manager
Project
Microsoft Project
Project
1:1WP Project Manager Projects stored in wp_cpm_projects map to Microsoft Project plan files (MPP) or Project Online/Project for the web Project records. We extract project name, description, visibility flag, start date, and end date from wp_cpm_projects, and create the Microsoft Project plan with the equivalent project-level fields. If the customer uses Project Online, we create a project via the Project Online REST API (/_api/ProjectServer/Projects). If Project Desktop, we build the MPP structure programmatically via the MSProject object model or MPXJ library.
WP Project Manager
Task
Microsoft Project
Task
1:1WP Project Manager Tasks stored in wp_cpm_messages with type=task map to Microsoft Project Task records. We map task title (Name), description (Notes), Start (from start_date or computed from project start), Finish (from due_date), Priority, and Status (percent complete from completion percentage). Task IDs from wp_cpm_messages are preserved in a custom column for lookup reference during dependency reconstruction.
WP Project Manager
Subtask
Microsoft Project
Summary Task (Outline Level)
1:1WP Project Manager Subtasks stored in wp_cpm_task_relations with a parent task_id link map to Microsoft Project Tasks at a deeper outline level under the parent Task. We reconstruct the subtask tree by iterating wp_cpm_task_relations ordered by the parent_id relationship, setting Microsoft Project Task.OutlineLevel incrementally for each nesting depth. The original subtask ordering from wp_cpm_task_relations.position is preserved as the outline sequence.
WP Project Manager
Milestone
Microsoft Project
Milestone Task
1:1Milestones in WP Project Manager are stored as type=milestone records in wp_cpm_messages. We create Microsoft Project Task records with the Milestone flag set to True (Task.Milestone = pjYes) and zero duration. The linked task_ids in the milestone record migrate as a custom column (Milestone_Linked_Tasks__c) to preserve the task grouping context, since Microsoft Project does not have a native milestone-to-task grouping mechanism.
WP Project Manager
Task Dependency
Microsoft Project
Task Predecessor/Successor Link
1:1Dependencies between tasks in WP Project Manager are stored in wp_cpm_task_relations with relation_type flags (e.g., Finish-to-Start). We extract every dependency record, parse the relation_type to determine the Microsoft Project predecessor type (FS, FF, SS, SF), and create Task.PredecessorLinks on the successor Task pointing to the predecessor Task's UID. This is the highest-risk mapping step because circular dependencies in WP Project Manager must be detected and broken before insertion into Microsoft Project.
WP Project Manager
Comment
Microsoft Project
Task Note
1:1WP Project Manager task comments stored in wp_cpm_task_comments map to Microsoft Project Task.Notes fields. Since Microsoft Project does not have a native multi-comment threading model, we concatenate comments in reverse chronological order (newest first) with author name and timestamp prefixed to each entry. The format is: [YYYY-MM-DD HH:MM Author]: Comment body. If the comment references a file attachment, we include the normalized file path in the note text and flag it for the file transfer step.
WP Project Manager
File Attachment
Microsoft Project
File Attachment (Project Directory)
lossyFile attachments referenced in WP Project Manager task comments are stored as WordPress Media Library entries with paths in wp-content/uploads. Actual files must be transferred separately via SFTP or the hosting file manager. We pair the database export with a file manifest listing each attachment's WordPress path, the associated task reference, and the target directory in Microsoft Project (or the connected SharePoint/OneDrive location if using Project Online). Absolute URLs with the source domain are stripped and replaced with relative paths. The customer is responsible for executing the file transfer; we provide the manifest and target path mapping.
WP Project Manager
User / Assignee
Microsoft Project
Resource
1:1WP Project Manager assignees reference WordPress user IDs stored in wp_users. We extract wp_users (display_name, user_email, user_login) and create Microsoft Project Resources using user_email as the dedupe key. Resource.Name maps from display_name, Resource.Initials from the first letters of the name, and Resource.Type set to Material for non-hourly assignments. If the customer uses Project Online, Resources are created via the Project Online REST API (/_api/ProjectServer/Resources). WP roles and WordPress-specific capabilities do not map to Microsoft Project resource roles; we document the capability gap for the customer's PMO to address in resource governance.
WP Project Manager
Time Tracking Entry
Microsoft Project
Assignment with Actual Work
lossyTime tracking entries stored in the WP Project Manager premium time tracker sub-table (user_id, task_id, start, end, notes) map to Microsoft Project Resource Assignments. Each time entry creates an Assignment record on the matching Task, with Assignment.ActualWork computed from the duration between start and end timestamps. The time entry notes migrate to Assignment.Notes. Note that Microsoft Project requires the Resource to have a calendar and Max Units set before Assignment records can be inserted; we run Resource provisioning before Assignment migration.
WP Project Manager
Custom Field
Microsoft Project
Custom Field
lossyWP Project Manager Custom Fields are stored as PHP-serialized arrays in wp_postmeta. We deserialize each array using a staging script, normalize field names (removing wp_ prefixes and special characters), infer the data type (text, number, date, checkbox), and create matching Microsoft Project custom fields. Text fields become Text1-30 custom fields; numeric values become Number1-20; dates become Date1-10; checkboxes become Flag1-20. The customer chooses the specific field numbers during scoping. Any deserialization failures are logged and reported in the migration summary; serialized data that cannot be parsed is flagged as unmigrated in the inventory.
WP Project Manager
Gantt Chart Data
Microsoft Project
Task Dates and Dependencies
1:1WP Project Manager's Gantt chart view is derived from task start dates, due dates, and dependency links stored in wp_cpm_task_relations. We extract the dependency links (see Task Dependency mapping) and reconstruct them in Microsoft Project as Predecessor-Successor links. Start dates and due dates on tasks map directly to Task.Start and Task.Finish. The visual Gantt layout in WP Project Manager is a view property and does not migrate; the underlying scheduling data does.
WP Project Manager
Invoice
Microsoft Project
Not Migrated
1:1Invoice records in WP Project Manager are tightly coupled to WooCommerce and Stripe integrations and have no clean export path. We do not migrate Invoice data. We recommend exporting invoices as PDF reports from WP Project Manager's UI before migration begins and storing them in a shared drive. The associated task and time tracking data migrates normally; financial records must be re-created in the destination accounting or billing tool.
| WP Project Manager | Microsoft Project | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Subtask | Summary Task (Outline Level)1:1 | Fully supported | |
| Milestone | Milestone Task1:1 | Fully supported | |
| Task Dependency | Task Predecessor/Successor Link1:1 | Fully supported | |
| Comment | Task Note1:1 | Fully supported | |
| File Attachment | File Attachment (Project Directory)lossy | Fully supported | |
| User / Assignee | Resource1:1 | Fully supported | |
| Time Tracking Entry | Assignment with Actual Worklossy | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Gantt Chart Data | Task Dates and Dependencies1:1 | Mapping required | |
| Invoice | Not Migrated1:1 | 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.
WP Project Manager gotchas
No public API forces database-level migration
WordPress user table is the identity layer
Serialized PHP data in custom fields and settings
Attachment files are not embedded in the database
Invoice and Stripe data lacks clean export path
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
Database extraction and environment audit
We receive database credentials or a phpMyAdmin export from the customer and run read-only queries against a staging copy of the WordPress site. We extract wp_cpm_projects (Projects), wp_cpm_messages filtered by type (Tasks and Milestones), wp_cpm_task_relations (Subtasks and Dependencies), wp_cpm_task_comments (Comments), and wp_users (Assignees). We simultaneously audit the target Microsoft Project environment: desktop version or cloud tier, existing Resource list (for Project Online), SharePoint or OneDrive connection (for Project Online), and any existing custom fields that would conflict with our mapping. The output is a source inventory showing record counts per object type and a destination readiness report.
Microsoft Project environment preparation
Before any data inserts, we confirm the target Microsoft Project variant and prepare the destination environment. For Project Online, we create Resources via the Project Online REST API using the resolved email-address matches from wp_users, set Max Units and Resource type (Work vs Material), and pre-create any custom fields using the Project Online Field customField API. For Project Desktop, we provision the custom field columns in the destination MPP template using MPXJ or a pre-configured template file. We also confirm the project plan structure: single consolidated MPP or separate plan files per WP Project Manager project.
Serialization parsing and data transformation
We run a transformation pipeline against the extracted SQL data. Custom field values stored as PHP-serialized strings are deserialized and typed (text, number, date, flag). Subtask records from wp_cpm_task_relations are assembled into a parent-child hierarchy ordered by position. Dependency records are parsed, circular references are detected and logged, and the dependency type (FS/FF/SS/SF) is mapped to Microsoft Project predecessor format. Comments are formatted as timestamped note entries. File attachment paths are normalized to relative paths and paired with task IDs in a file manifest. Any records that fail transformation are flagged with error details for the customer to review.
Sandbox migration and reconciliation
We execute a trial migration into a sandbox or test project plan (for Project Online, a test project created via the REST API). The customer reviews record counts, spot-checks 20-30 randomly selected tasks and subtasks against the source WP Project Manager UI, and validates milestone placement, dependency chains, and assignee assignment. Any mapping corrections (custom field number reassignments, dependency type corrections, milestone flag issues) are made before proceeding to production. This step is critical because Microsoft Project's validation model differs from WP Project Manager's and records that pass SQL extraction may fail insertion rules.
Production migration in dependency order
We run the production migration in strict record-dependency order: Resources first (from wp_users), then Projects, then Tasks (top-level), then Subtasks (nested under parent tasks), then Milestones, then Predecessor Links (dependencies), then Comments (as Task Notes), then Custom Field values, then Time Tracking as Assignments. Each phase emits a row-count reconciliation report. For Project Online, we use the Project REST API with batch operations and exponential backoff on throttling responses. For Project Desktop, we use the MSProject object model or MPXJ library to build the MPP programmatically. File attachment transfer is handled separately via the file manifest; the customer executes the file sync while we validate record counts.
Cutover, validation, and documentation handoff
We freeze writes in WP Project Manager during cutover, run a delta migration of any records created or modified during the migration window, then mark Microsoft Project as the system of record. We deliver a written inventory of any Invoice records (not migrated), Kanban board positions (not migrated), and WP Project Manager automations or recurring task rules that require rebuild. We provide the file manifest for the customer's IT team to execute the SFTP file transfer and map the uploaded files to the correct task notes. We support a one-week post-cutover window for reconciliation questions. We do not rebuild automations, recurring task schedules, or WordPress plugin-based workflows as Microsoft Project features or Power Automate flows; those are documented for the customer's PMO or a separate Power Automate engagement.
Platform deep dives
WP Project Manager
Source
Strengths
Weaknesses
Microsoft Project
Destination
Strengths
Weaknesses
Complexity grading
Standard Project Management migration. 1 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 WP Project Manager and Microsoft Project.
Object compatibility
1 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
WP Project Manager: No vendor-imposed rate limit; effective ceiling is set by the host's WordPress configuration (PHP execution time, server resources)..
Data volume sensitivity
WP Project Manager 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 WP Project Manager to Microsoft Project migration scoping. Not seeing yours? Book a call.
Walk through your WP Project Manager 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 WP Project Manager
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.