← All playbooks
Project management migration

Asana → Jira

Move Asana projects, tasks, sections, people, comments, attachments, and custom fields into Jira Cloud without treating one importer pass as a finished operating model.

Typical timeline15–35 business days55–120 hours active work
Statusneeds review
Source profileAsana documentation reviewed 2026-10-28
Destination profileJira Cloud documentation reviewed 2026-10-28
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
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

Jira

What gets better
  • Deep workflow, issue, permission, and reporting controls support complex organizations
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Administration and process complexity can slow teams that need a lighter workflow
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

Jira: Deep workflow, issue, permission, and reporting controls support complex organizations. 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: Administration and process complexity can slow teams that need a lighter workflow.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome11 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 8, Manual rebuild: 2, Not transferred: 1.
Clean0
Partial8
Manual2
Lost1
Mapping route9 of 9 fields have a destination path

This timeline assumes

  • Up to 40 Asana projects, 50,000 in-scope tasks, and 250 users
  • You choose the native Asana importer, CSV, or a mapped third-party pipeline before any Jira write.
  • Jira accounts exist for people who should keep assignment, including people who left Asana.
  • One busy project is imported and signed off before the rest of the workspace.
  • The migration team records evidence for every blocking verification check.
02What transfers

What survives the move.

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

ItemOutcomeImpactWhat happensMitigation
Asana project through the native Jira importerpartialcriticalJira Cloud can pull one Asana workspace project into a new software or business space. The importer maps structure and fields, then you still have to design workflows, boards, and permissions.Pilot one project. Review hierarchy, field mapping, attachments, and member import before you scale.
Sections and board columnspartialcriticalAsana sections such as To Do, Doing, and Done can land as a Jira status, as the parent work type (Epic by default in software spaces), or as a category. Asana has no real workflow.Approve the section map before import. Keep a temporary Asana section field when the status mapping is a stretch.
Tasks and nested subtaskspartialcriticalTasks become Jira work items. Subtasks become Jira subtasks, and the importer links each subtask to its parent subtask inside a work item. Deep Asana trees do not match Jira's usual two-level model.Flatten anything deeper than parent plus subtask before import, or archive the extra levels as comments.
Standard fieldspartialcriticalJira maps task name, section, assignee, created by, description, due date, start date, collaborators, tags, stories, project, likes, and subtasks to matching system fields. Summary and status cannot be dropped.Keep assignee and dates unless you accept a board without owners or a timeline without dates.
Custom fieldspartialhighPremium Asana fields map to Jira dropdown, multi-select, text, paragraph, date, timestamp, multi-user, or number fields. Formula, percent, and currency become numbers. A free Asana account only sends standard fields.Review the field map. Drop unused fields. Do not map text into a date field.
Assignees, collaborators, and former userspartialcriticalProduct admins can only move people who already exist on the Jira site. Team-managed business importers cannot move users at all. Skipped members leave work unassigned, mentions as plain text, and comment authors as Anonymous.Invite users first. Import members on the review screen. Keep the Asana email on unmatched work.
Comments and attachmentspartialhighStories become comments when members import. Attachments are optional on the review screen. CSV export is a weaker history path than the native importer.Turn attachments on for the pilot. Open files as ordinary users. Prefix comments if you later load through CSV.
Multi-homed tasksmanualhighThe importer takes one Asana project into one Jira space. A task that lives in several Asana projects will not keep every membership.Pick a canonical project. Store other memberships as labels or issue links.
Rules, forms, portfolios, goals, and dashboardslostcriticalThe importer covers work items and fields. Asana rules, forms, portfolios, goals, workload, and saved views do not become Jira automation, filters, or dashboards.Inventory every rule and form. Recreate only the weekly workflows after intake moves.
Company-managed versus team-managed spacesmanualcriticalTeam-managed spaces are easier to stand up and weaker on shared workflows, fields, permissions, and apps. A later move to company-managed is a second migration.Choose company-managed when several teams share fields or reporting. Restrict team-managed creation before the first import.
CSV fallbackpartialhighAsana can export a project as CSV or JSON from Export/Print. Jira can also import CSV. Large Asana CSVs can arrive by email instead of an instant download.Use CSV for projects the native importer cannot finish. Keep JSON as the access-controlled backup.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Asana projectJira spacetransformOne Asana project per import. Choose software or business before you start.
Task nameSummaryautomaticRequired. You cannot exclude it.
Section headerStatus, Epic, or categorytransformApprove the mapping. Status is required.
Assignee or created byAssignee or reportermanualInvite users first. Unmatched people stay blank.
Description and storiesDescription and commentsautomaticStories become comments only when members import.
Due on and start dateDue date and start dateautomaticKeep them if you need timeline or calendar views.
Tags and collaboratorsLabels and watcherstransformNormalize duplicate tags before import.
SubtaskJira subtasktransformFlatten trees deeper than two levels.
Custom fieldMatching Jira fieldtransformFree Asana accounts have no custom fields to import.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Preserve Asana work, comments, files, users, and configuration before any Jira write.

  1. Export each in-scope project as CSV and JSON from the project Export/Print menu.
  2. Record task counts by project, section, assignee, and completion state.
  3. Inventory rules, forms, portfolios, goals, custom fields, guests, and integrations.
  4. Download critical attachments and hash every export.

