Project Management migration
Field-level mapping, validation, and rollback between KANNA and Asana. We move data and schema; workflows are rebuilt natively in Asana.
KANNA
Source
Asana
Destination
Compatibility
8 of 12
objects map 1:1 between KANNA and Asana.
Complexity
BStandard
Timeline
1-3 weeks
Overview
Moving from KANNA to Asana is a structural migration for construction and field-service teams that have outgrown KANNA's per-seat billing minimum or its limited cross-industry workflow capabilities. KANNA organizes work around Projects containing Tasks and Sub-projects, with custom fields bound to individual project templates rather than global to the workspace. Asana uses a workspace-and-team structure with Projects, Sections, and Tasks as the core hierarchy, with custom fields defined globally per project. We extract KANNA's Data Import/Export output, map Sub-projects to Asana Sections within the parent Project, flatten template-bound custom field definitions to flat custom properties on each Task, and attach photo reports directly to the corresponding Asana Task. KANNA's lack of a documented public API means migration tooling relies on the native export and manual field extraction rather than scripted API extraction. We do not migrate KANNA's approval flows or bulletin board configurations as code; we deliver a written inventory of these for the customer to rebuild in Asana's Rules engine.
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 KANNA 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.
KANNA
Project
Asana
Project
1:1KANNA Projects map directly to Asana Projects. Each KANNA Project carries a name, status, date range, and client or property association. We export KANNA Projects via the native Data Import/Export feature and import them into Asana as Projects, preserving the project name and date range. KANNA project status values map to Asana project-level custom fields or section headers depending on the customer's preference during scoping.
KANNA
Task
Asana
Task
1:1KANNA Tasks map to Asana Tasks within the parent Project. Task name, description, due date, assignee, and status migrate directly. KANNA's task-level status values (customizable per workspace) map to Asana's Task status model or a custom field if the KANNA taxonomy does not map cleanly to a binary complete/incomplete. The original assignee is resolved by email against Asana Users during import.
KANNA
Sub-project
Asana
Section
1:manyKANNA Sub-projects are used to break phased or multi-site work within a parent Project. Asana has no native Sub-project object; instead, we flatten Sub-projects into Sections within the parent Project. Tasks belonging to each Sub-project are placed inside the corresponding Section, preserving the original grouping and phase context. We flag any Sub-project with its own Sub-projects as a nested section hierarchy.
KANNA
Custom Input Fields (Project Templates)
Asana
Custom Fields
lossyKANNA custom fields are configured per project template via Settings > Customize Settings and are not globally defined. We extract both the field definitions and the values stored on each record. In Asana, we create global custom fields (text, number, date, single-select, multi-select) and attach them to the relevant projects. Template-bound fields with different schemas per project result in a custom field created per template variant; we document the template-to-field mapping to avoid duplicate custom field names in Asana.
KANNA
Photo Report / Photo
Asana
Attachment (on Task)
1:1KANNA's Photo Reports are a first-class export category. We extract each photo and its caption, then attach the file to the corresponding Task in Asana. Photo captions are stored in the task description or a custom field depending on caption length. File attachments over 100MB are not supported by the Asana API and are flagged for manual handling. We validate each photo attachment post-import to confirm the file is viewable in Asana.
KANNA
Document
Asana
Attachment (on Task or Project)
1:1KANNA Documents attached to Projects and Tasks migrate as Asana Attachments on the equivalent Project or Task. Document content itself is not extracted or transformed; the file is preserved and re-attached. We preserve the original file name and any KANNA-specific metadata in the attachment description field.
KANNA
Comment / Chat / Reporting Thread
Asana
Comments (on Task or Project)
1:1KANNA in-platform chat and reporting threads on Projects and Tasks are treated as comment threads in Asana. We extract the author name, timestamp, and text content. KANNA's Data Import/Export does not list comments as a named export category, so we extract them from the UI export where accessible and flag any gap explicitly before migration begins. Asana comments are fully API-accessible for post-migration validation.
KANNA
Client / Property
Asana
Project Description or Custom Field
lossyKANNA's Data Import/Export separately handles customer information and property information as distinct data types. Asana does not have native objects for Customers or Properties outside of a project context. We map these to a custom field on the Project (e.g., Client Name, Property Address) or include them in the project description depending on how the customer uses this data in KANNA.
KANNA
Gantt Chart Data
Asana
Timeline View (Start Date / Due Date / Dependencies)
1:1KANNA's Gantt Chart data is derived from task start dates, end dates, and dependencies. We export the underlying task date fields from KANNA and reconstruct the timeline in Asana's Timeline view using the Start Date and Due Date fields. KANNA dependency relationships (Finish-to-Start) map to Asana dependencies linked between Tasks.
KANNA
Pipeline Stages / Statuses
Asana
Custom Fields or Section Headers
lossyKANNA's configurable project and task statuses are captured from the workspace settings and mapped to Asana equivalents. If KANNA uses a simple Open/Closed model, we map to a two-option custom field. If KANNA uses a multi-stage pipeline model, we create a single-select custom field with the stage values and optionally use Asana's Section to visually group tasks by stage within a project.
KANNA
User / Assignee
Asana
User
1:1KANNA user accounts and task assignments are exported separately from the task records. We map each KANNA user to an Asana User by email address. Any assignee in KANNA with no corresponding Asana User account goes to a reconciliation queue for the customer's admin to provision before the migration runs, because task OwnerId cannot be set without a valid Asana User reference.
KANNA
Approval Flow
Asana
Rules (Business tier) or Written Inventory
1:1KANNA's approval flow feature has no direct Asana equivalent in the Starter or Free tier. Asana's Business tier supports approval workflows via Rules (record-triggered automations). We do not migrate KANNA approval flows as code. We document the approval chain (approver, approvee, approval criteria, notification) in a written inventory with recommended Asana Rule equivalents for the customer's admin to configure post-migration.
| KANNA | Asana | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Sub-project | Section1:many | Fully supported | |
| Custom Input Fields (Project Templates) | Custom Fieldslossy | Mapping required | |
| Photo Report / Photo | Attachment (on Task)1:1 | Fully supported | |
| Document | Attachment (on Task or Project)1:1 | Fully supported | |
| Comment / Chat / Reporting Thread | Comments (on Task or Project)1:1 | Fully supported | |
| Client / Property | Project Description or Custom Fieldlossy | Fully supported | |
| Gantt Chart Data | Timeline View (Start Date / Due Date / Dependencies)1:1 | Mapping required | |
| Pipeline Stages / Statuses | Custom Fields or Section Headerslossy | Mapping required | |
| User / Assignee | User1:1 | Fully supported | |
| Approval Flow | Rules (Business tier) or Written Inventory1: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.
KANNA gotchas
Minimum seat billing regardless of usage
Chat threads and reporting comments may not export cleanly
Custom input fields are template-bound, not global
Enterprise plan not available in Japan and Thailand
No documented public API for automated migration
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 export audit
We audit the source KANNA workspace to establish the migration surface: total Projects, Tasks, Sub-projects, custom field definitions per template, photo report count, and document volume. We confirm the active seat count and identify any inactive seats to avoid migrating unused user records. We extract KANNA's native Data Import/Export output and supplement it with manual UI exports for data types not covered by the named export categories, specifically comments and chat threads. The discovery output is a written scope document listing every data type to be migrated, held, or flagged.
Custom field schema design
We extract every KANNA custom field definition from each project template and compile the full catalog. Where the same field name appears across multiple templates with different value sets, we design a resolution strategy: either create separate Asana custom fields per template variant, or create a single field with the union of all possible values as a multi-select. We present the design to the customer's admin for sign-off before creating any fields in Asana.
User and assignee reconciliation
We extract every distinct KANNA user and assignee referenced on tasks and projects, and match them by email against the destination Asana workspace. Users without a corresponding Asana account go to a reconciliation queue for the customer's admin to provision before migration begins. Migration cannot proceed past this step because task OwnerId and assignee references require valid Asana User records.
Asana workspace and project structure setup
We create the Asana workspace and team structure to mirror the KANNA organization, mapping KANNA's workspace or team groupings to Asana Teams. We create Projects in Asana corresponding to KANNA Projects, configure custom fields per the schema design, and set up Sections corresponding to KANNA Sub-projects. We validate the empty structure (no tasks yet) before any data is inserted.
Data migration in dependency order
We migrate data in record-dependency order: Projects first (no external dependencies), then Tasks within each Project, with Sub-project hierarchy flattened into Sections. Attachments (photos and documents) are uploaded after their parent Tasks exist in Asana. Comments are inserted last after all Tasks and Projects are in place. Custom field values are set per record after the base record is created. Each phase emits a row-count reconciliation report before the next phase begins.
Validation and cutover
We run a reconciliation pass comparing migrated record counts against the source KANNA export counts, spot-checking 25-50 records for field-level accuracy. We validate that attachments are viewable, custom field values are populated, and assignee mappings are correct. We then perform cutover: freeze writes in KANNA, run a final delta migration for any records modified during the migration window, and declare Asana the system of record. We deliver the written inventory of KANNA approval flows and bulletin board configurations for the customer's admin to rebuild in Asana Rules.
Platform deep dives
KANNA
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 KANNA 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
KANNA: Not publicly documented.
Data volume sensitivity
KANNA 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 KANNA to Asana migration scoping. Not seeing yours? Book a call.
Walk through your KANNA 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 KANNA
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.