Do it now Workflow : hkob の雑記録 (133)

はじめに

hkob の雑記録の第133回目は、2分以内に完了するタスクを今実行してしまう Do it now Workflow を解説します。

これまでの Do it now Workflow

Do it now Workflow は以下のようになっています。後段の部分はこれまでと同様に Prefab に置き換えました。「do タイトル」とすると現在のスプリントにタスクを一つ追加し、Next Step チェックボックスを True に設定します。一つ一つの設定を詳しくみていきます。

改修前の Do it now Workflow

最初の do はこれまでと同様にキーワードなので特殊なことはしていません。

Keyword trigger の設定

Run Script は以下のようになっています。昨日の Create Task Workflow と似ていますが、現在のスプリントを取得している処理が先にあります。ここで取得したスプリントページの ID をタスクに設定しています。また、Next Step チェックボックスに true を設定しています。

Run Script action の設定

Workflow の改修

昨日までと同様に簡単化してみます。Replace オブジェクトを削除するために、URL scheme の変更のみ修正しています。今回の修正はこれだけです。

require "notion_ruby_mapping"
include NotionRubyMapping
NotionRubyMapping.configure { |c| c.token = ENV["NOTION_API_KEY"] }

text = ARGV[0]

sprint_db = Database.find ENV["SPRINT_DB_ID"]
ssp = sprint_db.properties["Sprint status"]
sprint = sprint_db.query_database(ssp.filter_equals "Current").first

db = Database.find ENV["TASK_DB_ID"]
page = db.create_child_page do |p, pp|
  pp["Sprint"].relation = sprint.id
  pp["Next Step"].checkbox = true
  pp["Task name"] << text
  pp["Assignee"].people = ENV["USER_ID"]
end
print page.url.gsub("^https://", "notion://")

最終的にワークフローは Replace が外れただけで、大きな変更はありません。

改修された Do it now Workflow

ちなみに、こうやって作成されたタスクはデータベースオートメーションにより、さらに以下の自動化が実行されます。

Set start time データベースオートメーション

Start date の数式は以下のようになっています。

lets(start_date, prop("トリガーページ").prop("Start date"),
    end_date, start_date.empty() ? .dateAdd(1, "hours") : start_date.dateEnd(),
    prop("トリガーされた時間").dateRange(end_date))

これによって、ステータスが In Progress になり、Start date がトリガーされた時間から「終了時間またはトリガーされた時間から1時間後のどちらか」までの時間に設定されます。

おわりに

Do it now は GTD で 2 分以内で終わる仕事用に準備したものです。これまでタスク化されていなかったけど、今すぐにできるタスクを簡単に始めることができます。

hkob.notion.site