Project Management migration

Migrate from ITM Platform to Asana

Field-level mapping, validation, and rollback between ITM Platform and Asana. We move data and schema; workflows are rebuilt natively in Asana.

ITM Platform logo

ITM Platform

Source

Asana

Destination

Asana logo

Compatibility

54%

7 of 13

objects map 1:1 between ITM Platform and Asana.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from ITM Platform to Asana is a structural migration that resolves two fundamentally different organizational models. ITM Platform uses a Portfolio-Program-Project-Task hierarchy with unlimited baseline tracking, dedicated Risk and Purchase entities, and strategic alignment tagging; Asana uses Projects as the top-level container with Tasks, Sections, and Subtasks nested inside, no native Risk or Purchase entity, and Portfolios as a reporting overlay rather than a data container. We map ITM Programs into Asana Projects or Teams, preserve ITM Tasks as Asana Tasks with parent-child relationships, and map ITM Milestones to Asana Tasks with a milestone-flag custom field. Baselines, Risks, and Purchases have no native Asana counterpart — we extract the full record set and deliver it as a structured dataset for the customer's admin to recreate manually or in a separate tool. ITM's v1/v2 API session token expiry and the absence of a bulk export endpoint govern our batch sizing and re-authentication strategy throughout the migration.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

ITM Platform logo

ITM Platform

What's pushing teams away

  • Browser-specific rendering issues mean some team members experience degraded UI loading or layout problems depending on which browser they use.
  • Mid-market feature set can feel limiting as organizations scale — particularly around advanced resource heatmaps, capacity forecasting, and enterprise reporting integrations.
  • Absence of public API documentation or rate-limit disclosures makes it difficult for technical teams to build reliable integrations or automated data pipelines.
  • Limited awareness outside Spanish-speaking markets means organizations with global teams struggle to find community support, training resources, or local implementation partners.
  • No clear enterprise tier differentiation in public pricing makes it hard for large organizations to evaluate whether the platform scales to their user count and data volume needs.

Choosing

Asana logo

Asana

What's pulling them in

  • Organizations with distributed teams cite Asana's multiple project views (List, Board, Calendar, Timeline) as the primary reason for adoption, allowing each team member to work in their preferred interface without changing the underlying data.
  • The platform's 100+ native integrations with tools like Slack, Google Drive, Salesforce, and Microsoft Teams reduce context-switching and keep work synchronized across the stack.
  • Small teams and non-profits value the free plan's generous limits: unlimited projects and tasks for up to 15 team members with basic views, enabling teams to validate fit before committing to a paid tier.
  • Marketing and creative teams specifically praise Asana's visual project organization, reporting dashboards, and timeline views for managing cross-functional campaign workflows.
  • Project managers report that Asana's dependency management and workload views help surface bottlenecks before they derail deadlines.

Object mapping

How ITM Platform objects map to Asana

Each row shows how a ITM Platform 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.

ITM Platform

Portfolio

maps to

Asana

Portfolio

1:1
Fully supported

ITM Portfolio records map to Asana Portfolio. We preserve the Portfolio name, description, and status. Child Programs and Projects within the Portfolio are resolved by querying Asana's portfolio_items endpoint after the migration and linked to the Portfolio as project membership records. ITM's strategic alignment tags and KPI scores on Portfolio become custom text fields on the Asana Portfolio object.

ITM Platform

Program

maps to

Asana

Team or Project

lossy
Fully supported

ITM Programs have no direct Asana equivalent. We offer two approaches during scoping: map each Program to an Asana Team (which provides member management and team-level reporting) or map each Program to a top-level Asana Project with a 'Program' prefix in the name. The approach depends on whether the customer's Asana structure uses Teams for org-wide grouping or Projects for initiative grouping. We preserve the Program's description, dates, owner, and custom fields as equivalent fields on the destination Team or Project.

ITM Platform

Project

maps to

Asana

Project

1:1
Fully supported

ITM Projects map directly to Asana Projects. The Project name, description, start_date, due_date, status (active/on hold/closed), owner, and budget fields migrate to Asana's name, notes, start_on, due_on, and custom fields. ITM's Project-level custom fields are extracted individually and mapped to Asana custom fields defined at the workspace level, then applied to the project via the custom_field_settings endpoint. The parent-child containment of Projects under Programs is preserved via the Asana Team or parent Project mapping chosen in the Program mapping step.

ITM Platform

Task

maps to

Asana

Task

1:1
Fully supported

ITM Tasks map to Asana Tasks with parent-child relationships preserved via the parent association. We migrate task name, description (as Notes), start_date, due_date, status, assignee (via User email resolution), estimated_hours (as a number custom field or as a subtask with time estimate), and priority. ITM's custom fields on Task are mapped to workspace-level Asana custom fields applied to the parent Project.

ITM Platform

Subtask

maps to

