Project Management migration

Migrate from ftrack to Asana

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

ftrack logo

ftrack

Source

Asana

Destination

Asana logo

Compatibility

23%

3 of 13

objects map 1:1 between ftrack and Asana.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from ftrack to Asana is a structural remodel, not a direct record copy. ftrack organizes work as Project > Sequence > Shot > Task with asset versioning and integrated review sessions; Asana uses Teams > Projects > Sections > Tasks with no native production-tracking entity model. We scope the migration by mapping each ftrack entity level to an Asana construct (Team, Project, Section, or Task), preserve custom attribute values including hierarchical attributes that ftrack's API returns unevaluated, and store review session and annotation metadata as task-linked comments so the context survives without requiring a dedicated review module. Pipelines, locations configuration, review sessions, and the Python-based Locations plugin do not migrate; we document these as requires-rebuild items for your Asana admin. Media files themselves are not moved—we flag expected paths and let your team manage the actual asset transfer through their existing storage infrastructure.

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

ftrack logo

ftrack

What's pushing teams away

  • Initial setup requires significant API scripting and custom pipeline integration, which strains smaller teams without a dedicated pipeline TD.
  • Regular ftrack updates occasionally break existing integrations and custom scripts, creating maintenance overhead that frustrates users.
  • Project navigation inside third-party integrations is described as poor, making it difficult to browse or update ftrack data from within DCC tools.
  • Notes posted in the webplayer sometimes attach to the wrong task level, requiring producers to manually verify and reassign them.
  • Storage configuration and Location management is complex for studios without a dedicated infrastructure engineer.

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 ftrack objects map to Asana

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

ftrack

Project

maps to

Asana

Team or Project

lossy
Fully supported

ftrack Projects are the top-level container holding Sequences, Shots, Tasks, and custom attributes. We map each ftrack Project to either an Asana Team (for organization-level grouping) or an Asana Project (for work-level grouping), depending on how many ftrack Projects exist and whether the customer uses Asana Teams for department-level separation. The ftrack Project name, status, and custom attributes migrate to the Asana Team description or Project custom fields. Schema dependency: Projects must be created before Sequences and Shots because those entities hold parent references.

ftrack

Sequence

maps to

Asana

Project or Section

lossy
Fully supported

ftrack Sequences sit between Project and Shot in the hierarchy. We map each Sequence to an Asana Project (if the customer wants per-sequence work plans) or an Asana Section within the parent Project (if sequences are treated as task groupings rather than standalone work plans). The mapping choice is made during scoping based on the customer's workflow. Sequence status, name, and custom attributes transfer to the Asana equivalent. Parent Project reference resolves to the Asana Team or Project GID created in the Project phase.

ftrack

Shot

maps to

Asana

Section or Project

lossy
Fully supported

ftrack Shots are children of Sequences and parents of Tasks. We map Shots to Asana Sections within the parent Project (the standard mapping for mid-volume shot lists) or to standalone Asana Projects (for large productions where each Shot requires its own task plan and timeline view). Shot status, thumbnail URL (stored as a text custom field reference), and custom attributes migrate. Parent Sequence reference resolves to the Asana Project or Section GID from the Sequence mapping phase.

ftrack

Task

maps to

Asana

Task

1:1
Fully supported

ftrack Tasks are the core work unit with a parent link to Shot or Sequence, assignees, due dates, status, notes, and custom attributes. Tasks map 1:1 to Asana Tasks. Assignee email addresses resolve to Asana User GIDs via the User mapping. Due dates migrate directly. ftrack Task status values map to Asana Sections or to a custom status field depending on whether the customer uses Timeline view, which requires named Sections for stage tracking. Notes attached to the Task migrate as Asana Task Comments.

ftrack

Asset

maps to

Asana

Task Custom Field (link reference) or Attachment

lossy
Fully supported

ftrack Assets represent published files or asset builds linked to a Shot or Sequence context. Asana has no native asset library or version control. We handle Assets in one of two ways depending on the customer's choice during scoping: (a) create a custom Asana Text field asset_reference__c on Tasks, storing the original ftrack Asset name, version count, and a link to the expected file path; or (b) attach the most recent Asset Version as a file attachment to the Task. Media files themselves are not transferred; we document the expected file location and let the customer's infrastructure team manage the actual asset transfer.