Proof to capture: A signed manifest reconciles every scoped project, export file, count, and hash.

Transformation · Asana-to-Jira mapping workbook

Space, field, and user map

Decide the Jira space type, section map, and people list before import.

  1. Mark each project as native import, CSV, archive, or exclude.
  2. Map every section to a status, Epic, or category.
  3. Match users by email, then name, then a manual list.

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

Transformation · Jira Asana importer, then CSV for leftovers

Native import plus exception load

Create Jira work without hiding failed items behind a green progress bar.

  1. Review hierarchy, fields, attachments, and member import on the review screen.
  2. Download the error log if the run is partial.
  3. Load skipped work through CSV and keep the Asana task URL on every item.

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

Users never land in Jira

criticalpossible likelihood

The importer skips people who are not on the site, and team-managed business imports cannot move users.

Consequence
Active work becomes unassigned and comments lose authors.
Mitigation
Invite users first. Import members on the review screen. Keep the Asana email on the issue.

Stop if: A critical task has no recoverable owner.

Import

Deep subtasks disappear into a flat tree

highlikely likelihood

Asana allows several subtask levels. Jira does not work that way in daily use.

Consequence
Delivery status looks complete while child work is missing.
Mitigation
Flatten or archive extra levels in Asana before the load.

Stop if: Any in-scope parent is missing an approved child.

Cutover

Both tools keep writing

criticalpossible likelihood

Asana rules and Jira automation both act on the same work.

Consequence
Statuses diverge and comments duplicate.
Mitigation
Freeze Asana writers and disable source rules before Jira owns intake.

Stop if: An unapproved Asana writer remains active.

06Precise timeline

Do the work in this order.

Estimate forUp to 40 Asana projects, 50,000 tasks, and 250 users
Total elapsed15–35 business days
Active work55–120 hours
BufferAdd time for deep subtask trees, company-managed redesign, marketplace apps, or a custom comment pipeline.
01
Days 1–4Inventory and mode choice3–4 days
02
Days 4–7Backup and reconcile2–3 days
03
Days 7–18Map and pilot6–12 days
04
Days 16–30Final delta and switch2–6 days
05
Days 20–45Observe and close5–12 days
  1. Days 1–4 · inventory

    Inventory and mode choice

    8–16 hours active3–4 days elapsedOwner review waiting
    • Inventory Asana projects, sections, fields, users, rules, and apps.
    • Choose native import, CSV, or archive, and approve what stays in Asana.

    Depends on: Asana and Jira administrator access

    Stop / go checkpoint

    Export?

    Go when: Every critical item has an owner and disposition.

    Stop when: Space type, required fields, or consent is unclear.

  2. Days 4–7 · backup

    Backup and reconcile

    6–12 hours active2–3 days elapsedCSV generation email waiting
    • Export CSV and JSON for every in-scope project.
    • Reconcile counts, hashes, and the user sheet.

    Depends on: Approved inventory

    Stop / go checkpoint

    Transform?

    Go when: Source totals and export manifests agree.

    Stop when: Any critical project, comment class, or attachment set is absent.

  3. Days 7–18 · pilot

    Map and pilot

    16–50 hours active6–12 days elapsedOwner review of the sample waiting
    • Import one project that includes a nested subtask, a former user, and a file.
    • Compare keys, statuses, comments, and attachments.

    Depends on: Verified backup

    Stop / go checkpoint

    Scale?

    Go when: Pilot mappings, access, and evidence pass.

    Stop when: Any critical check fails or a count is unexplained.

  4. Days 16–30 · cutover

    Final delta and switch

    6–24 hours active2–6 days elapsedFinal import waiting
    • Freeze Asana writes and rules.
    • Load the final delta, switch intake, and run blocking checks.

    Depends on: Passed pilot and approved rollback

    Stop / go checkpoint

    Open production?

    Go when: Every in-scope task is accounted for and Jira owns intake.

    Stop when: An Asana writer remains active or a blocking check fails.

  5. Days 20–45 · observe

    Observe and close

    4–18 hours active5–12 days elapsedOne planning cycle waiting
    • Watch one complete planning and delivery cycle.
    • Sign the verification report before you close rollback.

    Depends on: Verified cutover

    Stop / go checkpoint

    Close rollback?

    Go when: No trigger occurs during the agreed observation period.

    Stop when: Work, access, or reporting regresses.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Jira the only intake system without losing the final Asana delta.

