Project Management migration

Migrate from WP Project Manager to Microsoft Project

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 logo

WP Project Manager

Source

Microsoft Project

Destination

Microsoft Project logo

Compatibility

75%

9 of 12

objects map 1:1 between WP Project Manager and Microsoft Project.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

WP Project Manager logo

WP Project Manager

What's pushing teams away

  • No public REST API or webhooks — automation requires WordPress plugin development or third-party integration tools like Zapier, limiting scalability for technical teams.
  • Plugin-only architecture means data is locked inside WordPress database tables; switching tools requires a full manual export or custom SQL migration script.
  • The WordPress admin UI feels dated compared to modern SaaS PM tools, and performance degrades on sites with hundreds of active projects.
  • Support response times on non-Enterprise plans frustrate teams hitting bugs or needing urgent configuration help.
  • Custom Fields and advanced reporting require paid add-ons that add significant cost on top of the base per-site license.

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 WP Project Manager objects map to Microsoft Project

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

maps to

Microsoft Project

Project

1:1
Fully supported

WP 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

maps to

Microsoft Project

Task

1:1
Fully supported

WP 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

maps to

Microsoft Project

Summary Task (Outline Level)

1:1
Fully supported

WP 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

maps to

Microsoft Project

Milestone Task

1:1
Fully supported

Milestones 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

maps to

Microsoft Project

Task Predecessor/Successor Link

1:1
Fully supported

Dependencies 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

maps to

Microsoft Project

Task Note

1:1
Fully supported

WP 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

maps to

Microsoft Project

File Attachment (Project Directory)

lossy
Fully supported

File 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

maps to

Microsoft Project

Resource

1:1
Fully supported

WP 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

maps to

Microsoft Project

Assignment with Actual Work

lossy
Fully supported

Time 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

maps to

Microsoft Project

Custom Field

lossy
Fully supported

WP 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

maps to

Microsoft Project

Task Dates and Dependencies

1:1
Mapping required

WP 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

maps to

Microsoft Project

Not Migrated

1:1
Fully supported

Invoice 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.

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.

WP Project Manager logo

WP Project Manager gotchas

High

No public API forces database-level migration

High

WordPress user table is the identity layer

Medium

Serialized PHP data in custom fields and settings

Medium

Attachment files are not embedded in the database

Medium

Invoice and Stripe data lacks clean export path

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

  • No public API forces database-level extraction

    WP Project Manager exposes no REST API, webhook, or bulk export endpoint. All migration must read directly from WordPress custom tables (wp_cpm_projects, wp_cpm_messages, wp_cpm_task_relations, wp_cpm_task_comments) using SQL queries against a staging copy of the WordPress database. The customer must provide database credentials or a phpMyAdmin export. Without this, migration is not feasible without manual per-project CSV exports that lose hierarchy and dependency relationships. We handle read-only database queries safely, but the customer must ensure the staging copy is current and the WordPress site is in maintenance mode during extraction to avoid data drift.

  • Serialized PHP data in custom fields may fail to parse

    WP Project Manager stores Custom Field values, recurring task rules, and some Gantt dependency data as PHP-serialized strings in wp_postmeta. If the WordPress installation was upgraded across PHP versions (particularly PHP 7.x to PHP 8.x), the serialization format may have changed and some values may fail to deserialize. We run a pre-migration parse test across all custom field records and report any failures. Unreadable records are flagged in the migration summary with the row ID and field name. The customer may need to manually re-enter affected custom field values in the destination.

  • Microsoft Project file format and edition shape what migrates

    Microsoft Project ships in several variants (Project Desktop Standard/Professional with MPP files, Project Online with SharePoint back-end, Project for the Web with Microsoft Dataverse, Planner Premium). Each variant has a different data model, API surface, and import mechanism. We confirm the target variant during scoping because MPP file imports use the MSProject COM automation or MPXJ library, Project Online uses the REST API, and Project for the Web uses the Power Platform API. The migration approach changes materially depending on which variant the customer is licensed for and whether they are migrating to the retiring Project Online or the new Planner Premium-adjacent platform.

  • Kanban board state and visual layout do not migrate

    WP Project Manager's Kanban board column positions and card ordering are stored in JavaScript-serialized format in wp_postmeta. There is no stable, documented schema for this data, and it is not directly transferable to Microsoft Project's Gantt-centric model. We do not migrate the visual board layout. Task data (name, assignee, due date, status) migrates; the column assignment migrates to Microsoft Project Task.Outline Level or a custom Status Group field if the customer requests it. The customer should plan to rebuild Kanban-style views in Microsoft Project's Task Board view or in Planner Premium if that is the destination tier.

Migration approach

Six steps for a successful WP Project Manager to Microsoft Project data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

WP Project Manager logo

WP Project Manager

Source

Strengths

  • Per-site pricing model rather than per-user, making it highly cost-effective for large teams.
  • Deep WordPress integration including BuddyPress and WooCommerce add-ons for agency workflows.
  • Rich task hierarchy with subtasks, milestones, task dependencies, and task assignments all in one plugin.
  • File management with folder structure, private messaging, and contextual comments on tasks.
  • Multiple project views (list, board, calendar, Gantt) accessible without tier restrictions.

Weaknesses

  • No public API or bulk export mechanism forces migration work to rely on direct database access.
  • Plugin data lives in custom WordPress tables outside standard WordPress post types, making generic WP export tools unreliable.
  • Invoice, Stripe, and WooCommerce modules are tightly integrated and cannot be cleanly extracted as standalone data.
  • Performance on high-volume projects (500+ tasks) is dependent on the underlying WordPress hosting environment.
  • The plugin's development cadence is tied to WordPress core updates, meaning long-term feature roadmap uncertainty.
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. 1 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 WP Project Manager and Microsoft Project.

  • Object compatibility

    B

    1 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

    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

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Small migrations under 10 projects and 500 tasks with no custom fields and clean dependency structures land in two to three weeks. Migrations with 20+ projects, deep subtask nesting, milestone-to-task linking, serialized custom field parsing, and file attachment manifests extend to five to eight weeks. The primary timeline variable is the number of distinct subtask hierarchies and dependency chains that must be validated for circular references during the transformation step.

Adjacent paths

Related migrations to explore

Ready when you are

Move from WP Project Manager.
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