これ、以前見た覚えがあるけど記憶にない、、、
せっかく読んだ本や役立つアイデアもすぐに思い出せないと何の役にも立ちません。その度に自分の記憶力のなさに落ち込むと思います。私もそうです。
このブログでは、Todoistについてその活用方法を紹介してきました。
しかし、Todoistは非常に優秀なタスク管理ツールですが、裏を返すとタスク管理だけを行うツールということもできます。つまり、そのTODOを実行する上でのメモ書きやノート、思考の整理には適しているとは言えません。
そんな時に役立つのが「ノートアプリ」です。
有名なノートアプリ
- Evernote
- Notion
- Obsidian
- Roam Research
と様々なノートアプリが存在します。
結論として私はこの中からRoam Researchを使っています。なぜRoam Researchを選んだのか、その理由については別記事にて詳しく書きますが、端的に言えば以下の3つです。
Roam Research選択のポイント
- デイリーノートを起点としてデータベースを構築できる
- 無限に知識のリンクが広がる構造
- 煩わしいディレクトリ構造が存在しないこと
Roam Researchは、
- 日記を書くようにノートを取ることができて
- その取ったノートが知識の連鎖をうみ
- アイデアを創出しやすくする
という効果が期待できます。
さらに、Evernoteのようなディレクトリー構造を考えてノートを取らなくても、自由にノートを取ることができるので、余計な部分に神経を使う必要がありません。
つまり、学習やアイデア創出に特化したアプリなんです。
なので、Roam Researchであれば、Todoistのタスクを実行する際にノートに書いた内容を残すだけでなく、作業内容の中で重要なキーワードにリンクを貼っておくことによって、再度同じ作業をした時にそのリンクから過去の作業を思い出すこともできます。
ちなみに私は使用1ヶ月だけですが、これだけの情報をリンクさせて日々ノートを書き続けています。
もし、これが365日続けたとしたら、毎日の学習や作業におけるノートの間でたくさんの知識が連動するのは想像に難しくありません。今からその状態が楽しみです。
ということで、日々の積み重ねでライバルと大きな差をつけたい、自分の成長に確実につなげたい!という方は、ぜひTodoistとRoam Researchを連携させてあなたのデータベースを構築していってください。
Roam ResearchとTodoistを連動させて全ての情報を記録する
まず最初にRoam ResearchとTodoistを連動させるとどうなるかをご説明していきます。
Roam Researchのデイリーノートで日々タスクをTodoistに投げ込む
まず最初にRoam Researchを使う方は、Roam Researchをメインノートとして使っていることが想定されますので、Roam Researchでタスクを管理したくなりますよね。私も実際にそうしていました。
しかし、今ではRoam Researchでタスクにしたい項目ができたら、Roam42で作成したコマンドを打ち込めば、自動的にあなたのTodoistにデータが送り込まれます。
以下のコマンド(Todoist – Create new Task)を入力するとRoam Researchの表記もTODOに変わります。コマンドといっても、登録しておけばjjと入力するだけで呼び出すことができます。
で、問題なくRoam ResearchからTodoistへタスク送受信が完了すると、以下のように、Todoist側ではInboxにタスクが追加されます。
Todoistでスケジュールを設定する
Todoistに入ったタスクを開いて以下の項目を入力していきます。
Todoistは柔軟なタスク管理が簡単にできる
- 予定
- サブタスク
- プロジェクト
- タグ
- 優先度
- リマインダーなど
一つ一つのタスクに関して変更するというよりも、1日の振り返りの時間中に、「Inboxに入れたタスクの予定を確定させる」というタスクを設けてまとめて処理したほうが効率的かと思います。
ここまでがRoam ResearchからTodoistへのタスク登録とTodoist側での受付処理です。そして、次からは日々のタスクマネジメントの回し方です。
Roam Researchで今日のタスクを読み込む
私は朝仕事を始める前に、Roam ResearchのデイリータスクにTodoistの今日終了日の仕事を全部呼び出します。これもRoam42のコマンドを使います。
これを使うとTodoistの今日までのタスクを全部Roam Researchに読み込みます。なので、読み込んだあとは、時間割と優先順位を決めてタスクをこなしていくだけです。
Roam Researchでタスク完了させる
タスクを完了させたら、Roam Researchのタスクを完了させるのですが、その際の手順は2ステップです。
- Todoist – tc(Task Complete)コマンドを打ち込む
- 打ち込んだら即「⌘+return」でタスクと”DONE”に変更する
これだけです。数秒でTodoistのタスクも完了になります。
ここまでご覧になって難しく感じたでしょうか?私は非常にシンプルで簡単だと思いました。というのも、Todoistを使わずにRoam Researchだけでタスク管理しようとして、とても苦労したというか、無駄な時間を過ごしたからです。
繰り返しのタスクなどある場合には、圧倒的にTodoistを使った方が管理が簡単です。その理由を解説していきます。
なぜRoam Researchだけでタスク管理しないのか
ここまで一連のTodoistとRoam Researchのタスク管理の流れをご覧いただいたので、「なぜRoam Research単体でタスク管理をしないのか」、についてご説明します。
私も実際にはRoam Researchだけでタスク管理をチャレンジしてみたんですが、断念しました。その大きな理由は以下の2つです。
Roam Researchのタスク管理の課題
- 繰り返しタスクの管理ができない
- タスクの期限変更が面倒
詳しく説明します。
繰り返しタスクの管理がやりにくい
まず最初にRoam Researchでのタスク管理の大きなハードルは「繰り返しタスク」が管理できない、管理しにくい、ということです。
毎日、毎週、毎月と繰り返し行うタスクをTodoistに登録していたので、同じようにRoam Researchで管理しようとしたんですが、そのためには別にそれぞれのタスク管理ノートを用意する必要があります。
Roam Researchのタスク管理用ページ
- Daily Task
- Weekly Task
- Monthly Task
それぞれにタスクを書いておいて、その内容をコピるしか、繰り返しのタスクを管理することができませんでした。その後Roam42のSmartBlockという機能を使って、それぞれのタスクを呼び出す方法を覚えたのですが、「曜日ごとのWeeklyタスク」のような器用な真似をするには細かくファイルを分ける必要があったりします。
そうするとなんか「プログラマーか?」と錯覚するぐらい細かいことをやり続けることになります。
- 情報を探す
- 設定内容をRoam Researchに落とし込む
- 細かい設定変更を施す、、、
と本来ノートを取って学びを実践に生かさなければならないのに、Roam Researchのエンジニアみたいなことをやっているなー、とある日気づいて、それ以上細かい設定をRoam Researchで行うのをやめました。
タスクの期限変更が面倒
さらにRoam Researchではタスクごとに日付を追記することによって、その日のデイリーノートでタスクを管理することができます。
こんな感じでタスクの前後にDateを入れるのが一般的です。しかし、この方法だと、タスク量が多くなると、非常に管理が面倒になります。日付がずれた時点で全部のタスクのDateを再設定する必要があるわけです。
一方で、Todoistであれば、タスクの日程を変更する際には、以下の通りポップアップ内で明日、今週末、来週末、次週へスキップ、その他特定の日程、などクリックだけで日程変更ができます。
Roam Research内で日程変更を繰り返してると、Roam Researchを使っている感は出ますが、実際には無駄な作業や時間をかけているわけで、そのようなタスク管理業務はプロ(Todoist)に任せてしまえばいいわけです。
餅は餅屋:タスク管理はTodoist、ノートはRoam Researchに任せて連動させる
ここまで読んでいただければご理解いただけると思いますが、シンプルに考えれば、「餅は餅屋に任せる」のが一番効率が良い、ですよね。。。
特にこのブログではTodoistを使ってタスク管理することを紹介していますし、私自身も長くTodoistを使ってきて、現在はマスタークラスになっています。
さらに、以下のようなTodoistを使いこなすためのノウハウについても公開しています。
これだけTodoistを使ってきて良さもわかっているだけに、”捨てる”のはいろんな面でストップがかかりました、、、😅
- Todoist:創業14年目で有料利用者500万人を突破したリーダー的タスク管理アプリ
Todoistは無料ユーザを含めれば1000万人を突破している[/caption] - Roam Research:フォロワー数9万人以上の熱狂的なファンに支えられて日々進化している世界で注目のノートアプリ
特にRoam Researchは米国でも注目されており、このノートアプリの開発が評価されて2億ドル(200億円)を調達したニュースも出ています。
But it’s in helping old-world industries and processes—like media and note-taking—where some Rising Stars have earned the most buzz. Roam Research recently reportedly raised funding at a $200 million valuation for its tools that help developers, writers and researchers link together connected notes.
The Cloud 100 Rising Stars 2020: Cloud Computing’s Next Wave, From Resilia To Roam Research
それぞれ単体で見たら個別に使った方がいいわけですが、、、それぞれの長所を生かしながら連携させることができたらさらに良いわけです。
では具体的にRoam ResearchとTodoistを連携させる方法について解説していきます。
Roam ResearchとTodoistをAPI連携させる3ステップ
では具体的な手順を説明していきます。大まかに以下の3ステップになります。
それぞれについて解説していきます。
Roam42はRoam Researchの利用者の有志が作る拡張機能で、今では”RoamJS”というサイトにソースが移行しています。
蛇足ですけど、このRoamJSはRoam Researchのパワーユーザーになるための様々な拡張機能を無料で提供し続けています。もし興味があれば覗いてみてください。
>>RoamJS<<
さて、話を戻しますが、Roam42のインストール方法は非常に簡単です。
Roam42のインストール手順
これだけです。3を手順を解説すると、
- コードをそのまま貼り付ける
※このイメージ通りになることを確認すること - 赤いボタンが表示されるので押す
※赤のjavascriptを有効化して良いか?のボタンを押す - ボタンを押すと黄色くなる
※Javascriptを有効化すると黄色に変化する
TodoistからAPIコードを取ってくる
次にTodoistからRoam Researchと連携させるためのAPIコードを取ってきます。
以下のリンクからTodoistの連携機能ページに飛びます。
このページの一番下に「APIトークン」という項目がありますから、そのコードをコピーしておきましょう。
ここまでは難しいことはなかったかと思います。
42SmartBlockにJavascriptを登録する
ただ、ここからがちょっと面倒になってきますが、できる限りわかりやすく手順を追って説明していきます。基本的にはコピペでできるはずなので、あまりハードルを感じないようにしてくださいね、、、😅
ちなみに参照元は以下のページです。GitHubというエンジニアのコミュニティです。実際このページの起案者は@roamhackerさんで、Roam42の開発者です。そんなレベル高い情報に気軽にアクセスできるのがすごいですよね、、、
このページを見るとたくさんの連携方法が紹介されています。「mlava」というアカウントがやたらとJavaScriptを次々と書いてくれています、、、
ただ、全部やろうとするとパンクするので、使うのは以下の3つに限定しています。
- Today
- Create New Task
- TC(Task Complete)
というのも、Roam Researchのタスク管理で重要なのは、
- 今日何する予定なのか(Todoistからタスクを読み込む)
- Roam ResearchのタスクをTodoistに投げ込む
- Roam Research内で完了させてTodoistへ反映させる
これだけだと思うからです。細かくやればプロジェクトごとのタスクを呼び出すとかありますが、そこまでやるとまた管理することが目的になり、タスクを完了させることから離れてしまうと思うんです。
なので、上記3つに絞って紹介します。
Todoist – Today: 今日やるべきことをTodoistから呼び出す
まず”#42SmartBlock Todoist – Today”と一行かいて改行し、かつtabキーでインデントします。すると、こうなります。(文字はテスト用なのでご了承ください)
そのあと、”/code”と打ち込み”Code Block”を選択します。
この時、右の”Javascript”の部分が他のコードになっている場合は、Javascriptを選択してください。
クリックすると選択できるようになります。
ここからがメインディッシュです!笑
以下のコードをJavascriptのボックスにコピペしてください。その際に、「あなたのTodoistAPIトークン」をあなたのコードに張り替えてください。この時の注意点は、前後の半角余白を消さないようにしてください。消すと正常に動作しなくなります。
ここからがメインディッシュです!笑
var myToken = ' あなたのTodoistAPIトークン ';
var url = "https://api.todoist.com/rest/v1/tasks?filter=Today";
var bearer = 'Bearer ' + myToken;
var myTasks = $.ajax({url:url, type:"GET", async:false, headers: { Authorization: bearer },
}).responseText;
for(task of JSON.parse(myTasks))
await roam42.smartBlocks.activeWorkflow.outputAdditionalBlock(
"{{[[TODO]]}} [" + task.content + "](" + task.url + ")"
);
return '';
あと、もうちょっとです。
以下のコードを先ほど入れたコードの前後に追加します。
まず、コードの冒頭に以下を追加します。
<%JAVASCRIPTASYNC:
次に、以下をコードの末尾に追加します。
%>
こんな感じに追加してください。
すると、冒頭の画像のようなイメージになります。
これで完成形です。
Create New Task: Roam ResearchからTodoistへタスクを投げ込む
後の流れは基本的に一緒です。簡単な流れは以下の通りです。
- 42SmartBlock 〜を記入
- /codeで”Code Block”を呼び出し、Javascriptにする
- 必要なコードをブロックに入れる
- 前後のコードも追加する
なので、ここからはメインとなるブロック要素だけこちらで共有していきますね。
var text = roam42.smartBlocks.activeWorkflow.startingBlockContents;
var res1 = text.match(/#42Todoist/);
if (res1 == null) {
var raw = JSON.stringify({"content":""+text+""});
var myToken = ' あなたのTodoistAPIトークン ';
var url = "https://api.todoist.com/rest/v1/tasks";
var bearer = 'Bearer ' + myToken;
var myTasks = $.ajax({url:url, type:"POST", async:false, headers: { "Content-Type": "application/json", Authorization: bearer }, data:raw, }).responseText;
var task = JSON.parse(myTasks);
await roam42.smartBlocks.activeWorkflow.outputAdditionalBlock( "{{[[TODO]]}} [" + task.content + "](" + task.url + ") #42Todoist" );
return '';
} else {
alert("This task is already a Todoist task");
return '';
}
正常に入力するとこんな感じになります。
”あなたのTodoistAPIトークン”の部分だけ差し替えてくださいね。
この#42Todoistが見て連携判定をしているようなので。
TC(Task Complete): Roam Researchでタスクを完了させてTodoistへ反映させる
そして、最後はRoam Researchでタスク完了させてTodoistに完了データを送り込むプログラムです。
var text = roam42.smartBlocks.activeWorkflow.startingBlockContents;
var res = text.match(/\d{10}/);
var myToken = ' あなたのTodoistAPIトークン ';
var url = "https://api.todoist.com/rest/v1/tasks/"+res+"/close";
var bearer = 'Bearer ' + myToken;
var myTasks = $.ajax({url:url, type:"POST", async:false, headers: { Authorization: bearer }, }).responseText; for(task of JSON.parse(myTasks)) await roam42.smartBlocks.activeWorkflow.outputAdditionalBlock( "{{[[TODO]]}} [" + task.content + "](" + task.url + ")" );
return '';
使い方の注意点としては、”jjtc”でコードを入力されるのは、Todoistへの完了データ送信のみで、Roam Researchのタスクは別途完了にする必要があります。なので、手順としては、
- “jjtc”でTodoistへ完了情報を送る
- ”⌘+return”でRoam Research内のタスクも[[DONE]]にする
となります。
番外編:TodoistをRoam Researchに埋め込む方法
さらに、ここでは番外編として、TodoistをRoam Researchに埋め込む方法を紹介します。
技術的にはiframeで埋め込む方法です。使うコードは以下です。
:hiccup
[:iframe
{:width "650px", :height "450px", :src
"ここにTodoistのウェブURLを入れる"} " "]
以下は参考情報です。
Roam ResearchにPDFなどを埋め込む方法
TodoistをRoam Researchに埋め込む方法
この方法が一番早くTodoistをRoam Researchで使う方法ですが、あくまで埋め込まれているのは、TodoistのWebページなのでタスクを完了すると、Roam Researchに情報が残らないのが唯一の欠点です。その点を了承できるならこちらでもいいと思います。
まとめ:Roam Researchは使えば使うほど味が出る
Roam Researchを使い始めて1ヶ月程度ですが、かなり便利に使わせてもらってます。これまでもEvernoteやObsidianなどのノートアプリは使ってきました。特にObsidianはRoam Researchとほぼ同じ機能なのでどちらを使うか迷いました。
なぜRoam Researchを使うのかは冒頭にも述べましたが、一番の決め手はディレクトリー構造に余計な注意を払わなくて良い点です。つまり、
ということができます。
ぜひこの記事を参考にしていただき、Roam Researchを使いこなしてくださいませ。
ではでは!
追記:TodoistのAPI連携は有料化(上記のような煩雑な処理なしに簡単に導入可能)
最近以下の質問があり、TodoistのAPI連携が有料化されたことを知りました、、、
「タスク管理(Todoist)とノートアプリ(Roam Research)をAPI連携させる3ステップ」(https://webmakesprofit.com/integration-roam-research-and-todoist-by-api/)のページは大変興味深く読ませていただきました。
丁寧な解説、ありがとうございます。
私の環境で早速試行したところ、javascriptがワークしなかったのですが、そちらの環境では現在でも正常に動作していらっしゃいますでしょうか?
仕様変更に伴い、Roamでは引っ張ってきたjavascriptがワークしなくなくることが間々あるため、ご教示いただければと思いました。
- 検索欄で「CMD+P」(Mac)または「Ctrl+P」(Win)
- 追加で出てくる検索窓に”store”と入力すると、”Open SmartBlocks Store”が出てきます
- 選択するといろんなAPIが表示され、その中に”UQCRR”がありますので、2.5ドルで購入することができるようになっています。
詳しい内容は以下のnoteを参照ください。
コメント