Recommended window: After the last planning session, on a staffed low-change morning.

  1. Freeze Asana writes, rules, and new task intake.
  2. Export and load the final changed tasks.
  3. Switch forms, email, and developer links to Jira.
  4. Run every blocking check and keep Asana readable.
  5. Keep the source intact through the rollback window.

Proof to capture: Jira owns intake, every in-scope Asana task is accounted for, and every blocking check has evidence.

Return to safety

Rollback

Return intake to Asana without losing Jira-era changes.

Deadline: Within one sprint and before Asana plans, credentials, or projects are changed.

  1. Stop new writes and rules in Jira.
  2. Restore Asana access, rules, and intake.
  3. Export the Jira post-cutover delta.
  4. Review and apply safe destination-era changes to Asana.
  5. Run the same blocking checks against Asana.

Proof to capture: Asana again owns intake with current work and no duplicate Jira action.

Rollback immediately when
  • Unexplained missing Asana tasks
  • Missing or exposed comments or files
  • Duplicate production action
  • Failed access or assignment check
  • A critical workflow has no safe Jira replacement
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 reconciliationCompare every in-scope Asana task to a Jira work item, archive, or exclusion.100% of scoped tasks are accounted for.Task ledger.
V-02BlockingParents and subtasksInspect representative trees, including work deeper than two levels.Approved parent and child links exist.Hierarchy report.
V-03BlockingSection and status mappingMove sample work through every approved state.Status matches the signed map.Transition log.
V-04BlockingAssignees and former staffTest matched, unmatched, and departed users.Assignments follow the sheet. Unmatched emails remain on the issue.User matrix.
V-05BlockingComments and filesOpen decision-heavy tasks and their attachments as ordinary users.Required history and files work without an Asana login.Context log.
V-06BlockingCustom valuesSample premium fields, formulas, and multi-selects.Each value is mapped, archived, or explicitly excluded.Field exception list.
V-07BlockingSingle writerCreate and update a test task after freeze.Only Jira acts. Asana stays still.Automation log.
V-08BlockingPermissionsTest admin, member, guest, and unauthorized accounts.Least privilege holds.Access matrix.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: One complete sprint or planning cycle, at least seven stable days, and owner sign-off on every blocking check.

  1. Archive Asana backups, maps, and verification evidence.
  2. Revoke migration tokens and unused Asana-Jira OAuth grants.
  3. Remove obsolete Asana rules, webhooks, and apps.
  4. Keep Asana read-only through the approved retention window.
  5. Cancel paid Asana plans only after billing, legal, and recovery review.
  6. Schedule the next Jira backup, access, and playbook review.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountAleksandr Knjazetski · Bondora Engineering and Data

Migrating 15 Years of Company History to Jira2023

Aleksandr Knjazetski describes Bondora's move of 15 years of Asana work into Jira. Engineering went first. Other functions needed outside Jira help. They used Getint to copy comments and attachments, flattened multi-level subtasks, made destination fields optional during load, and stored Asana created and completed dates as temporary fields. The job ran about nine months against a five-month estimate. Some project copies took more than ten hours. Teams later used little of the imported archive.

What they recommend
  • Pilot field types before the full load, because an Asana text field mapped to a Jira date field fails the row.
  • Start with open work if you are unsure the archive will be used, and keep Asana readable for a while.
Worth noticing
  • Team-managed Jira projects looked convenient and later had to be rebuilt as company-managed spaces.
  • Section-to-status mapping often needed a temporary custom field because Asana sections are not a workflow.

Trinidad Wiseman, an Atlassian partner, writes with Bondora staff about finishing the Jira rollout in autumn 2023. Engineering started alone. HR, marketing, risk, expansion, and finance needed a requirements template, a configured project, and a validation pass before tickets moved. Marketing merged two Asana social projects into one Jira project and later switched a software project to Work Management for the calendar view. The customer experience team used the move to clean fields and add Zendesk links. Aleksandr is quoted saying the hardest part was changing how people thought about work, not the file copy.

What they recommend
  • Document fields, issue types, workflows, and permissions per team before you import that team's Asana project.
  • Expect assignee and category cleanup after import, especially when several Asana boards become one Jira project.
Worth noticing
  • A one-to-one Asana-project-to-Jira-project map was the wrong shape for marketing.
  • Training and process rewrite took as much effort as the technical migration.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Atlassian: import data directly from Asana into JiraAccessed 2026-10-28
  2. Asana: import and export projectsAccessed 2026-10-28
  3. Atlassian: import data into JiraAccessed 2026-10-28