Project Management migration
Field-level mapping, validation, and rollback between Demand Metric and Asana. We move data and schema; workflows are rebuilt natively in Asana.
Demand Metric
Source
Asana
Destination
Compatibility
9 of 12
objects map 1:1 between Demand Metric and Asana.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Demand Metric to Asana is an extraction-first migration. Demand Metric does not publish a REST or GraphQL API, so we build a custom CSV extraction playbook during discovery that walks every view the customer uses, identifies which task and project data is exportable per view, and flags data that can only be captured manually. We map Demand Metric Projects 1:1 to Asana Projects, preserve task hierarchies with subtasks, apply tag labels as Asana Tags or custom fields, and resolve assignees by email against the Asana workspace membership. We do not migrate Workflows, Automations, Calendar layouts, or the 1,000+ template library content — these are documented in a written handoff inventory for the customer's admin to rebuild in Asana. Attachment extraction and re-upload runs as a separate pass because Demand Metric exposes no API endpoint for file retrieval.
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 Demand Metric 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.
Demand Metric
Project
Asana
Project
1:1Demand Metric Projects map 1:1 to Asana Projects. We preserve project name, description, start date, due date, and status. Status mapping: Demand Metric Active becomes Asana non-archived; Demand Metric Archived becomes Asana archived. Multiple Demand Metric workspaces map to multiple Asana Projects within a single Asana workspace, or to separate Asana workspaces depending on the customer's organizational preference established during scoping.
Demand Metric
Task
Asana
Task
1:1Demand Metric Tasks migrate as Asana Tasks with title, description (migrated as rich text notes), assignees, due dates, and priority preserved. Priority mapping: High maps to Asana High priority, Medium to Medium, Low to Low. Completed status in Demand Metric maps to completed tasks in Asana. We set the Task created_at and completed_at from Demand Metric's timestamps where available.
Demand Metric
Subtask
Asana
Subtask
1:1Demand Metric subtasks migrate as Asana Subtasks (child tasks) under the parent Asana Task. We preserve the nesting depth from Demand Metric — if a subtask has its own subtasks, we replicate the hierarchy in Asana. Asana supports one level of subtasks natively; deeper nesting is flattened to one level with a note indicating the original depth.
Demand Metric
Tag
Asana
Tag or Custom Field
lossyDemand Metric tags are extracted as a vocabulary list during discovery. We apply them as Asana Tags by default (using the Tags API), which allows cross-project filtering in Asana's My Tasks and project views. If the customer uses a structured tag taxonomy with defined values (e.g., Department, Campaign Type, Priority Category), we map them to Asana Custom Fields (single-select or multi-select) for stronger filtering at the project and task level. The customer chooses the strategy during scoping.
Demand Metric
Team Member
Asana
Member
1:1Demand Metric team members and assignees migrate as user references in Asana. We match by email address against the Asana workspace membership. Any assignee without a matching Asana user is held in a reconciliation queue for the customer's admin to provision before the task import phase begins. The mapping report lists every unmapped assignee and the tasks they are assigned to.
Demand Metric
Custom Task Field
Asana
Custom Field
1:1Demand Metric custom properties on tasks require field-level mapping against Asana's Custom Fields schema. We identify all custom properties during discovery, map each to a typed Asana Custom Field (text, number, date, enum, or multi-enum), and apply field configuration in Asana before loading any tasks. If a Demand Metric custom field has an incompatible type (e.g., a free-form text field that functions as a URL), we map it to a text Custom Field in Asana and flag it for admin review.
Demand Metric
Calendar View
Asana
Not migratable
1:1Demand Metric Calendar view layouts are view-level display metadata, not stored as a distinct data object. They cannot be migrated. Milestone dates from Demand Metric tasks migrate as Tasks with the Asana Due Date set; the calendar layout itself is recreated by the customer in Asana Calendar View post-migration. We flag all milestone tasks during extraction so the customer can apply the Asana Milestone marker.
Demand Metric
Pre-built Template Library
Asana
Not migratable
1:1The 1,000+ templates, playbooks, toolkits, and training resources on Demand Metric are content objects stored on the platform, not customer project data. They cannot be exported via CSV or any API. We treat them as reference material and flag them for manual re-download from Demand Metric or identification of equivalent Asana templates post-migration. We do not include template content in the migration scope.
Demand Metric
Attachment
Asana
Attachment
lossyDemand Metric attachments embedded in tasks and projects have no documented export API endpoint. We perform a separate attachment extraction pass: we identify every task with an attachment during discovery, extract the file URLs or download references, and re-upload them to the corresponding Asana task via the Asana Attachments API. For attachments with no accessible URL, we document the task and attachment name for manual re-upload post-migration.
Demand Metric
Marketing Calendar entries
Asana
Task with Due Date
1:1Demand Metric marketing calendar entries that aggregate tasks and milestones by date are not a distinct data object in the platform — they are a view of tasks filtered by date. We extract the underlying task records with their due dates and load them as Asana Tasks with Due Date fields. The marketing calendar layout is view metadata and does not migrate; we flag the date-scoped task sets during discovery so the customer can apply Asana Calendar View post-migration.
Demand Metric
Cross-project tag filter
Asana
Not migratable
lossyCross-project tag filters in Demand Metric are view-level metadata that organize tasks across multiple projects by tag. They do not transfer as structured filter objects. We preserve the full tag vocabulary during migration and recommend that the customer re-applies cross-project tag views in Asana using the My Tasks filter bar or Asana's portfolio-level tagging view. We deliver a tag taxonomy document listing every distinct tag in use.
Demand Metric
Project Status
Asana
Project Status
1:1Demand Metric project status indicators (active, on hold, complete) map to Asana project archived state and task completion state. On-hold status in Demand Metric becomes an active but non-archived project in Asana with a tag label On Hold so that the customer's team can identify paused work without archiving the project entirely.
| Demand Metric | Asana | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Subtask | Subtask1:1 | Fully supported | |
| Tag | Tag or Custom Fieldlossy | Fully supported | |
| Team Member | Member1:1 | Fully supported | |
| Custom Task Field | Custom Field1:1 | Fully supported | |
| Calendar View | Not migratable1:1 | Fully supported | |
| Pre-built Template Library | Not migratable1:1 | Fully supported | |
| Attachment | Attachmentlossy | Fully supported | |
| Marketing Calendar entries | Task with Due Date1:1 | Fully supported | |
| Cross-project tag filter | Not migratablelossy | Fully supported | |
| Project Status | Project Status1: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.
Demand Metric gotchas
No public API — data must be extracted manually
Template library content is not migratable project data
Cross-project tagging taxonomy requires re-building on destination
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 extraction playbook
We audit every Demand Metric view the customer uses — Board, Calendar, and List — and document the export capability per view. We identify all projects, tasks, subtasks, tags, team members, custom fields, attachments, and milestone entries in scope. We build a written extraction playbook that specifies the CSV export steps per view, flags any data only accessible via manual screenshot or manual download, and delivers a data inventory with record counts per object type. This step produces the migration scope and the extraction sequence that every subsequent phase follows.
Schema configuration in Asana
We configure the Asana destination workspace before any data loads. This includes creating Projects mapped to Demand Metric projects, configuring Custom Fields with typed schemas (text, number, date, enum) to match every Demand Metric custom property, setting up tag taxonomy as Asana Tags or Custom Fields per the customer's chosen strategy, and creating placeholder sections within projects to match Demand Metric task groupings. Schema configuration is validated in Asana before extraction begins.
CSV extraction and transformation
We execute the extraction playbook: exporting CSV per Demand Metric view, consolidating task records across views, resolving subtask parent references, flattening deep nesting to Asana's one-level subtask model, and transforming tag labels and custom field values to match the Asana schema defined in Step 2. The transform layer flags any task with missing required fields, any assignee without a matching Asana user, and any attachment with an inaccessible URL.
Owner and assignee reconciliation
We extract every distinct assignee and team member referenced on Demand Metric tasks and projects and match by email against the Asana workspace membership. Assignees without a matching Asana user go to a reconciliation queue. The customer's admin provisions missing Asana workspace members before record import begins. Migration cannot proceed past this step because Asana requires a valid workspace member reference for task assignment.
Production migration in dependency order
We run the production migration in record-dependency order: Projects first (as the container), then Tasks with subtasks resolved, then Custom Field values applied per task, then Tags applied, then Assignees resolved via the owner mapping, then Attachments re-uploaded via the Asana Attachments API. Each phase emits a row-count reconciliation report before the next phase begins. We use Asana's REST API with rate-limit handling and batch chunking for all standard object loads.
Cutover, validation, and workflow rebuild handoff
We freeze Demand Metric access during cutover, run a final delta migration of any tasks modified during the migration window, then deliver the written handoff inventory: full tag taxonomy document, custom field map, automation and template rebuild checklist, and list of any tasks with unresolvable attachments requiring manual re-upload. We support a one-week hypercare window for reconciliation issues. We do not rebuild Demand Metric workflows or automations in Asana Rules; that work is documented and delivered to the customer's admin for post-migration rebuild.
Platform deep dives
Demand Metric
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 Demand Metric 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
Demand Metric: Not applicable — no public API endpoints are published..
Data volume sensitivity
Demand Metric 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 Demand Metric to Asana migration scoping. Not seeing yours? Book a call.
Walk through your Demand Metric 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 Demand Metric
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.