PlannerからTo-Doへタスクを同期する

背景

Office365でタスク管理してますか?チームのタスクはPlanner、個人のタスクはTo-Doで管理している方も多いと思います。To-Doは先日Outlookとの連携強化がアナウンスされましたが、Plannerとはまだあまり仲良しじゃないみたいなので、Flowを使ってタスクを同期させてみました!

手順

1. To-Do リストの作成

To-DoにPlanner用のリストを作成します。
同期したいPlanがたくさんある場合は、Planと1:1になるようにリストを作ったほうがわかりやすいです。

To-Do List

余談ですが、リストの先頭に絵文字を使うことができます。アイコンみたいになってわかりやすい!

2. Planの作成

Plannerにプランを作成します。あわせて、アドレスバーからPlan IDをメモしておきます。
Plan

3. Planner⇒To-Do 方向のFlowを作成

Planner⇒ToDo 方向のFlowを作ります。やりたいのは下の説明のとおり。
Flow Card

トリガーとアクションを定義します。

Flow Trigger

  1. トリガー:Plannerで自分にタスクが振り分けられたとき、同じ内容でTo-Doを追加する(When a task is assigned to me)
  2. アクション1: 条件(Switch-Case)
    Switch-Case の評価式は、アサインされたタスクのPlan IDです。
  3. ケース1: PlanID を指定
    2. Planの作成でメモしたPlanIDを指定します。
    複数のPlanがあって、複数のTo-Doリストにそれぞれ紐付ける場合は、ここでケースを増やしてください。

次は実際にTo-Doのタスクを追加するアクションを作成します。

Action To-Do

  • アクション2: To-Doの追加
    ★の箇所はトリガーで取得したタスクの情報を入れます。
    🌟の期限日がちょっとポイントです。
    単純にDueDateTimeを入れてしまうと、Planのタスクに期限日が指定されていない場合エラーになってしまいます。ここでは、
  • 期限日が指定されている ⇒ そのまま設定
  • 期限日が指定されていない ⇒ Planタスクの作成日をTo-Doタスクの期限日に設定
    とする
    そのため、関数で以下のように書いています。
Coalesce(triggerBody()?['dueDateTime'], triggerBody()?['createdDateTime'])

保存/実行

『保存』して完了です!試しにPlannerでタスクを登録してみましょう。

Plannerにタスク追加

ちゃんと登録されました!やったー!

To-Doのリスト

この記事のまとめ

  • Plannerで自分にアサインされたタスクをTo-Doのリストにも追加するFlowを作ったよ!
  • SwitchでPlanIDを評価して追加先のTo-Doリストを分岐しているので、複数のプラン・To-Doリストに対応可能
  • To-Doをメインでガンガン使っているひとにおすすめ

補足:逆方向の同期について

To-Doでタスクを完了にしたらPlannerでも完了にしたい!と思うのが効率化厨の業ですよね。わかります。トライしてみましたが、結果としてはあまりいいご案内ができません…。

To-Doの本文にタスクIDを設定しておいて、逆同期を(むりやり)やることもできるんですが、以下の問題があるため、実用レベルではないかな~と思っています。

  • そもそもTo-Doは(2018/11/16時点では)トリガーになれない
  • To-Doの実体であるTasks(Outlook/Exchangeのタスク)は、完了したことがトリガーになれるが、完了したタスクIDが必須なので、実質トリガーとして有用でない(完了したときにTaskIDがわかっている必要がある。本文にTaskIDを入れることでなんとかできなくはない)
  • さらに上記をがんばっても、Plannerの素晴らしい機能であるチェックリストの内容を取得・更新できないため、本当にすべてやることが完了しているのかについてはわかりようがない

こんなにがんばってチェックリストを書いてもTo-Do側では知るすべがないんですかね… せっかくTo-Doでもステップの概念ができたのに…
Plannerタスク詳細

上記より、この記事はTo-Doが仕事の起点になっている方向けという位置づけであり、Plannerが起点であればわざわざ同期する必要はないと思います。本記事がニッチな用途のご参考となれば幸いです。