DACエンジニアブログ:アドテクゑびす界

DACのエンジニアやマーケター、アナリストが執筆するアドテクの技術系ブログです。

【小ネタ】タスク管理ツール移行: Trello から Asana

 

プロジェクトチームのタスク管理ツールを Trello から Asana に変えることになり、 タスクの移行が意外と簡単にできた、というお話です。

Trello と Asana

もともと使っていたのは Trello(トレロ)です。 プロジェクト > タスクグループ > タスク を、ボード > リスト > カード として管理します。 使いづらさを感じたのは、カードの階層管理ができない点でした。(カード > チェックリストはありますが)trello

一方 Asana(アサナ)は、ワークスペース(組織) > チーム > プロジェクト > タスク という管理です。 「セクション」でタスクグループが設定できたり、タスク内でサブタスクの追加できたり、と柔軟性があります。asana

さて移行作業

Trello は2ヵ月ほど使っており、60以上のカードがありました。 Asana に手動で登録し直すのは面倒、、と思ったところ、Asana API が!。 Asana のプロジェクトに、API で Trello のタスクを登録すれば良いですね。

Asana へのタスク登録は、tasks API を使います。今回は、タスクのタイトル name と説明 notes のみ移行対象とします。

[shell]# Request curl -u <api_key>: https://app.asana.com/api/1.0/tasks \ -d "assignee=1235" \ -d "followers[0]=5678" \ -d "name=Hello, world%21" \ -d "notes=How are you today%3F" \ -d "projects=14641" \ -d "workspace=14916" [/shell]

 

Trello データのエクスポート

まず、Trello のデータをJSONでエクスポートします。(Trello: Menu > More > Print and Export > Export JSON) JSONから、タスクのタイトル cards.name と説明 cards.desc を取出して、ファイル出力します。 ブラウザ(Chrome)のコンソールで、このようなことをしました。

[js] var trello = (エクスポートされたJSON);

// タスクのタイトルと説明を取出す var tasks = function() { var arr = "";    for(i=0;i<trello.cards.length;i++){     arr += "name=" + trello.cards[i].name + ", notes=" + trello.cards[i].desc;     arr += "\r\n"; } return arr; }

// ファイルとしてダウンロード var downloadAsFile = function(fileName, content) { var a = document.createElement('a'); a.download = fileName; a.href = 'data:application/octet-stream,'+content; a.click(); };

// 実行! downloadAsFile("tasks.txt", tasks()) [/js]

以下のような内容のファイルがダウンロードされます。

name=Task 1-1, notes=this is the very first task
name=Task 1-2, notes=
name=Task 2-1, notes= 

 

Asana タスク登録

Asana のAPIキーを取得します。(Asana: My Profile Settings > APPS > API Key) workspaces APIprojects API でワークスペースID、プロジェクトIDを取得します。

[shell]

workspace id

curl -u XXXXX: https://app.asana.com/api/1.0/workspaces <pre>{"data":[{"id":12345,"name":"dac.co.jp"},{"id":67890,"name":"Personal Projects"}]}

project id

curl -u XXXXX: https://app.asana.com/api/1.0/workspaces/12345/projects {"data":[{"id":11111,"name":"sample"},{"id":22222,"name":"sample2"}]}  [/shell]

あとは、先ほどのファイルの中身を Asana API 用に整形して、curl で実行します。

[shell] curl -u XXXXX: https://app.asana.com/api/1.0/tasks \ -d "name=Task 1-1" \ -d "notes=this is the very first task" \ -d "projects=11111" \ -d "workspace=12345" [/shell]




移行後の Asana プロジェクトは、最初のキャプチャの通りです。

残念だったのは、Trello のコメントが移行できなかった(エクスポートされたデータに入っていなかった)点です。 Trello と Asana のユーザやステータスも、マッピングすれば合わせて移行できそうでしたが、、今回は見送りました。