← All playbooks
Project management migration

Asana → Linear

Move active product and engineering work from Asana to Linear while preserving comments, projects, dependencies, files, identities, and a deliberate workflow instead of importing years of stale tasks.

Typical timeline8–15 business days30–55 hours active work
Statusneeds review
Source testedAsana organization importer requirements reviewed 2026-07-19
Destination testedLinear importer guidance reviewed 2026-07-19
Last reviewed2026-07-19
Sources2
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Asana

Reasons to stay
  • Flexible project planning serves many departments and work styles
  • Structured ownership, status, and workflow views improve operational visibility
Reasons to leave
  • Broad flexibility can produce inconsistent structures and administrative sprawl
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
New platform

Linear

What gets better
  • Fast, opinionated product-development workflows keep software teams focused
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Non-software work and highly customized enterprise processes fit poorly
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

Linear: Fast, opinionated product-development workflows keep software teams focused. This removes a major source-side concern: Broad flexibility can produce inconsistent structures and administrative sprawl.

Worst of the move

What you lose: Flexible project planning serves many departments and work styles. What you inherit: Non-software work and highly customized enterprise processes fit poorly.

01At a glance

Know the shape of the move.

Transfer outcome10 features audited
Transfer outcome distributionClean transfer: 3, Partial transfer: 4, Manual rebuild: 1, Not transferred: 2.
Clean3
Partial4
Manual1
Lost2
Mapping route8 of 8 fields have a destination path

This timeline assumes

  • One Asana organization with at most 20 teams and 20,000 active tasks.
  • A Linear workspace admin runs the importer.
  • Only owned active work and selected history are imported.
  • Users are mapped before confirmation.
  • Asana stays read-only for one delivery cycle.
02Loss matrix

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Task names and notescleancriticalLinear maps tasks to issues and notes to Markdown descriptions.Test long notes, formatting, and links.
CommentscleanhighThe dedicated Asana importer supports comments.Reconcile counts on decision-heavy tasks.
AssigneespartialhighUsers must map to Linear identities or issues become unassigned.Complete and approve the user map before import.
ProjectspartialcriticalA Linear issue can belong to one project, so one is chosen for multi-homed Asana tasks.Choose the canonical project and preserve other memberships as labels or links.
Statuses and sectionspartialcriticalLinear documents imported status as Backlog or Done, not the full Asana workflow.Design Linear statuses and reclassify active work after import.
Subtasks and dependenciescleanhighSub-issues and blocked/blocking relations are supported.Test deep nesting and critical dependency chains.
AttachmentspartialhighFiles except images and videos can become links in descriptions; destination storage behavior differs.Open every critical file and preserve durable originals.
Custom fieldsmanualhighThere is no universal mapping for every Asana field.Map to priority, estimate, label, project, cycle, or description.
Rules, forms, portfolios, goals, and approvalslostcriticalAsana application workflows do not transfer as working Linear behavior.Rebuild only approved product workflows and retain business planning elsewhere if needed.
Personal preferences and notificationslostlowInbox, follows, favorites, and notification state do not migrate.Provide onboarding defaults and let users configure preferences.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Task nameIssue titleautomaticPreserve stable source ID in metadata.
NotesDescriptionautomaticConverted to Markdown.
AssigneeAssigneetransformRequires user mapping.
PriorityPriorityautomaticVerify scale semantics.
ProjectProjecttransformChoose one for multi-project tasks.
TagTeam labelautomaticNormalize duplicates.
Subtask and dependencySub-issue and blocked/blockingautomaticVerify chains.
Custom fieldPriority, estimate, label, project, cycle, or descriptionmanualMap by meaning.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Preserve projects, tasks, comments, files, users, fields, rules, and active-work decisions.

  1. Inventory teams, projects, tasks by state, users, guests, fields, rules, forms, portfolios, goals, and integrations.
  2. Export critical projects and an API-backed count manifest.
  3. Download critical attachments.
  4. Classify tasks as import, archive, or discard.
  5. Record user and project mappings.

Proof to capture: A manifest accounts for every active task, comment class, attachment, user, project, and workflow.

Transformation · Linear importer review

Work scope and identity map

Import only owned work with correct assignees.

  1. Choose active and required history.
  2. Map every user.
  3. Block on unowned critical tasks.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Status and project worksheet

Workflow redesign

Turn Asana sections into a coherent Linear flow.

  1. Define team statuses.
  2. Map multi-project tasks.
  3. Reclassify active work after import.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Mapping

Multi-homed tasks lose context

highlikely likelihood

A task belongs to multiple Asana projects.

Consequence
Teams lose one planning context.
Mitigation
Choose one project and preserve others explicitly.

Stop if: Any critical project membership has no representation.

Import

Backlog and Done flatten active workflow

criticallikely likelihood

Active tasks land in broad default states.

