Ditto is a tool for transferring Asana projects between workspaces. It is a complete rewrite of an earlier project with the unwieldy title 'Organise Asana Projects' but colloquially known as 'Kothar' by the Asana community.
My code took that script and added a web-based UI to choose projects, and later made the changes necessary to support new features launched by Asana such as Teams and Custom Fields.
Ditto, or 'Kothar 2', fixes a number of longstanding issues with the original implementation, allowing faster and more accurate project copies to be created. It's also much more pleasant to work with from the development side, which means I am more inclined to spend time updating and improving it.
The original tool became extremely popular, in no small part due to Asana support referring people looking to transfer projects between workspaces. This has resulted in great feedback from users, which has motivated me to keep the tool up to date and fix problems. This new version provides all the original features, plus several improvements. I hope all the existing users will find the switch painless and possibly even enjoyable :)
Previously the tool was supported entirely by donations. People's generosity in this regard was completely unexpected, but very welcome. Over the last six years the costs of running the service have just about broken even with donations.
With Ditto I've decided to try something different, and have added the option to upgrade to a Pro account. The basic features of the tool (everything in the original tool, plus fixes) will remain free, but more complex features require the upgrade.
If you are unsatisfied with Ditto Pro for any reason at any time after purchase, you may request a refund in full for your current subscription period by emailing [email protected] with your Asana account number and invoice reference.
After refund your subscription to Ditto Pro will be cancelled and your account will revert to a standard account.
Ditto works by taking a 'snapshot' of the projects you wish to copy. This is accomplished by reading all the tasks, then downloading attachments, looking up tags and custom fields which have been used, users who have been assigned tasks, etc.
Once this snapshot is complete, it is then compared to the destination workspace. In particular, the common features such as tags and custom fields need to be lined up so that there are no duplicates or missing data. Once this step is complete the user is presented with a short report of the status of the copy, and whether there are any problems detected such as naming collisions or users present in one workspace and not the other.
Finally, when the user confirms they want to proceed, the new projects are created and tasks are copied into them. This process takes into account multi-homed tasks and is able to correctly place a single copy of the task in two or more projects, or as a subtask.
The copy operation is extremely efficient, and creates tasks in parallel as much as possible. Within a project, section or parent task, new tasks are first created in batches before being moved into the correct order, which is much quicker than creating them one by one in the correct order from the start.
Product advice and feature planning discussions with Harpal Singh have helped enormously, and his time and enthusiasm for the project have motivated me to reach a viable release version of Ditto.
Invaluable testing and advice were provided by Larry Berger at Trilogi Software Solutions.
Asana is a trademark and service mark of Asana, Inc., registered in the U.S. and in other countries.
I'm Mike Houston, a software developer based in the UK. Kothar Labs is the name I trade under for freelance work and personal projects, such as Ditto.
You can also follow me on Twitter if that's your thing.
Log in to comment
Mike, is there something I’m doing wrong here? I keep getting the same error about start date?
Does this solution assist with migrating content from Wrike to Asana?
Hi Alwira (sorry for the late reply, hopefully this will be useful if someone is wondering the same in future)
The best way to achieve this at the moment is to create a new project and multi-home just the tasks you would like to copy (i.e. add them to the new project in addition to the project they are already a part of).
Then you will be able to copy just the tasks you have selected.
I want to share tasks between 2 workspace not the complete project. Is it possible?