Project Management migration
Field-level mapping, validation, and rollback between WeTrack and Asana. We move data and schema; workflows are rebuilt natively in Asana.
WeTrack
Source
Asana
Destination
Compatibility
4 of 12
objects map 1:1 between WeTrack and Asana.
Complexity
BStandard
Timeline
6-8 weeks
Overview
WeTrack uses a nested hierarchy of Projects, Tasks, and Subtasks built around event-delivery timelines, plus specialized modules for Risk Registers and Sustainability tracking. Asana uses a flat Project-and-Task model with optional subtasks and dependencies but no native Risk or ESG objects. We map WeTrack's Projects to Asana Projects, preserve the Subtask hierarchy under Tasks, and reconstruct Risk Register likelihood and impact values as custom fields on a custom Risk object in Asana. Sustainability ESG metrics map to a custom ESG object with metric and value fields. WeTrack has no public API documentation, so data extraction requires coordination with WeTrack support or manual CSV exports from the live UI. We do not migrate automations, risk templates, or event-specific integrations as code; we deliver written inventories for the customer admin to rebuild 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 WeTrack object lands in Asana, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
WeTrack
Project
Asana
Project
1:1WeTrack Projects map 1:1 to Asana Projects. The Project name, description, date range, and status fields transfer directly. WeTrack's RAG status on the Project level maps to a pre-created color-coded custom field in Asana. Sections in the Asana Project are created to mirror WeTrack's task grouping if present in the export. Projects without active tasks are migrated as empty containers with all metadata intact.
WeTrack
Task
Asana
Task
1:1WeTrack Tasks map 1:1 to Asana Tasks within the parent Project. Start date maps to Asana Start Date, due date maps to Due Date, and the task name and description fields transfer directly. Assignee is resolved by email against the Asana User mapping. The WeTrack task status (Active, Complete) maps to Asana completion state. If Dependencies are enabled in the destination Asana Workspace, we set the dependency relationship for tasks that reference other tasks.
WeTrack
Subtask
Asana
Subtask or Task with dependency
lossyWeTrack Subtasks are child records under a parent Task with auto-sync date inheritance. Asana supports native subtasks within a task, or tasks can be linked as separate records with a Finish-to-Start dependency. The migration design choice is made during scoping: native subtask mapping preserves the WeTrack hierarchy exactly but limits subtask depth; dependency mapping creates a flat task structure with explicit links. Both approaches preserve the parent-child linkage. We flag which approach was chosen in the mapping spec before migration begins.
WeTrack
Attachment
Asana
Attachment
1:1WeTrack attachments of all types (documents, images, PDFs) are extracted as file references and metadata from the export. We map file name, upload date, and uploader to Asana Attachment records and attach them to the correct Task. Actual file content is transferred if the export contains downloadable URLs; if the export is metadata-only, we document the attachment list for manual re-upload post-migration.
WeTrack
Risk Register
Asana
Risk (custom object)
lossyWeTrack Risk Registers use industry-standard Inherent Likelihood and Impact fields with template risks. Asana has no native risk object, so we create a custom Risk object with Likelihood (enum: Very Low, Low, Medium, High, Very High), Impact (enum: Very Low, Low, Medium, High, Very High), Risk Owner (user reference), and Mitigation Plan (text) fields. Risk records from WeTrack are migrated into this custom object. RAG status on the Risk Register maps to the calculated RAG value (Likelihood x Impact) stored as a read-only formula field or enum in the destination.
WeTrack
Sustainability/ESG Records
Asana
ESG Record (custom object)
lossyWeTrack's Sustainability module tracks ESG indicators and metric values. Asana has no native ESG object. We create a custom ESG object with Metric Name (text), Metric Value (number), Unit (enum: tCO2e, kWh, m3, kg, percentage), Reporting Period (text), and Notes (text) fields. ESG records are migrated as instances of this object, linked to the relevant Project via a lookup field. The customer configures the ESG schema in Asana before migration if they are on Asana Premium or Enterprise.
WeTrack
Job Category
Asana
Custom dropdown field or Tags
lossyWeTrack Job Categories restrict valid options on task fields to prevent data entry errors. If the category set is finite and fixed (under 500 options), we map them to a single-select custom dropdown field in Asana. If the set is open-ended, we use Asana Tags as the mapping target. We validate option counts during scoping and flag any categories that exceed Asana's per-field option limit.
WeTrack
RAG Status Field
Asana
RAG custom single-select field
lossyWeTrack RAG updates run on predictable schedules and cascade from parent tasks to subtasks via auto-sync. Asana has no native RAG equivalent. We create a color-coded custom single-select field (Red, Amber/Yellow, Green, Grey for not applicable) and map WeTrack RAG values directly. Inherited RAG values on subtasks that originate from parent cascade are flagged during migration to distinguish them from explicitly set subtask values. Post-migration, Asana users should update the custom field manually or via an Asana Rule; there is no native cascade automation.
WeTrack
Incident Report
Asana
Incident (custom object)
lossyWeTrack Incident Reports are operational records that track incidents during event delivery. Asana has no native incident object. We create a custom Incident object with Incident Title (text), Severity (enum: Low, Medium, High, Critical), Status (enum: Open, Investigating, Resolved, Closed), Description (text), and Reported Date (date) fields. Any attachments from the incident record are mapped as files on the Incident record. The customer provisions the Incident custom object schema in Asana before migration.
WeTrack
User and Owner
Asana
User
1:1WeTrack user accounts and task owners are referenced by email and ID. We match WeTrack owners to Asana workspace members by email address. Any WeTrack Owner without a matching Asana User is placed in a reconciliation queue; the customer's admin provisions the missing Asana User before record import resumes. Inactive or orphaned WeTrack users are flagged for deactivation or reassignment in Asana.
WeTrack
Custom Field
Asana
Custom Field
lossyWeTrack supports custom fields on Projects and Tasks with varying data types. We validate each WeTrack custom field's type and create a corresponding Asana custom field before migration. Text fields map to Asana text custom fields, numbers to number custom fields, and dates to date custom fields. Single-select custom fields require an additional API step: we query the destination Asana Workspace to retrieve the enum GID for each option value before writing any records, because Asana's API requires the enum GID rather than the option label for single-select field values.
WeTrack
Configuration Record
Asana
Flagged for manual rebuild
lossyWeTrack read-only configuration records (template risk registers, ESG measurement templates, workflow rules scoped to event delivery) cannot be extracted as data during the export. We flag every read-only configuration record identified during scoping and document it in the migration handoff with the recommended manual rebuild steps in Asana. No configuration record is silently skipped; each one appears in the inventory document with a rebuild recommendation.
| WeTrack | Asana | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Subtask | Subtask or Task with dependencylossy | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Risk Register | Risk (custom object)lossy | Fully supported | |
| Sustainability/ESG Records | ESG Record (custom object)lossy | Mapping required | |
| Job Category | Custom dropdown field or Tagslossy | Fully supported | |
| RAG Status Field | RAG custom single-select fieldlossy | Fully supported | |
| Incident Report | Incident (custom object)lossy | Fully supported | |
| User and Owner | User1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Configuration Record | Flagged for manual rebuildlossy | 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.
WeTrack gotchas
No publicly documented API endpoint reference
Post-acquisition product positioning is unclear
Custom fields may not be exportable via standard reports
Asana gotchas
Automation rules have no export representation
API rate limits cap bulk migration throughput
Portfolios are view-only objects that do not hold data
Custom field enum options cannot be updated via API
Subtasks do not appear in project views by default
Pair-specific challenges
Migration approach
Discovery and data export coordination
We coordinate with the customer's WeTrack account team or support to obtain read-only data exports across all object types: Projects, Tasks, Subtasks, Attachments, Risk Registers, ESG Records, Job Categories, and Custom Fields. We cross-reference export contents against the live WeTrack UI to identify any fields present in the UI but absent from the export. We document the Risk Register schema (Likelihood and Impact field names and value sets), the ESG metric definitions, and any Incident Report fields. If WeTrack cannot produce a formal export, we guide the customer through manual CSV extraction from the UI and flag any records that cannot be exported for manual re-entry. The discovery output is a written migration scope, data export plan, and custom object design for Asana.
Asana schema design and custom object provisioning
We design the Asana destination schema in a Sandbox environment. This includes creating Projects with the appropriate sections, building custom objects for Risk, ESG, and Incident Records with all required custom fields, and creating the RAG status single-select custom field with color-coded options. We configure subtask behavior at the workspace level (native subtasks vs. Dependencies) based on the customer's choice during scoping. We verify that the customer's Asana tier supports the required custom object count and field types. Schema validation happens in Sandbox before any production migration begins.
Export extraction and mapping validation
We work with the customer's WeTrack team to extract the full data export across all object types. We review export headers against the live UI to catch missing fields, validate custom field type assignments against the Asana schema design, and identify orphaned or incomplete records. We build the field-level mapping document linking each WeTrack column to its Asana destination field and custom field GID. We extract attachment references and metadata separately for Asana Attachment creation. We identify any records that require manual CSV extraction and consolidate them into a supplemental import plan.
Sandbox migration and reconciliation
We run a full migration into an Asana Sandbox using the extracted WeTrack data. The customer's project manager or admin reviews record counts in Asana (Projects, Tasks, Subtasks, Risk records, ESG records) against WeTrack source counts. We spot-check 25 to 50 random records for field-level accuracy, paying particular attention to RAG status cascade behavior, subtask parent linkage, and Risk Register likelihood and impact values. Any orphaned tasks (no parent), unmapped custom fields, or GID resolution failures are corrected in the mapping document before production migration. The customer signs off on the sandbox results before we proceed.
User and owner provisioning
We extract every distinct WeTrack Owner referenced on Projects, Tasks, Risk Registers, and Incident Reports and match by email against the Asana Workspace members. We create teams in Asana that mirror the WeTrack organizational structure where applicable. Owners without a matching Asana User are placed in a reconciliation queue. The customer's admin provisions any missing Asana Users before production migration begins. This step must complete before any record import because Asana requires OwnerId references on most standard object records.
Production migration in dependency order
We run production migration in record-dependency order: Projects first (as containers), then Tasks with parent references resolved, then Subtasks (as native subtasks or as separate tasks with Dependencies set), then Risk custom object records, ESG custom object records, and Incident records. Custom field enum GIDs are resolved from the local mapping built during schema design before each batch write. Attachment metadata is mapped after all primary records are confirmed in Asana. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and rebuild handoff
We freeze writes in WeTrack during cutover, migrate any records modified during the migration window as a final delta, and enable Asana as the system of record. We disable or restrict WeTrack access for the migration team. We deliver the written inventory of every WeTrack automation, Risk Register template, and event-specific integration to the customer's admin, with recommended Asana equivalents for each. We support a one-week hypercare window to resolve reconciliation issues raised by the customer's team. We do not rebuild WeTrack automations as Asana Rules or Flows within migration scope; that is a separate engagement or internal admin task.
Platform deep dives
WeTrack
Source
Strengths
Weaknesses
Asana
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 WeTrack and Asana.
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
WeTrack: Not publicly documented..
Data volume sensitivity
WeTrack 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 WeTrack to Asana migration scoping. Not seeing yours? Book a call.
Walk through your WeTrack to Asana migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave WeTrack
Other ways to arrive at Asana
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.