Consequence
Current delivery status is wrong.
Mitigation
Run a controlled post-import reclassification before cutover.

Stop if: Critical active work cannot be assigned a correct state.

Cutover

Both systems automate work

highpossible likelihood

Asana rules and Linear integrations both create tasks.

Consequence
Duplicate work and notifications.
Mitigation
Disable source automation first.

Stop if: A test event writes to both systems.

06Precise timeline

Do the work in this order.

Estimate forUp to 20,000 active tasks
Total elapsed8–15 business days
Active work30–55 hours
BufferAdd time for custom fields, large files, and workflow redesign.
01
Days 1–2Scope and model2 days
02
Day 3Backup1 day
03
Days 4–6Pilot import3 days
04
Days 7–10Import waves2–4 days
05
Days 11–15Delta and delivery cycle3–5 days
  1. Days 1–2 · scope

    Scope and model

    8–12 hours active2 days elapsedTeam review waiting
    • Classify work.
    • Design Linear teams, statuses, projects, labels, and identities.

    Depends on: Asana and Linear admins

    Stop / go checkpoint

    Pilot?

    Go when: Every active work class has an owner and destination.

    Stop when: Critical custom workflow is unmapped.

  2. Day 3 · backup

    Backup

    4–7 hours active1 day elapsedExports waiting
    • Export project and count evidence.
    • Preserve files and mappings.

    Depends on: Approved scope

    Stop / go checkpoint

    Import?

    Go when: Counts and critical context reconcile.

    Stop when: Any active project is absent.

  3. Days 4–6 · pilot

    Pilot import

    8–13 hours active3 days elapsedImporter and owner review waiting
    • Import representative teams.
    • Validate comments, users, projects, dependencies, and files.
    • Reclassify workflow.

    Depends on: Backup

    Stop / go checkpoint

    Waves?

    Go when: Representative team scenarios pass.

    Stop when: Critical context or ownership is wrong.

  4. Days 7–10 · waves

    Import waves

    7–14 hours active2–4 days elapsedImport processing waiting
    • Import by team.
    • Reconcile and reclassify each wave.
    • Rebuild integrations.

    Depends on: Passed pilot

    Stop / go checkpoint

    Freeze?

    Go when: Every wave reconciles.

    Stop when: Duplicates or missing task relationships remain.

  5. Days 11–15 · cutover

    Delta and delivery cycle

    3–9 hours active3–5 days elapsedNormal team usage waiting
    • Freeze Asana.
    • Apply final changes.
    • Switch intake and observe one cycle.

    Depends on: Imported waves

    Stop / go checkpoint

    Close rollback?

    Go when: All teams deliver from Linear.

    Stop when: A critical workflow remains source-only.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Linear the only work tracker after a final Asana delta.

Recommended window: After the final team planning session, before a low-change day.

  1. Freeze Asana edits and rules.
  2. Capture final changed tasks.
  3. Apply reviewed deltas to Linear.
  4. Switch forms, Slack, Git, and email intake.
  5. Make Asana read-only.
  6. Run triage and planning.

Proof to capture: One system receives work and all active tasks have correct owner, state, and context.

Return to safety

Rollback

Resume Asana without losing Linear work.

Deadline: Within one delivery cycle.

  1. Freeze Linear.
  2. Export post-cutover issues and changes.
  3. Restore Asana access and rules.
  4. Apply reviewed deltas.
  5. Restore intake.

Proof to capture: Asana owns all current work and Linear is read-only.

Rollback immediately when
  • Missing active work
  • Wrong assignees
  • Broken dependencies
  • Critical comment/file loss
  • Failed intake integration
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingTask dispositionReconcile stable IDs.100% imported, archived, or discarded.Task report.
V-02BlockingAssigneesCompare counts and samples.Correct owners.User map.
V-03BlockingMembershipReview multi-project tasks.Canonical project and retained context.Project exceptions.
V-04BlockingActive statusRun team planning scenarios.Current state is correct.Team sign-off.
V-05BlockingComments and filesInspect critical tasks.Required context opens.Context log.
V-06BlockingSubtasks and dependenciesCompare critical chains.Relationships match.Dependency report.
V-07BlockingSingle intakeTrigger each integration.One Linear issue and no Asana write.Delivery log.
V-08BlockingTeam permissionsTest member, guest, and unauthorized users.Approved access only.Access matrix.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: One complete delivery cycle and all team-owner sign-offs.

  1. Archive exports and mappings.
  2. Revoke migration tokens.
  3. Remove obsolete Asana rules and intake.
  4. Keep Asana read-only through retention.
  5. Update workflow documentation.
  6. Schedule quarterly access and stale-work reviews.
Sources and maintenance

Built to be reviewed.

Tested 2026-07-19. Next scheduled review: 2026-10-19.

  1. Linear: import issues from AsanaAccessed 2026-07-19
  2. Asana: export project dataAccessed 2026-07-19