Depending on exactly what you want to pull over, the built-in importer might not do what you need.
At the time of our migration, it was lacking support for some data we wanted to bring over, and there were some bugs preventing us from completing imports with it at all.
- PHP Asana CLI
- PHP ClickUp CLI
- More scripts to help resolve various import-related challenges (with CSV or other imports) - utilities
- Run a script with no argumetns to get a quick explanation and usage guide (eg.
php csv_combine.php
)
- Run a script with no argumetns to get a quick explanation and usage guide (eg.
Unfortunately, at least on the free plan, you'll have to go project by project with the Asana export.
We highly recommend following the full process with a single project into a testing space in ClickUp, and verifying everything worked as you like before moving ahead with your full import plan.
For each Asana project you want to move over, do the following:
- Export the Asana project to CSV
- Clean up the CSV to match ClickUp's format. See the below sections for options.
- Import your cleaned-up CSV to ClickUp
- Note: If you used our script, make sure you select PIPE(|) as the delimiter for Subtasks and Tags.
- Not all data will be migrated (for example, completed date and dependencies are ignored/lost)
- Todos will be imported with status configured at top of script based on completed date
- Projects & sections will map to lists in ClickUp, using ":" as a separator
- Items in multiple lists are not supported by the CSV importer, so they will pull into lists with titles like "Sample1:Section|Sample2:Section". You can then manually organize those items in ClickUp after import.
- Also, to make this organization easier, completed items will only go in the first list they belong to.
- Run
php cleanup.php path/to/Asana-Export.csv
replacing the path with the actual filepath of your export - The script will output a new CSV file in the same directory as your Asana file with "ClickUp-Ready.csv" appended to the filename
These steps could be done completely manually, or with help from sheet formulas, macros, scripts, etc.
Refer to the Asana and ClickUp sample CSVs in the data-samples folder to help clarify these steps.
-
Remove these columns (except for any you would like to import as custom fields):
- Task ID
- Last Modified
- Assignee
- Blocked By (Dependencies)
- Blocking (Dependencies)
-
Rename the following columns:
- Created At -> Date Created
- Completed At -> Status
- Name -> Task Name
- Assignee Email -> Task assignee(s)
- Notes -> Description content
- Projects -> List
-
Add a new column called Subtasks
-
Choose what you'd like to do with Section/Column. For example you could:
- Add it to project/list names (as our script does)
- Add it as a status (in which case make sure you refer to step 6 below as you decide how to map everything)
- Leave it as-is and map to a custom field during import
-
For each task with a "Parent task" value
- Find the parent task in the CSV
- Add the Task Name to Subtasks in the parent task's row - separate multiple subtasks with a comma or a pipe - "|"
- Remove the subtask row (the one with the "Parent task" value)
-
Update the Status column to match ClickUp's statuses. For example, you might:
- Change each date value (indicating completion) to "Closed"
- Change each blank value to "Open"
-
Remove these columns once they are no longer needed for reference.
- Section/Column
- Parent Task
-
The following columns may remain unchanged
- Start Date
- Due Date
- Tags (unless you need to change the delimiter to match other data)
-
Remove any rows you do not want to import.
- For example, Asana creates a new task every time a repeating task is completed. You might only want to import one version of each task.
- Perhaps you prefer not to import any completed tasks at all
-
Decide how to handle items in multiple projects/lists
- At this time, Asana exports these as comma separated values in the Projects column
- But, ClickUp's CSV importer does not support multiple lists per task
- You could leave the values as-is, and they will import to lists like "Project1, Project2" which you can then process manually in ClickUp.
- Or, perhaps you'll prefer to pre-process and remove extra projects or bring them in some other way (description, custom field, etc.)
- Use the manual steps and PHP script as a reference
- Submit your script here as a PR if you want to share with others!
Found a bug or a mistake? Have a suggestion?
Want to add your own script or other improvements?
Developer sustenance funding is welcome, but not expected