Project Management migration
Field-level mapping, validation, and rollback between Workamajig and Asana. We move data and schema; workflows are rebuilt natively in Asana.
Workamajig
Source
Asana
Destination
Compatibility
7 of 13
objects map 1:1 between Workamajig and Asana.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Workamajig to Asana is a migration from a bundled agency ERP to a focused project management platform. Workamajig organizes agency work through Campaigns that roll up multiple Projects with integrated billing, time tracking, and client portals; Asana represents work as Projects containing Tasks with multiple views (List, Board, Timeline, Calendar) but no native invoicing, purchase orders, or ERP modules. We extract Projects, Campaigns, Tasks, Deliverables, Companies, Contacts, Custom Fields, and time-entry history from Workamajig's beta1 API, handling the 20 req/min throttling on Projects with batched exports and backoff. We map Workamajig's Campaign-to-Project hierarchy to Asana Portfolios or a top-level Project grouping, translate custom field schemas, and preserve time entries as Tasks with duration notes. We do not migrate Workflows, automations, digital proofing workflows, invoices, or purchase orders because they have no equivalent in Asana's data model; we deliver a written inventory of these objects for the customer's admin to plan around.
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 Workamajig 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.
Workamajig
Campaign
Asana
Portfolio or Project Grouping
1:manyWorkamajig Campaigns aggregate multiple Projects for budget rollup, P&L reporting, and billing across an entire client engagement. Asana has no native Campaign object. We map each Campaign to an Asana Portfolio (Business+ tier) or, if the customer is on Advanced or lower, to a top-level Project with a 'Campaign' tag and all child Projects added as sub-projects. Campaign-level budget and estimate figures migrate as Custom Fields on the Portfolio or top-level Project because Asana does not have a native budget object. The campaign-to-project linkage table is preserved via Portfolio membership or a custom Project field linking to the parent Campaign record.
Workamajig
Project
Asana
Project
1:1Workamajig Projects map directly to Asana Projects. Each Project's name, description, status, start and due dates, and estimated hours migrate as native Asana fields. Custom fields on the Workamajig Project (client name, project type, billing tier) translate to Asana Custom Fields of matching type (text, date, number, multi-select). Workamajig's 20 req/min API ceiling on Projects requires batched export in groups of 20 with backoff delays; we paginate through all project pages before moving to dependent objects to avoid mid-migration rate-limit failures.
Workamajig
Task
Asana
Task
1:1Workamajig Tasks map to Asana Tasks with assignees, due dates, priority flags, and task descriptions preserved. Task hierarchy under Projects migrates as Asana Subtasks within the corresponding Project. Predecessor dependencies in Workamajig translate to Dependency links in Asana (finish-to-start, start-to-start). Cross-project task dependencies are flagged during scoping because they require both Projects to exist in Asana before the dependency link can be created; we resolve parent project lookups before inserting cross-project dependency records.
Workamajig
Deliverable
Asana
Task with Custom Field
lossyWorkamajig Deliverables represent reviewable creative outputs tied to approval workflows with reviewer assignments and approval statuses. Asana has no native deliverable approval object. We map Deliverables to Tasks with a custom field 'Deliverable Status' (options: Draft, In Review, Approved, Rejected) and a 'Reviewers' multi-select person field. The approval workflow logic itself does not migrate; we document the Workamajig deliverable workflow triggers and actions for the customer's admin to rebuild in Asana Rules if Business+ tier is selected.
Workamajig
Custom Field (Projects, Campaigns, Tasks)
Asana
Custom Field
lossyWorkamajig custom fields on Projects, Campaigns, and Tasks (field types include text, number, date, dropdown, checkbox, and currency) migrate to Asana Custom Fields of equivalent type. We extract the full custom field schema (field types, required flags, choice options) from Workamajig at scoping and pre-create the corresponding Asana Custom Fields before any data import. Asana formula custom fields are supported on Business+ plans; any Workamajig calculated fields that cannot be replicated as read-only formula fields in Asana are converted to text fields with the calculated value pre-populated.
Workamajig
Company
Asana
Organization
1:1Workamajig Companies (client and vendor records) map to Asana Organizations. Company name, industry, website, phone, and address fields migrate to the Organization's name and profile fields. Workamajig Company custom fields (billing tier, contract status, VAT number) migrate as Organization Custom Fields in Asana. Company-to-Contact relationships (the roles each Contact plays at a Company) are preserved by linking each migrated Contact to the corresponding Asana Organization.
Workamajig
Contact
Asana
Member
1:1Workamajig Contacts map to Asana Members within the destination Organization. Contact name, email, phone, role, and title fields migrate directly. Custom property values on Workamajig Contacts (preferred contact method, account manager, segment classification) migrate as Member Custom Fields. Workamajig's contact roles per Company are preserved via Organization membership and, if the customer uses Asana Guests for external contacts, by provisioning Guest access at migration time.
Workamajig
Time Entry
Asana
Task (time tracking notes)
lossyWorkamajig time entries link to Projects and Tasks with billable/non-billable flags, hourly rates, dates, duration, and owner. Asana's native time tracking is only available on Business+ plans as a project-level feature with daily log entries, not as a historical record set. We migrate time entries as Asana Tasks under the corresponding Project with a custom field 'Time Entry' containing the original duration, billable flag, hourly rate, and date in text format. For customers on Asana Business+, we enable time tracking per project and log entries individually, respecting the API's time-tracking endpoints.
Workamajig
Invoice
Asana
Not migrated (no equivalent)
lossyWorkamajig invoices generated from Projects or Campaigns have no direct Asana equivalent. We do not migrate invoice records. We export invoice data to a CSV inventory (invoice number, client, amount, status, date, line items) and deliver it to the customer's admin. If the customer maintains billing in QuickBooks, NetSuite, or another ERP post-migration, we provide a value mapping guide for that system's invoice reconstruction. Invoices that have a project-level narrative or notes that need to be preserved are imported as Project descriptions or custom fields in Asana.
Workamajig
Purchase Order
Asana
Not migrated (no equivalent)
lossyWorkamajig purchase orders track vendor expenses against Projects with PO headers, line items, and vendor associations. Asana has no purchase order or expense tracking object. We export PO data to a CSV inventory and provide a written guide for reconstructing POs in the customer's accounting system. Project-level expense notes that need to be preserved migrate as Tasks or custom fields in Asana if the customer requires them in their project management view.
Workamajig
Activity
Asana
Comment on Task or Project
1:1Workamajig Activities capture engagement history on Companies and Contacts (calls, emails, meetings logged by the agency). The Workamajig activities module is read-only via API (GET only) at 50 req/min. We export available activity records and link them to the corresponding migrated Asana Task or Project as Comments. Activity type (call, email, meeting) and timestamp are preserved in the comment body. The Workamajig Activities module does not export automation rules or activity-triggered workflows; these are documented for rebuild in Asana Rules if applicable.
Workamajig
Report (data)
Asana
CSV export for admin reference
1:1Workamajig report data (CSV, Excel, PDF) is exportable. Report definitions, column layouts, filters, and grouping configurations are not transferable. We export all Workamajig report data as CSV files organized by report name and deliver them alongside the migration. Report layout reconstruction is documented in the handoff: we provide a field-mapping reference that lists every Workamajig report column and its corresponding Asana field or custom field so the admin can rebuild layouts in Asana Dashboards or export to a BI tool.
Workamajig
Media Item
Asana
Not migrated
1:1Workamajig Media Items categorize ad-buy purchases and map them to expense accounts in the general ledger. These are internal accounting categorization objects with no meaningful equivalent in Asana. Media Item records are not migrated; we flag them in the scoping inventory and direct the customer to their accounting system for this data.
| Workamajig | Asana | Compatibility | |
|---|---|---|---|
| Campaign | Portfolio or Project Grouping1:many | Fully supported | |
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Deliverable | Task with Custom Fieldlossy | Fully supported | |
| Custom Field (Projects, Campaigns, Tasks) | Custom Fieldlossy | Fully supported | |
| Company | Organization1:1 | Fully supported | |
| Contact | Member1:1 | Fully supported | |
| Time Entry | Task (time tracking notes)lossy | Fully supported | |
| Invoice | Not migrated (no equivalent)lossy | Fully supported | |
| Purchase Order | Not migrated (no equivalent)lossy | Fully supported | |
| Activity | Comment on Task or Project1:1 | Fully supported | |
| Report (data) | CSV export for admin reference1:1 | Fully supported | |
| Media Item | 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.
Workamajig gotchas
Projects API rate limit of 20 req/min throttles large migrations
API is beta1 with no backward-compatibility guarantees
Server migrations change IP addresses and break IP-whitelisted integrations
Report definitions do not export, only report 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 data audit
We audit the source Workamajig instance across all modules: Projects (with record count and custom field schemas), Campaigns, Tasks (with hierarchy depth and cross-project dependencies), Deliverables, Companies and Contacts, Custom Fields on all objects, time-entry volume and date range, invoice and PO count, and active report definitions. We also identify IP-whitelisted integrations that may break during Workamajig's server migration cycles and flag any active SSO or SAML configurations. The discovery output is a written migration scope with record counts per object, a list of unmigratable objects, and an Asana tier recommendation based on the customer's feature requirements (time tracking, Portfolios, advanced Rules, Guest access).
Custom field schema extraction and Asana field creation
We extract the full Workamajig custom field schema including field types, required flags, picklist options, and object associations. We pre-create corresponding Asana Custom Fields in the destination organization before any data import, matching field types (text, number, date, multi-select, person) and pre-populating picklist values. For any Workamajig calculated fields that have no Asana formula equivalent, we agree on a conversion strategy (pre-calculated text field or removal from scope) with the customer before migration begins. Custom fields are created in Asana via API before the production migration window.
Batched project extraction with rate-limit handling
We extract Workamajig Projects in batches of 20 records with backoff delays to stay within the 20 req/min ceiling, paginating through all project pages before moving to related objects. Project IDs are captured for subsequent Task and Deliverable linkage. If the API returns a 429 during extraction, we pause for theRetry-After window and resume from the last confirmed page. Estimated extraction duration is communicated to the customer before the migration window opens so that teams can plan for a read-only Workamajig period during final delta extraction.
Dependency-ordered import into Asana
We import into Asana in dependency order: Organizations (from Workamajig Companies), Members (from Workamajig Contacts with Organization linkage), Projects (with Campaign mapping to Portfolio or top-level Project), Tasks (with project linkage, assignee resolution, and Subtask nesting), and Deliverables (as Tasks with Deliverable Status custom field). Custom Fields are mapped at each object insert. Owner resolution maps Workamajig users to Asana Members by email match; unresolved owners are held in a reconciliation queue for the customer's admin to provision. Time entries are imported as structured Task custom fields or native time-tracking entries on Business+ plans after project time tracking is enabled.
Cross-project dependency resolution
Workamajig tasks with cross-project predecessors require both the source and destination Project to exist in Asana before the dependency link can be created. We flag all cross-project task dependencies during discovery, export them in a separate dependency manifest, and resolve them as a final import phase after all Projects and Tasks are inserted. Dependency links are created in Asana via the dependencies API endpoint with the blocking and blocked task GIDs resolved from the migration lookup table.
Cutover, delta sync, and handoff
We freeze Workamajig writes during cutover, run a final delta extraction of any records modified during the migration window, and apply the delta to Asana. We validate record counts across all objects, spot-check 25-50 records against the Workamajig source, and deliver the invoice and PO CSV inventories plus the workflow automation inventory document to the customer's admin. We support a one-week hypercare window for reconciliation issues. We do not rebuild Workamajig workflows as Asana Rules or set up Asana time tracking configuration inside the migration scope; those are separate configuration tasks or partner engagements.
Platform deep dives
Workamajig
Source
Strengths
Weaknesses
Asana
Destination
Strengths
Weaknesses
Complexity grading
Standard Project Management migration. 2 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 Workamajig and Asana.
Object compatibility
2 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
Workamajig: 50 req/min for most modules (activities, companies, contacts, diary, opportunities, task, team, todos); 20 req/min for projects module; reports rate limit is documented separately.
Data volume sensitivity
Workamajig 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 Workamajig to Asana migration scoping. Not seeing yours? Book a call.
Walk through your Workamajig 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 Workamajig
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.