Plannerのタスクを完了後、Outlookに自動作成したPlannerタスクを完了扱いにする
解決できる課題
Plannerのタスク管理で以下のお困りはありませんか? ・PlannerのタスクをOutlookで管理している ・Plannerのタスク完了もOutlookに反映させたい ・Plannerのスケジュールでは、スケジュールが見にくい このレシピを使えば、Plannerでタスク完了すれば、自動でOutlookでタスクのスケジュールに反映させます。
完成イメージ

必要なもの
Planner コネクタ
Outlook コネクタ
作り方
Plannerを使い、Outlookにスケジュール登録するレシピの応用です。
※「Plannerのタスクを作るたびにOutlookに連携する」
タスクのスケジュール登録を自動化するのなら、完了も自動化します。
このフローのポイントはIDを比較する時、テキストに変換しておくことです。
- 1. トリガー「タスクが完了したとき」を設定
トリガーはタスクの自動スケジューリングフローと同じです。
Outlookと連携するPlannerの[グループID]と[プランID]を設定します。

- 2. アクション「作成」を設定
[入力]には「ID」を設定します。
なお、トリガーからの戻り値は下記の通りで、このステップはタスクIDの取り出しとなります。
{
"headers": {
省略
},
"body": {
省略
"title": "test",
省略
"id": " ここがタスクID ",
省略
}
}

- 3. アクション「イベントの取得 (V4)」を設定
[予定表ID]は、タスク管理をしているスケジュールを選択します。
※ここの詳細パラメーターにある[フィルタークエリ]は使いません(※9. コツを参照)

- 4. 「For Each」を設定
[前のステップから出力を選択します]は、「body/value」を設定します。

- 5. アクション「Html からテキスト」を設定
[コンテンツ]は、「本文」を設定します。
これは、Outlookのイベントから取得する本文がHTML形式のため、テキストへ変換して取り扱いしやすくします。

- 6. 「条件」を設定
ステップ2で取り出したタスクIDと、ステップ5で取り出したOutlookイベントの本文を比較します。
「プレーンテキストコンテンツ」に「出力」を「含む」にします。

- 7. アクション「イベントの更新」を設定
[予定表ID]はステップ3と同じにし、[ID]は「ID」を選択します。
[件名]は任意ですが、タスク完了と分かるようにした上で、「件名」を使います。
[開始時刻]と[終了時刻]は、それぞれ「開始時刻」と「終了時刻」にします。
※例えば、終了時刻にタスクの完了時間を設定すると、タスク作成時に登録したスケジュール期間も変更できます
[タイムゾーン]は日本時間にします。

- 8. 動作確認
Plannerで「テストタスク」を作成します。

Outlookのスケジュールに「テストタスク」が登録されます。

Plannerで「テストタスク」を完了すると、スケジュールでは「完了: テストタスク」に変わっています。

- 9. コツ
タスクIDやイベント本文の取り扱いについて、テキスト変換の工程を知らないと、フローが失敗し続けます。
失敗するフローの例としては、
・タスクIDとイベント本文をそのまま比較する
・タスクIDを抜き出し後、イベント本文はHTMLのまま比較する
・contains関数を使い、更新対象のイベントを特定する
・「イベントの取得」アクションのフィルタークエリで対象イベントを特定する
など。
(このあたり、ノーコードやローコードの難しいところ)
比較する時はシンプルにした方が良いので、変換できる時は変換フローを使うことを推奨します。
また、あるアクションがどの戻り値を出力するかについて、確認する方法は「作成」アクションを使うことです。
このアクションの[入力]に、確認したい戻り値を設定しておけば、テスト処理でステップバイステップで内容を確認可能です。
例えば、条件を使う時、条件式に使うパラメータを「作成」でも使います(デバッグとして)。
こうすると、Trueだけを処理につなげる場合でも、Falseに「作成」を置いておけば、なぜFalseなのか、を確認可能です。

