Project Management migration
Field-level mapping, validation, and rollback between awork and Asana. We move data and schema; workflows are rebuilt natively in Asana.
awork
Source
Asana
Destination
Compatibility
8 of 12
objects map 1:1 between awork and Asana.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from awork to Asana restructures how work is organized. awork uses a workspace-per-client model with Projects as the primary billing container and time entries linked directly to Tasks. Asana uses Teams to group Projects and does not include native time tracking, so historical billable data must be preserved through custom fields or Notes rather than a direct field map. We audit every awork project's custom field activation status during scoping because fields defined at the workspace level must be explicitly turned on per project before they appear at the task level. We collect the full workspace status vocabulary during discovery and apply a value map to Asana's project status options during the load step. Automations, templates, and Lexoffice integration configurations do not migrate; we deliver a written inventory of each for the customer's admin to rebuild in Asana Rules or a third-party time-tracking tool.
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 awork 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.
awork
Project
Asana
Project
1:1awork Projects map 1:1 to Asana Projects. The awork project name, description, start date, and end date migrate directly. awork's project status (per-workspace custom vocabulary) requires a value map because Asana uses global On Track, At Risk, and Off Track statuses rather than custom names. We collect the full workspace status schema during discovery and apply the mapping during the load step. If the destination Asana org uses Teams, we group migrated projects under the appropriate Team based on the awork workspace or client association.
awork
Task
Asana
Task
1:1awork Tasks map directly to Asana Tasks. Assignee, due date, description (rich text), and task status migrate as native Asana fields. The awork project assignment maps to the Asana project membership. Tasks that belong to no project in awork (standalone tasks) require a decision during scoping: either create a catch-all Asana project for them or exclude them from the migration scope.
awork
User
Asana
User
1:1awork workspace Users map to Asana Users. We match by email address during migration. Any awork User with no matching Asana User is held in a reconciliation queue for the customer's admin to provision before record import begins. User display name, email, and role migrate as profile fields.
awork
Custom Field
Asana
Custom Field
lossyawork Custom Fields require per-project activation before they appear at the task level. We audit every custom field's project-level activation status during scoping and flag any gap where a field exists at the workspace level but is not active in a given project. For migrated projects, we replicate the same field configuration as active custom fields in Asana, using text, number, date, or multi-select picklist types matched to the awork field type. Fields inactive in awork for a given project are not created in Asana for consistency.
awork
Tag
Asana
Tag
1:1awork Tags are key-value labels applied to Tasks. They map directly to Asana Tags. Tag names migrate as-is. If Asana enforces any tag naming restrictions, we normalize during the transform step before loading.
awork
Time Entry
Asana
Custom Field or Note (on Task)
1:1awork Time Entries carry billable/non-billable flags, user attribution, start/end timestamps, and task association. Asana does not have a native time tracking object. We preserve time entry data by creating custom fields on Asana Tasks: total_hours (number), billable (checkbox), and tracked_date (date). For detailed time logs, we attach a structured Note to the task with the time entry table. The customer's admin can connect a third-party time-tracking integration (Harvest, Toggl, Timely) post-migration to replace this for ongoing tracking.
awork
Project Template
Asana
Project Template (Business tier) or Project Duplication (lower tiers)
lossyawork Project Templates define reusable task structures, default statuses, and custom field configurations. Asana supports Project Templates natively only on Business tier ($24.99/seat/mo). For Premium or Personal tiers, we document the template structure as a written deliverable and recommend manual project duplication or Asana's duplicate-project workflow as the replacement. We migrate the template definition as a JSON manifest and a descriptive record for the customer's admin to use as a rebuild reference.
awork
Subtask
Asana
Subtask
1:1awork Subtasks are structured child objects of Tasks. They map directly to Asana Subtasks. The parent-child relationship is preserved. If subtask ordering is critical, we include a sort_order field in the migration payload so the destination maintains the original sequence.
awork
Project Status (per-workspace vocabulary)
Asana
Project Status (global options)
lossyawork allows each workspace to define a custom set of project statuses with distinct names, colors, and ordering. These have no global equivalent in Asana, which uses three fixed status options. We collect the full status vocabulary during discovery, build a value map to the nearest Asana global status (On Track, At Risk, Off Track), and apply the mapping during load. The original awork status name is preserved in a custom field original_awork_status__c on the project for audit and reporting.
awork
Client
Asana
Team or Project Name Prefix
lossyawork has a distinct Client object above Project in the hierarchy. Asana does not have a native Client object. For teams that rely on client billing or client-level reporting in awork, we recommend creating an Asana Team per Client and grouping Projects under that Team. The customer decides during scoping whether to create Teams per client or to use a project name prefix convention.
awork
Engagement: Note
Asana
Note (on Task or Project)
1:1awork Notes attached to Tasks or Projects migrate to Asana Notes. Rich text content, attachment references, and user attribution (author) migrate. If awork notes include file attachments, those become Asana attachment links pointing to the original URL.
awork
Engagement: Task (internal checklist)
Asana
Task
1:1awork internal task-type engagements map to Asana Tasks within the same project. Status, assignee, due date, and description migrate directly.
| awork | Asana | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Time Entry | Custom Field or Note (on Task)1:1 | Fully supported | |
| Project Template | Project Template (Business tier) or Project Duplication (lower tiers)lossy | Fully supported | |
| Subtask | Subtask1:1 | Fully supported | |
| Project Status (per-workspace vocabulary) | Project Status (global options)lossy | Fully supported | |
| Client | Team or Project Name Prefixlossy | Fully supported | |
| Engagement: Note | Note (on Task or Project)1:1 | Fully supported | |
| Engagement: Task (internal checklist) | Task1: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.
awork gotchas
Custom fields must be activated per project
Project statuses are per-workspace, not global
Timeline export is an image, not structured data
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 workspace audit
We audit every awork workspace in scope, cataloging Projects, Tasks, Subtasks, Custom Fields (with per-project activation status), Tags, Time Entries, Users, Project Templates, and the full project status vocabulary. We extract the owner and assignee records, identify any inactive users with open task assignments, and flag any data gaps (fields not activated per project, time entries with missing task associations). The discovery output is a written migration scope with a complete object inventory and a custom field activation matrix.
Schema design and status value mapping
We design the Asana destination schema before any data moves. This includes creating Custom Fields in Asana matched to awork field types, mapping the awork per-workspace status vocabulary to Asana's global On Track, At Risk, and Off Track options (with original status preserved in original_awork_status__c), structuring Teams to mirror awork clients or workspaces, and deciding on the time entry preservation strategy (custom fields, Notes, or both). Schema is validated in the Asana destination org before production migration begins.
User reconciliation and Asana provisioning
We extract every distinct awork User referenced on Projects, Tasks, Subtasks, and Time Entries and match by email against the Asana destination org. Any awork User without a matching Asana User goes to a reconciliation queue. The customer's admin provisions missing Users in Asana before record migration begins. Migration cannot proceed past this step because OwnerId and assignee references must be satisfied on insert.
Sandbox migration and record reconciliation
We run a full migration into an Asana test workspace using the actual data volume. The customer's project lead spot-checks 25-50 randomly selected tasks and projects against the awork source, validates custom field values, confirms time entry data is preserved, and reviews the status mapping output. Any mapping corrections are documented and applied before the production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated and reconciled), Teams (if creating Team-per-Client structure), Projects (with original_awork_status__c set), Tasks (with Custom Fields and Tags), Subtasks (with parent references resolved), Time Entries (as custom fields or Notes on tasks), and Project Template manifests (as written documentation for Business tier template creation). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automations handoff
We freeze writes in awork during cutover, run a delta migration of any records modified during the migration window, then set Asana as the system of record. We deliver a written inventory of all awork Workflow Automations and Project Templates requiring rebuild in Asana Rules or Business-tier templates, plus a time-tracking integration recommendation document. We do not rebuild awork automations as Asana Rules inside the migration scope; that work is handled by the customer's admin or a separate engagement.
Platform deep dives
awork
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 awork 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
awork: Rate-limited per client; 429 Too Many Requests response includes RateLimit-Reset header indicating seconds until reset.
Data volume sensitivity
awork exposes a bulk API — large-volume migrations stream efficiently.
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 awork to Asana migration scoping. Not seeing yours? Book a call.
Walk through your awork 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 awork
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.