Migrate from Asana
Five columns bind cleanly. Status is not one of them.
Spodus recognises an Asana project export and maps the task name, assignee, dates and project. Sections, notes and tags are left visible rather than guessed at, and there is no status column to read.
What this move actually is.
Four facts that decide most of the work, before any column is mapped.
- The file
- One CSV per project. Export project by project rather than in bulk, because a task belonging to several projects exports its project list into a single cell and lands here as one oddly named project.
- The preset
- Spodus ships an Asana preset built from real Asana exports published in public repositories. It binds Name, Assignee, Due Date, Start Date and Projects, and deliberately leaves the rest alone.
- The target
- Tasks. The Projects column lands in the task's Project field, which points at Client projects, so turn that object on in Settings if your workspace does not already have it.
- The direction
- One way, once. There is no sync, so choose a cut-over date, finish what is in flight, and export on the far side of it.
Column by column.
What each Asana column becomes, and what the importer deliberately leaves alone.
| Asana column | Lands in | Notes |
|---|---|---|
| Project export, into Tasks | ||
| Name | Title | The primary field, and what duplicates are checked on |
| Assignee | Assignee | Matched against your Spodus roster; a name nobody here holds stays as text and is counted |
| Due Date | Due date | |
| Start Date | Start date | |
| Projects | Project | A link, resolved by name. One value per row if you export per project |
| Section / Column | Not a status. It is whatever the project's author typed, so it is left visible rather than guessed at | |
| Notes | The task description. Spodus tasks have no description field | |
| Assignee Email | Tasks have no email field. The roster match runs on the display name instead | |
| Task ID, Parent Task, Tags | Nothing here holds them, so they stay under Ignored columns | |
Nothing in an Asana export maps to Status, and that is the gap most likely to catch you out. Completed At is a timestamp, not a state, and the preset does not read it. If the done and not-done distinction matters, add a Status column to the sheet before you upload, with values that match your Spodus options, and map it on the Map step. Asana also appends the project's custom fields after the fixed block, so a real file is this list plus columns no preset can name; those stay under Ignored columns where you can map them once the matching Spodus field exists.
What does not come across.
A spreadsheet holds text. Everything below is either not in the export or has no field here to land in.
Descriptions and comments
Notes is the task description and there is no description field on a Spodus task, so it has nowhere to land. Comments and the task's activity story are not part of a CSV export at all.
Sections and boards
A section is whatever the author typed, so it is not translated into a status. Spodus groups tasks by a real select field instead, which means deciding what your sections meant before you import rather than after.
Subtasks
Parent Task exports as an id and nothing in the import fills a parent relationship, so every row arrives as its own task.
Attachments
Files on a task stay in Asana. A CSV holds text, so anything you need here is downloaded and uploaded again by hand.
Portfolios, goals and rules
None of these is in a project export. Spodus has its own Goals and its own automations, and nothing carries across into either.
Dependencies and custom field definitions
Dependencies have no counterpart, and a custom field is a column you can map only once you have created the matching field in Spodus first.
How to do it.
In this order. Steps two and three are the ones people skip and then repeat.
Export project by project
A task in two projects exports its projects into one cell, so a bulk export produces rows whose project is literally named after two projects at once. Per-project exports give one clean value per row and cost a few extra minutes.
Decide what your sections meant
This is the real work. If your sections were a workflow, add a Status column to the sheet and fill it with values that match the Spodus options. If they were categories, they are a select field you create first. If they were neither, drop them.
Turn on Client projects
The Project field on a task points at Client projects. Turn the object on in Settings if it is off. Creating the project records first is optional, since links resolve by name whenever the record arrives.
Upload and check the mapping
The Map step should announce an Asana export and bind five columns. Look at what sits under Ignored columns: Notes, Section, Tags and your custom fields will be there, and that list is exactly what you are choosing not to bring.
Read the preview, then import
It counts duplicates against your existing tasks, cells it could not read, and links pointing at a project that does not exist yet. Skip duplicates is on by default and automations are off by default.
Rebuild the views
Spodus gives tasks table, board, calendar and timeline views. Nothing about an Asana view or rule imports, so set up the two or three you will actually use and stop there.
How long it realistically takes.
Measured in the phases the work actually falls into, including the ones that are not importing.
- Exporting a project
- 2 minutes. One file per project.
- Deciding what sections become
- 30 to 90 minutes. Once for the whole workspace, not per project.
- Adding a Status column in the sheet
- 10 minutes per file. Only if the done distinction matters.
- Each project, upload to imported
- 10 minutes. The preset binds five columns for you.
- Rebuilding views
- 1 to 2 hours. Once, not per project.
- Notes, comments, attachments
- Not included. None of them has a destination here.
Ten projects is a morning once you have decided what sections mean. A hundred projects is two or three days, and the honest advice is not to move a hundred: move the twenty that are live, archive the rest in Asana, and leave the archive there as a read-only record.
True of any import into Spodus.
The same four rules apply whichever tool you are leaving.
- It is a file, not a connection
- Spodus reads .csv and .xlsx. Not .xls, which no spreadsheet parser here can open, and not JSON. There is no public API and nothing keeps two systems in step, so what you get is a copy of your data as it stood the moment you exported it.
- One file per object
- You import into an object, not into the workspace. Open Contacts and import contacts; open Deals and import deals. A vendor that keeps people, companies and deals in three exports needs three passes.
- Links are stored as names
- A deal points at an account by name, and the link resolves the moment a record with that name exists. So importing accounts before deals is a convenience rather than a rule, and a link that lands unresolved starts working when the missing record arrives.
- Nothing is written until you press Import
- The preview counts duplicates against the records already in your workspace, counts the cells it could not read, and counts the rows pointing at something that does not exist yet. All three are on screen before the write.
Do not migrate off Asana if:
- The task description is where the brief lives. Spodus tasks have no description field, so a way of working built on rich task bodies has to change shape here, not just change tool.
- You run on portfolios, dependencies and workload. Spodus has no resource or capacity planning of any kind and nothing on a timeline blocks anything else.
- Comments are the record. Task conversations do not export into another product, and a project whose value is its discussion arrives stripped of it.
- You want the move handled for you. There is no migration service here and no engineer who will do the mapping. It is an export, a spreadsheet and a wizard.
There is no migration service and no engineer here who will do this for you. It is your export, your mapping and your afternoon.
Questions, answered.
Why does the importer ignore my sections?
How do tasks get a status then?
What happens to a task in several projects?
Do task descriptions come across?
Coming from something else?
The same page, for the other tools people leave behind.