ftrack

Asset Version

maps to

Asana

Task Custom Field (version list)

lossy
Fully supported

ftrack Asset Versions represent sequential publishes of an Asset, each with a version number, file path, components, and metadata. Asana has no native version history. We store the version chain as a newline-separated list in a custom Text field asset_versions__c on the linked Task (format: v1: /path/to/v1 | v2: /path/to/v2). For productions where version history is critical, we recommend using Asana's Proof attachments or a third-party DAM integration post-migration rather than storing full version chains inside task fields.

ftrack

Note

maps to

Asana

Task Comment

1:1
Fully supported

ftrack Notes attach to any entity (Project, Shot, Task) and include author, timestamp, and body text. We migrate Notes as Asana Task Comments linked to the resolved Task. A known ftrack behavior (documented in ftrack gotchas) is that Notes posted via the webplayer sometimes attach to the wrong hierarchical level, landing at the topmost parent object instead of the intended child Task. We detect these mismatched notes during pre-migration validation by comparing each note's context_id against the task hierarchy and re-associate them with the correct parent Task before writing to Asana.

ftrack

Custom Attribute

maps to

Asana

Custom Field

lossy
Fully supported

ftrack custom attributes are key-value pairs stored in a custom_attributes dictionary on any entity type. We map each ftrack custom attribute to an Asana Custom Field of the closest matching type: Text, Number, Enum (single-select), or Date. Hierarchical custom attributes (set on a parent Shot and inherited by child Tasks) require special handling because ftrack's API returns the raw value rather than the evaluated inherited value; we query the parent entity for the effective value during migration and store that. Expression attributes (calculated formulas) return the non-evaluated expression string from ftrack's API; we flag these fields in the migration inventory and advise the customer to recalculate values in Asana manually or via a post-migration script.

ftrack

User

maps to

Asana

Asana User (Member)

1:1
Fully supported

ftrack Users are assigned to Tasks as assignees and carry name, email, and role. We extract every distinct ftrack user referenced on Task records and match by email against the destination Asana workspace's User table. Users without a matching Asana account go into a reconciliation queue for the customer's admin to provision before Task migration begins. Inactive ftrack users are mapped to inactive Asana Members with a custom field original_ftrack_role__c storing the ftrack role designation.

ftrack

Review Session

maps to

Asana

Task Comment (with annotation data)

lossy
Fully supported

ftrack Review Sessions store frame annotations, reviewer comments, and approval status linked to an Asset Version. Asana has no native review or annotation module. We extract review session metadata (session date, reviewer name, frame number, annotation text, approval status) and store it as a formatted Asana Task Comment on the Task linked to the reviewed Asset. The original review media (annotated frames, video markup) is not transferred; we flag the expected storage location for the customer's team to manage separately.

ftrack

Task Status

maps to

Asana

Section or Custom Enum Field

lossy
Fully supported

ftrack Task Statuses are configurable per project with name, color, and sort order. Asana does not have a global status object—Statuses are represented by Section names (for List and Board views) or by a custom Enum field. We map ftrack Status values to either Asana Sections within each Project or to a custom single-select field task_status__c, depending on whether the customer uses Timeline view (which requires Sections for stage gates). Any ftrack status with no exact Asana equivalent is flagged in the scope document for the customer to map manually.

ftrack

Location

maps to

Asana

Custom Text Field (path reference)

lossy
Fully supported

ftrack Locations define storage configuration for assets and files, including cloud and on-premises paths with optional Python plugin logic. These are studio-specific and carry infrastructure-specific path logic. We do not migrate Location records as functional storage configuration because Asana has no storage configuration layer. Instead, we export Location names and path templates as a metadata document and store a reference in a custom Text field asset_location__c on Tasks where the original ftrack Location is relevant. The customer's infrastructure team uses the metadata document to configure their file management system post-migration.

ftrack

Spreadsheet (view configuration)

maps to

Asana

Not migrated

lossy
Fully supported