Asana

Checklist Item

1:many
Fully supported

ITM Subtasks are nested one level under Tasks. Asana has a flat Task model with a Checklist feature rather than a true Subtask object. We flatten ITM Subtasks into a Checklist attached to the parent Asana Task, preserving the Subtask name and assignee (noted in the checklist item text). For ITM Subtasks with their own due dates or custom fields, we convert them to child Asana Tasks with a visual section grouping or a naming convention (e.g., 'S: [subtask name]') to signal hierarchy.

ITM Platform

Milestone

maps to

Asana

Task (milestone flag)

1:1
Fully supported

ITM Milestones are standalone date-driven markers belonging to Projects or Tasks. We migrate them as Asana Tasks with a custom field 'Milestone' set to true, preserving the milestone name, target date, and owner. Where the milestone has no named owner in ITM, the milestone task is created with no assignee. We do not convert milestones to Asana's Section markers because Sections are not date-bound and do not appear in timeline or calendar views.

ITM Platform

Baseline

maps to

Asana

Project (custom dataset)

lossy
Fully supported

ITM Baselines capture schedule, cost, and revenue snapshots as an array per Project. Asana has no native baseline entity. We extract all baseline records per project, structure them as a JSON dataset attached as a custom field (large text) on the Asana Project, and deliver the full structured baseline dataset in a CSV export for the customer's admin to recreate in a separate planning or spreadsheet tool. We flag upfront whether the customer actively uses multiple baselines per project so we can confirm the dataset size before committing this approach.

ITM Platform

Custom Fields

maps to

Asana

Custom Fields

lossy
Mapping required

ITM custom fields are entity-scoped (project, task, risk, purchase) key-value pairs. We extract each custom field definition (name, data type, options list for enum types) and create workspace-level custom fields in Asana via POST /custom_fields. ITM text fields map to Asana text, number fields to Asana number, date fields to Asana date, and enum fields to Asana enum with the options list preserved. Custom field values are set on each migrated record via PUT /tasks/{gid} with the custom_fields array.

ITM Platform

Risk

maps to

Asana

Project or Task (manual)

lossy
Fully supported

ITM Risks are a distinct entity type with name, description, probability, impact, owner, and mitigation plan. Asana has no native Risk object. We extract all Risk records during migration and deliver them as a structured CSV with the original ITM Risk fields and a recommended Asana mapping column (Project name, Task name, or custom field bucket). The customer's admin recreates Risks as Asana Projects, Tasks with a 'Risk' tag, or a dedicated risk-management tool. We flag Risks with high probability or high impact during extraction so they can be prioritized in the rebuild.

ITM Platform

Purchase

maps to

Asana

Task or external tool (manual)

lossy
Fully supported

ITM Purchases are a distinct entity type for procurement tracking linked to Projects, with fields for name, amount, vendor, status, and custom values. Asana has no native Purchase or procurement entity. We extract all Purchase records as a structured CSV and deliver it alongside the migration. The customer's admin recreates Purchase records as Asana Tasks with custom fields for amount, vendor, and status, or in a dedicated procurement tool integrated via Asana's API.

ITM Platform

User

maps to

Asana

User

1:1
Fully supported

ITM Users are referenced by UserID across Tasks, Risks, Programs, and Projects. We extract the full user list (name, email, role, team membership) and match by email against the destination Asana workspace members. Any ITM User without a matching Asana User is flagged in the reconciliation report for the customer's admin to provision before record import. Inactive ITM Users are mapped to inactive Asana Users if the customer needs to preserve historical assignment records.

ITM Platform

Time Entry

maps to

Asana

Task (duration)

1:1
Fully supported

ITM Time Entries track hours logged against Tasks or Projects with date, hours, user, and description. Asana has no native time-tracking object in its free or Standard tiers; the Business tier includes a Workload view but not a time-logging feature. We migrate Time Entries as subtasks on the parent Asana Task with a naming convention (e.g., '[date] - [hours]h: [description]') preserved in the task name, or we deliver them as a structured CSV for import into a time-tracking tool such as Toggl or Harvest that integrates with Asana.

ITM Platform

Comment

maps to

Asana

Stories (Task conversation)

1:1
Fully supported

ITM Comments on Tasks and Projects are migrated as Asana Stories attached to the parent Task. We preserve the comment text, author name, and original timestamp. User mentions and rich-text formatting are stripped during transformation to plain text. Comment attachments (if any) are skipped per the ITM Platform API limitation on binary attachment export.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

ITM Platform logo

ITM Platform gotchas

High

API session token expires 30 minutes after last call

Medium

v1 and v2 API endpoints coexist with no clear upgrade path

Medium

No documented bulk or batch API endpoint

Asana logo

Asana gotchas

High

Automation rules have no export representation

High

API rate limits cap bulk migration throughput

Medium

Portfolios are view-only objects that do not hold data

