Project Management migration
Field-level mapping, validation, and rollback between Trigger and Microsoft Project. We move data and schema; workflows are rebuilt natively in Microsoft Project.
Trigger
Source
Microsoft Project
Destination
Compatibility
5 of 11
objects map 1:1 between Trigger and Microsoft Project.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Trigger stores projects, tasks, time entries, and client data as separate flat CSV exports with ID-based relationships between them. There is no documented public API, so every migration begins with a manual multi-view export. We download Clients, Projects, Tasks, Time Entries, and Users within a single session to minimize record count drift, then perform the multi-step join to rebuild project-task hierarchies and task-time relationships at the destination. Microsoft Project organizes data around a Work Breakdown Structure where tasks contain sub-tasks and resources are assigned to tasks with work, duration, and calendar-based scheduling. We map Trigger tasks to Microsoft Project tasks, map Trigger time entries to Microsoft Project assignment work or task duration, and map Trigger users to Microsoft Project resources. Custom fields on both platforms require pre-import schema creation. We do not migrate Invoices as native objects since Microsoft Project has no invoice entity; invoice totals and line items are documented separately for the customer's admin to handle post-migration.
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 Trigger 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.
Trigger
Client
Microsoft Project
Summary Task or Text Fields
1:1Trigger Clients are organizations or companies to which projects are billable. Microsoft Project has no native customer or account object. We map the top-level client relationship by creating a Microsoft Project summary task named for each Client and nesting all Client-associated Projects beneath it. Client name, email, and billing address are stored in custom task-level text fields on the summary task. If the destination is Project Online connected to a SharePoint list, we can alternatively maintain client records in a linked SharePoint list and reference them via a custom lookup column.
Trigger
Project
Microsoft Project
Project
1:1Trigger Projects map directly to Microsoft Project files (MPP) or Project Online projects. Each Trigger Project becomes a distinct Project in Microsoft Project with the project name, start date, due date, status, and project manager assignment preserved. The Trigger client ID maps to the summary Client task or the SharePoint-linked client list. We use Trigger project IDs as a reference key throughout the migration for cross-validation.
Trigger
Task
Microsoft Project
Task
1:1Trigger Tasks map to Microsoft Project tasks. We map Trigger task name to Task Name, start/due dates to Start and Finish, estimated hours to the Estimated Work field (converting hours to duration based on the project calendar), assignee to a Resource assignment, priority to a custom Priority field, and status to the Percent Complete or Status field. Sub-tasks in Trigger require flattening during export; we reconstruct the WBS hierarchy at the destination by matching parent task IDs to the appropriate summary task level.
Trigger
Sub-task
Microsoft Project
Sub-task (WBS hierarchy)
1:manyTrigger supports nested sub-tasks under tasks. Microsoft Project natively supports hierarchical sub-tasks via outline indent. We export the flat CSV with parent_task_id, then reconstruct the hierarchy by ordering tasks by their Trigger parent relationship and indenting them in the Microsoft Project outline. The maximum nesting depth supported in Microsoft Project is 65,000 characters of WBS codes; we flag any deeply nested structures that may exceed this limit.
Trigger
Time Entry
Microsoft Project
Task Assignment Work
1:manyTrigger time entries are individual log entries linked to tasks with duration, billable flag, user, and date. Microsoft Project tracks work on task assignments rather than free-form time logs. We aggregate Trigger time entries by task and user, converting the sum of durations into assignment Work hours on the corresponding task in Microsoft Project. If a task has multiple users logging time, we create separate Resource Assignments with individual work totals. Non-billable time entries are flagged and optionally excluded based on the customer's scope.
Trigger
User
Microsoft Project
Resource
1:1Trigger Users with name, email, role, and hourly rate map to Microsoft Project Resources. We map Trigger user names to Resource Name, emails to the Notes field, and hourly rates to the Rates Cost field in the resource sheet. Admin and Member roles in Trigger do not have a direct Microsoft Project equivalent; we document the role assignment in a custom Resource field for the PMO's reference. Resources are created before any task assignment work is imported.
Trigger
Invoice
Microsoft Project
Document (no native object)
lossyTrigger Invoices are derived records whose amounts are computed from billable time entries. Microsoft Project has no invoice object. We do not migrate Invoices as records. Instead, we export the invoice totals, associated time entries, and computed line items as a structured CSV deliverable for the customer's admin to re-enter in their billing system or to attach as a document to the relevant project summary task. Invoice status (draft, sent, paid, overdue) is documented as a separate CSV column for manual record-keeping.
Trigger
Custom Field (Project)
Microsoft Project
Custom Field
lossyTrigger allows custom fields on Projects and Tasks. We export the custom field definitions and values alongside their parent records. Before importing into Microsoft Project, we create matching custom fields in the destination project using the Custom Fields dialog, matching Trigger field types to the closest Microsoft Project field type (Text, Number, Cost, Flag, or Date). Custom fields on projects become project-level fields; custom fields on tasks become task-level fields.
Trigger
Custom Field (Task)
Microsoft Project
Custom Field (Task)
lossyTask-level custom fields from Trigger (such as billing category, client reference, or workflow stage) are mapped to task-level custom fields in Microsoft Project. We preserve the Trigger field label as the Microsoft Project field name and the original value as the field value. Formula fields, conditional logic, and rollup calculations in Trigger do not have equivalents in Microsoft Project; these are documented in the handoff deliverable for the customer's admin to rebuild using Microsoft Project's custom field formulas or Power Automate if the destination is Project Online.
Trigger
Archived Project
Microsoft Project
Inactive Project
lossyTrigger projects that are archived or locked require separate handling. We flag all archived projects during the export phase and present them to the customer for a decision: migrate as read-only or inactive projects in Microsoft Project, or archive as a static CSV export. Microsoft Project does not have a native archive state, so archived projects are imported with an IsInactive custom flag set to Yes and excluded from resource leveling calculations.
Trigger
Attachment
Microsoft Project
Not Migrated
1:1Trigger file attachments stored within tasks or projects are not accessible via any documented export method. We do not migrate attachments. Customers should download files manually from Trigger before the migration window closes, or use Trigger's manual export feature to bundle attachments per project. We provide a manifest of all attachment references (file names, sizes, task associations) so the customer's team can reattach files post-migration in Microsoft Project.
| Trigger | Microsoft Project | Compatibility | |
|---|---|---|---|
| Client | Summary Task or Text Fields1:1 | Fully supported | |
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Sub-task | Sub-task (WBS hierarchy)1:many | Fully supported | |
| Time Entry | Task Assignment Work1:many | Fully supported | |
| User | Resource1:1 | Fully supported | |
| Invoice | Document (no native object)lossy | Fully supported | |
| Custom Field (Project) | Custom Fieldlossy | Fully supported | |
| Custom Field (Task) | Custom Field (Task)lossy | Fully supported | |
| Archived Project | Inactive Projectlossy | Fully supported | |
| Attachment | 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.
Trigger gotchas
No documented public API for automated exports
Invoice line items are derived, not stored as discrete objects
Client billing address is optional and stored inconsistently
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
Manual CSV export and row-count reconciliation
We guide the customer through a synchronized multi-view CSV export from Trigger: Clients, Projects, Tasks, Time Entries, Users, and Custom Fields all downloaded in a single browser session. We verify row counts across views to detect record-count drift, then perform an initial multi-step join using project_id and task_id as foreign keys to confirm that parent-child relationships are intact. Any orphaned records (tasks with no project, time entries with no task) are flagged and sent to the customer for resolution before the migration scope is finalized.
Destination schema preparation
We create the Microsoft Project destination structure. For each Trigger Project, we provision a Microsoft Project file (desktop) or Project Online project. We pre-create custom fields to match Trigger's custom field definitions, set up the project calendar to match Trigger's working hours, and build the resource sheet with Trigger users mapped to Microsoft Project Resources including their hourly rates. If client summaries require SharePoint-linked lists, we configure those lists with the appropriate columns before data import begins.
User-to-resource reconciliation
We extract every distinct Trigger user referenced on time entries and task assignments, then check for duplicates (same email with different name variants) and gaps (users referenced but not in the user list). The customer resolves user duplicates and provisions any missing users before resource import. Migration cannot proceed to task import without a complete and clean resource list because Resource assignments in Microsoft Project require valid resource references.
Project and task hierarchy import
We import projects first, then tasks in outline order with parent task IDs resolved to create the WBS hierarchy. Estimated hours from Trigger tasks map to the Estimated Work field, and start/due dates map to Start and Finish. We preserve Trigger's task status as a custom field and map it to Percent Complete using a linear conversion (if Trigger status is Active, we set Microsoft Project to the customer's estimated percent). Sub-tasks are imported with their parent indent applied. Each project generates a reconciliation report comparing Trigger task count to Microsoft Project task count.
Time entry aggregation and assignment work import
We aggregate Trigger time entries by task and user, summing durations into Work hours per assignment. The aggregation reveals duplicate entries, out-of-range dates, and entries for tasks that no longer exist in the import set. After customer sign-off on the aggregation output, we create Microsoft Project resource assignments with Work values. If the destination is Project Online, we use the project REST API with batch operations for assignment creation. If the destination is desktop Project, we use MPP file manipulation via the Microsoft Project Object Library or a compatible SDK.
Delta pass and cutover
We freeze Trigger writes during cutover, run a final delta export capturing any records modified or added since the initial export, apply the same aggregation and mapping logic, and import the delta into Microsoft Project. We then validate the final record counts against the Trigger source, verify that the WBS hierarchy is intact, and spot-check five to ten tasks per project for data accuracy. The customer receives the migration deliverable package including the populated Microsoft Project files, the invoice and attachment manifest CSVs, and the custom field mapping document. We do not provide post-migration admin support or training as standard scope.
Platform deep dives
Trigger
Source
Strengths
Weaknesses
Microsoft Project
Destination
Strengths
Weaknesses
Complexity grading
Moderate Project Management migration. 1 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Trigger and Microsoft Project.
Object compatibility
1 of 8 objects need a manual workaround.
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
Trigger: Not publicly documented..
Data volume sensitivity
Trigger 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 Trigger to Microsoft Project migration scoping. Not seeing yours? Book a call.
Walk through your Trigger 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 Trigger
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.