ftrack Spreadsheets are a view configuration (column layout, sorting, filters) rather than a data object and cannot be exported as records. We do not migrate spreadsheet views. We document the column configurations and filter settings from each ftrack Spreadsheet as a written reference so the customer's Asana admin can rebuild equivalent List or Board views in Asana. This is listed in the handoff inventory.

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.

ftrack logo

ftrack gotchas

Medium

Notes attach to wrong task level in webplayer

Medium

Hierarchical custom attributes return raw values in API

Low

Expression custom attributes not evaluated by API

High

Import wizard does not delete records

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

  • No direct equivalent for asset versioning or review sessions

    ftrack's asset versioning system (Asset > Asset Version with sequential publish tracking) and browser-based review sessions with frame annotations have no native Asana equivalent. Asana stores flat file attachments and uses comments for feedback. We handle this by migrating asset metadata and version chains as custom fields on Tasks, and review session metadata (reviewer, frame, annotation text, approval status) as formatted Task Comments. Media files and annotated frames are not transferred—we flag their expected storage location. Customers who rely heavily on the review and approval workflow should plan for a third-party review integration (Frame.io, SyncSketch, or similar) post-migration.

  • ftrack's nested hierarchy must be flattened into Asana's flatter model

    ftrack's four-level production hierarchy (Project > Sequence > Shot > Task) does not map directly into Asana's three-level structure (Team > Project > Section > Task). We make the mapping decisions during scoping: Sequences can become Projects or Sections, Shots can become Sections or Projects, and Tasks map directly. The challenge is that ftrack Shot-level status and custom attributes may need to propagate to the Asana Project or Section level, which changes how the customer organizes work. We validate the flattening strategy in a Sandbox migration before production so the customer can adjust their Asana workspace structure before cutover.

  • ftrack API returns raw values for hierarchical and expression attributes

    ftrack's API returns raw values for hierarchical custom attributes (which should inherit from the parent Shot) and returns the non-evaluated expression string for expression attributes. If a custom attribute is set on a Shot and inherited by child Tasks, querying the Task via the API returns null for the inherited value. We handle this by querying the parent entity for the effective value during migration. Expression attributes are flagged in the pre-migration scope and advise the customer that these values must be recalculated in Asana after import. If expression attributes drive approval gates or downstream automation, this needs to be rebuilt in Asana Rules.

  • Asana API rate limits and CSV import row caps apply

    Asana's API enforces 150 requests per minute on free plans and 1,500 per minute on paid plans, with a maximum of 50 concurrent GET requests and 15 concurrent POST/PUT/PATCH/DELETE requests. Asana's CSV import wizard caps at 2,000 rows per project and cannot import comments, attachments, or due dates with time. We use Asana's REST API with exponential backoff and batch chunking to stay within rate limits. For large migrations (over 50,000 Tasks), we run phased imports with delta reconciliation between phases to avoid exceeding the API throughput window.

  • Location configuration carries studio-specific path logic that cannot migrate

    ftrack's Locations feature stores file storage paths and optional Python plugin logic for managing multi-site asset storage. These carry studio-specific infrastructure configuration (cloud buckets, on-prem NAS paths, conditional transfer rules) that has no equivalent in Asana. We export Location configuration as a written metadata document listing each Location name, its storage type, and the path template. The customer's infrastructure team uses this document to configure their file management system post-migration. This is not a data migration item—it is a manual rebuild item documented in the handoff inventory.

Migration approach