Medium

Custom field enum options cannot be updated via API

Low

Subtasks do not appear in project views by default

Pair-specific challenges

  • ITM Platform session tokens expire 30 minutes after last API call

    ITM Platform's API authentication generates a session token from a static API key, and that token expires 30 minutes after the last API call. Long-running exports that pause for validation, chunking, or pagination can silently lose their session mid-export. We handle this by monitoring token expiry timestamps before each batch, re-authenticating automatically when the token is within 5 minutes of expiry, and resuming from the last confirmed offset. We also check whether the customer's static API key is overdue for rotation (ITM recommends every two months) before migration begins — a rotated key mid-migration would break the session and require re-authentication.

  • No bulk export endpoint requires pagination-aware looping across all entities

    The ITM Platform API is REST-based returning JSON per resource with no documented batch or bulk export endpoint. Large portfolios with hundreds of Projects and thousands of Tasks require pagination-aware looping using offset/page parameters where documented, or date-range chunking where pagination is not available. We paginate through each entity type separately (Portfolios, Programs, Projects, Tasks, Risks, Purchases, Users) to avoid timeout and memory issues on the export side, and we batch inserts into Asana's task creation endpoint to stay within Asana's cost-based rate limiting (150 requests per minute for Bulk API, 1,500 per minute for standard REST). This adds latency to large migrations but avoids hitting undocumented throttling thresholds on the ITM side.

  • Asana Portfolios are reporting overlays, not data containers

    Asana Portfolios aggregate Project-level progress and custom field data for executive reporting, but they do not hold child Programs or Projects as records — they reference them. ITM Platform's Portfolios contain Programs and Projects as full child entities with their own properties. When migrating ITM Portfolios, we create Asana Portfolio records and link them to the migrated Projects via the portfolio_item_add endpoint. However, the Program-level hierarchy and any Program-level custom fields must be resolved into the mapped Asana structure (Teams or Projects with naming conventions) before the Portfolio links can be validated.

  • Asana has no native Risk, Purchase, or Baseline entity — all require manual rebuild

    ITM Platform's dedicated Risk and Purchase entities, along with its unlimited Baseline snapshots per Project, have no direct Asana equivalent. We extract the full record set for each of these entities during migration and deliver them as structured CSV exports paired with a written mapping guide for manual reconstruction. Risks with high probability or impact are flagged in the export so the admin can prioritize them. This is a manual step after migration rather than a live-data transfer, and we include it in scope with explicit acknowledgment before migration begins.

  • ITM v1 and v2 API coexistence creates versioning ambiguity during export

    ITM Platform maintains parallel v1 and v2 API hosts (api.itmplatform.com and api.itmplatform.com/v2) with v1 examples throughout documentation. Some v1 resources are marked DEPRECATED and replaced in v2, but v2 is not mandatory. We probe v2 endpoints first — if a v2 endpoint returns a 404 or empty schema, we fall back to v1 for that specific resource. This avoids accidentally using deprecated endpoints while still capturing data that may only exist in v1. We document which version was used per entity in the migration log for audit purposes.

Migration approach