Six steps for a successful ftrack to Asana data migration

  1. Discovery and hierarchy mapping design

    We audit the source ftrack workspace across Projects, Sequences, Shots, Tasks, Assets, Asset Versions, Notes, and custom attribute definitions. We assess the total record count per entity type, identify any hierarchical custom attributes and expression attributes (flagged for special handling), review the task status schema per project, and document Locations and Review Session usage. We then design the Asana schema: which ftrack Projects become Asana Teams versus Projects, which become Sections, whether Shots map to Sections or Projects, and how custom attributes map to Asana Custom Field types. The discovery output is a written migration scope with the full hierarchy flattening map and a recommended Asana workspace structure.

  2. Sandbox migration and reconciliation

    We run a full migration into an Asana Sandbox workspace (created as a separate Asana organization for testing) using production-like data volume. The customer's project manager and production lead reconcile record counts across each entity level (Projects in, Sequences in, Shots in, Tasks in, Comments in), spot-check 25-50 random Tasks against the ftrack source for field-level accuracy, and verify that custom attribute values are present and correctly typed in Asana. The customer approves the sandbox migration before production migration begins. Any mapping corrections happen here.

  3. Owner reconciliation and user provisioning

    We extract every distinct ftrack User referenced on Task records and match by email against the destination Asana workspace's User table. Users without a matching Asana account go to a reconciliation queue. The customer's Asana admin provisions any missing users (active or inactive depending on whether the original ftrack user is still active). Migration cannot proceed past Task import because Asana requires a valid assignee User GID on each Task. We validate that all ftrack users with active assignments have Asana accounts before production migration begins.

  4. Production migration in dependency order

    We run production migration in record-dependency order: Teams and Projects first (Asana structure scaffold), then Sections, then Tasks with assignees and due dates resolved, then custom field values (with hierarchical attribute resolution from parent entities), then Notes as Task Comments, then Asset metadata as custom fields. Review Session metadata is written as formatted Comments after Tasks are confirmed. Each phase emits a row-count reconciliation report before the next phase begins. API rate limiting is handled with exponential backoff and batch chunking to stay within Asana's 1,500 requests per minute ceiling on paid plans.

  5. Cutover and delta migration

    We freeze writes in ftrack during cutover, run a final delta migration of any records modified or created during the migration window, then enable Asana as the system of record. We validate that no Tasks are missing assignees, that all custom field values are populated, and that Notes migrated to the correct Task (including the webplayer note-hierarchy fix for any notes that attached to the wrong level in ftrack). We deliver the written Location configuration document, the Review Session metadata summary, and the expression attribute recalculation checklist.

  6. Handoff and automation rebuild inventory

    We deliver a written inventory of every ftrack automation, spreadsheet view, Location configuration, and review session that was not migrated, with recommended Asana equivalents. Asana Rules (Starter and above) replace ftrack's workflow triggers and conditions; the inventory documents each ftrack automation's trigger and actions and the corresponding Asana Rule. The spreadsheet column configurations are documented for manual rebuild in Asana List or Board views. We support a one-week post-cutover window for reconciliation issues. We do not rebuild Asana automations, configure Timeline views, or set up Portfolios as part of the migration scope; these are separate Asana configuration engagements.

Platform deep dives

Context on both ends of the pair

ftrack logo

ftrack

Source

Strengths

  • End-to-end production tracking from planning through review and final delivery in a single platform.
  • Interactive browser-based media review with annotation tools that clients and stakeholders can access without a full ftrack seat.
  • Python API with JSON-schema-based dynamic schemas that adapt to each workspace's custom entity types and attributes.
  • Locations feature for managing multi-site storage and automated file transfer across studio infrastructure.
  • Custom attribute system allowing studios to extend any entity type with project-specific fields.

Weaknesses

  • API performance degrades with deeply linked queries and large unfocused data fetches, requiring careful query optimization.
  • Hierarchical and expression custom attributes are not fully supported in the API, returning raw rather than evaluated values.
  • Initial deployment and ongoing maintenance require dedicated pipeline TD resources or significant scripting investment.
  • Webplayer note posting can attach comments to the wrong hierarchical level, creating data integrity issues.
  • Enterprise tier pricing is opaque and requires a sales contact, making it hard to budget for large studio deployments.
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?

Standard Project Management migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • 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

    ftrack: Not publicly documented; ftrack advises optimizing queries to avoid server-side resource strain.

  • Data volume sensitivity

    B

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

Estimator

Estimate your ftrack 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 ftrack to Asana data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 20,000 Tasks and 500 Projects with no large asset version history. Migrations with extensive Asset Version chains (over 50,000 version records), multiple ftrack workspaces, expression custom attributes requiring pre-calculation, or a multi-team Asana destination move to eight to fourteen weeks because of schema flattening design, hierarchical attribute resolution, and sandbox reconciliation. The primary time driver is not API throughput but the hierarchy mapping design and custom attribute type resolution work that must be validated before production migration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ftrack.
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