Six steps for a successful ITM Platform to Asana data migration

  1. Discovery and API probing

    We audit the source ITM Platform account across all entities: Portfolios, Programs, Projects, Tasks, Subtasks, Milestones, Baselines, Risks, Purchases, Users, and Time Entries. We probe both v1 and v2 API endpoints per entity type to determine which version returns data for each resource, and we confirm the API key's rotation status and session expiry behavior. We extract the custom field definitions per entity scope, the baseline array structure, and the full user list with email addresses. The discovery output is a written migration scope document listing record counts per entity, the chosen API version per entity, the Asana workspace and team structure, and any ITM entities (Risks, Purchases, Baselines) designated for manual-handoff export rather than live migration.

  2. Asana destination schema setup

    We create the destination structure in Asana before any data import. This includes provisioning Teams (if chosen over Projects for Program mapping), creating workspace-level custom fields mapped from ITM's entity-scoped definitions, creating Portfolio records for each ITM Portfolio, and configuring the project template structure. We set up a Sandbox or test Project to validate the custom field mapping and the Program-to-Team or Program-to-Project approach before committing to production migration. The customer's Asana admin approves the schema design and custom field names before we proceed to record migration.

  3. User provisioning and owner reconciliation

    We extract every distinct ITM User referenced across Tasks, Risks, Programs, and Projects and match by email against the destination Asana workspace members. Users without a matching Asana account are listed in the reconciliation report for the customer's admin to provision before record import. We resolve ITM Owner references to Asana User references during this step so that assignee and project owner fields are satisfied at migration time rather than patched post-import.

  4. Portfolio and Program migration

    We migrate ITM Portfolios first as Asana Portfolio records, then migrate Programs as either Asana Teams or Projects depending on the scoping decision. Program-level custom fields and strategic alignment tags are extracted and applied to the destination Team or Project. Programs are migrated before their child Projects so that the containment hierarchy is established before task assignment begins.

  5. Project and Task migration in containment order

    We migrate ITM Projects in dependency order, starting with parentless Projects and then Projects nested under Programs. For each Project, we migrate the Project properties (name, description, dates, budget, custom fields), then create all Tasks with parent-child relationships resolved via the ITM Task hierarchy. Subtasks are converted to Checklist items or child Tasks. Milestones are created as Tasks with a milestone custom field flag. We migrate Comments as Stories on the parent Task. Each batch of Projects and Tasks emits a row-count reconciliation report against the ITM source count.

  6. Baseline, Risk, and Purchase manual-handoff export

    We extract Baselines as a structured JSON dataset per Project, attach a summary as a large-text custom field on each Asana Project, and deliver the full baseline dataset as a CSV. Risks and Purchases are extracted as CSVs with all original ITM fields and a recommended Asana mapping column. We flag high-priority Risks and high-value Purchases in the export. These three datasets are handed off as documented exports rather than live API-created records in Asana.

  7. Cutover, validation, and reconciliation

    We freeze writes to ITM Platform during the cutover window, run a final delta migration of any records modified since the last batch, then deliver the full Asana workspace for reconciliation. The customer's PMO lead spot-checks 25-50 random Projects and Tasks against the ITM source for field accuracy and completeness, validates that custom field values are correctly applied, and confirms that the Portfolio links and Program hierarchy resolve as expected. We resolve any mapping corrections and deliver the Baseline, Risk, and Purchase export files. We do not rebuild ITM automations, approval workflows, or resource heatmaps in Asana; these are documented in the handoff report for the customer's admin to address as a post-migration task.

Platform deep dives

Context on both ends of the pair

ITM Platform logo

ITM Platform

Source

Strengths

  • Strategic alignment view tying individual projects to business-level goals and measurable KPIs.
  • Dashboard reporting with portfolio-level health metrics accessible to executives and PMO leaders.
  • Unlimited baseline tracking per project capturing schedule, cost, and revenue across planning scenarios.
  • Supports both Agile and Waterfall methodologies within a single platform, reducing tool sprawl for mixed-methodology organizations.
  • Custom field system applied across Projects, Tasks, Risks, and Purchases allows vertical-specific data capture without code.

Weaknesses

  • No publicly documented API rate limits or bulk export endpoints, making large-scale automated migration difficult to plan.
  • Browser-specific rendering inconsistencies reported by some team members depending on their browser choice.
  • Mid-market positioning may not satisfy enterprise requirements around SSO, audit logs, and role-based access control granularity.
  • API versioning split between v1 and v2 with v1 examples throughout documentation creates versioning ambiguity for integrators.
  • Limited international community presence outside Spanish-speaking markets reduces availability of third-party support and training resources.
Asana logo

Asana

Destination

Strengths

  • Unlimited projects and tasks on the free plan for teams up to 15 members.
  • 100+ native integrations including Salesforce, Slack, Google Drive, and Microsoft Teams.
  • Four distinct project views (List, Board, Calendar, Timeline) in a single interface.
  • Dependency management with start/end dates and predecessor links for critical path tracking.
  • Portfolio dashboards for executives to track cross-project status and workload.

Weaknesses

  • Per-seat pricing scales expensively: Advanced tier costs nearly double Starter for a 50-seat team.
  • API does not expose all UI-accessible data; some fields require screen-scraping for full fidelity.
  • Automation rule limits on lower tiers are restrictive, causing power users to upgrade or leave.
  • No native document/wiki capability forces teams to use external tools for knowledge management.
  • Rate limits (150 req/min on free, 1,500 req/min on paid) constrain bulk migration throughput.

Complexity grading

How hard is this migration?

Moderate Project Management migration. 1 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across ITM Platform and Asana.

  • Object compatibility

    C

    1 of 8 objects need a manual workaround.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    ITM Platform: Not publicly documented.

  • Data volume sensitivity

    B

    ITM Platform doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your ITM Platform to Asana migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about ITM Platform to Asana data migrations

Answers to the questions buyers ask most during ITM Platform to Asana migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your ITM Platform to Asana migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Straightforward migrations with under 100 Projects, 2,000 Tasks, and 50 Users with no Risk or Purchase entities complete in three to five weeks. Migrations with large baseline sets, extensive entity-scoped custom fields (over 20), or risk registers exceeding 200 records move to seven to ten weeks because of per-entity pagination loops in the ITM API, custom field creation and mapping in Asana, and the manual handoff documentation for Risks, Purchases, and Baselines. Timeline assumes the customer's Asana workspace is provisioned and the admin is available for schema approval within three business days of request.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ITM Platform.
Land in Asana, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day