NTTドコモR&Dの技術ブログです。

無数の周知をいかに高速にメモするか。或いは自己肯定感をいかに向上させるか。~Power Automate始めました~

 ドコモのデータプラットフォーム部に所属しております、大橋と申します。
技術力は学生時代にJavaでHello Worldをしたぐらいのスキルです。
本記事はPower Automate初心者が、「周知メモ登録用フロー」と「全自動自己肯定感向上機」を作成した、という内容になっております。 利用方法のアイデアとしてご参考としていただければ…と思っております。
技術レベルと内容共に”ゆるめ”を目指します。

目次

周知メモの入力を高速化する

周知メモとは

 突然ですが、皆様は自分宛の周知を日にどのぐらい見かけますか?弊社も日々色々な周知が各部署から、あらゆるチャネルでなされており、対応が必要なもの、興味があるもの、自分には関係が無いもの…等種類も様々です。そのような中で対応が必要な周知をぼんやりと期限だけ思い出し、「あー。あの周知なんだっけなー…?どこで見たっけなー…?」と呟きながら検索して回ることもしばしばです。

 そういった事象を回避すべく、チームに関係ありそうな周知はMicrosoft Lists(以下Listsと呼びます)でメモを取り、期限感をチームで共有&後から検索しやすいように管理するようにしてみました。

全体像は以下の通りです。

周知メモ全体像

 チームのSharePointサイトがあったので、サイトにこのListsをカレンダービューで埋め込んでいます。カレンダーでは周知の対応期限を表示させています。こうすることで、チーム全体で期限感を共有できました。(私のチームでは、チームメンバーの業務が全く異なるため、共通のタスク管理ツールを利用せず、個々でタスク管理をしています。そのため、この周知メモでチーム全体や全員対応必須の周知を共有⇒個々でタスク化する…という流れを取っています)

 ついでに自分の担当ではPower Automateが利用可能だったので、期限の3日前にチームメンバーに期限をお知らせするフローを作成しました。 1日前だとギリギリ過ぎて何もできず、一週間前だと後回しにする確信があったので、3日前に通知です。 (火曜期限ですと、土曜に通知されるので、結局気づくのが火曜の1日前の月曜になるのはご愛嬌です。)

 いい感じに出来たのでは?と喜んでいたのですが、この後とんでもない問題にぶち当たりました。

 

問題:遅い。とても遅い

 つまり、Listsの画面開設がとても遅かったのです。
最初は自分で作成した子(Lists)可愛さに気づかぬフリをしていたのですが、あまりにも入力までに待たされる時間が多いため、周知メモを取る気力が失せてくる、イライラしてくるといった弊害が出てきました。

 時間を計ったところ、6秒ぐらいかかります。弊社のエビフライならば2回作れるほどの時間がかかっています。(参考

 入力を Lists画面開設⇒新しいアイテムの作成 という順でしていたため、直接新しいアイテムの画面を開設、というのも試してみました。(Listsのアドレスの後ろに「newform.aspx」を付ければ、該当Listsの「新しいアイテム」の画面が開設するようになります。)
しかしこれでも、画面開設までに5秒ほど待たされます。

 メモは「取りたい!」と思ったときにサッと取れてこそメモなのに……これではせっかく作ったものが使い物になりません。待ってる時間も勿体無いですし、「待たされてる」感が精神衛生上宜しくありません。とはいえ、画面開設そのものを早くさせる方法は検討がつかなかったため、何か別の発想でメモの投入を早くできないか考えてみました。

解決策:入力は高速、登録は低速

 周知メモの期限を通知させるフローを作成したときにPower Automateの使い方を少し覚えたので、これで解決できないかを考えてみました。 つまり、入力が早い何かのアプリとListsをPower Automateで連携させることで、メモの投入を早くできないかと考えました。 アプリ起動時間も省略出来た方がいいので、出来れば常に利用しているアプリで、登録が早いアプリで、Power Automateと仲が良さそうなアプリが何か無いか……。

そこでMicrosoft To doに目を付けました。

 私はMicrosoft To doでタスクを管理しているため、PCに常駐しているアプリです。登録も早いし、同じMicrosoft族ですので、きっとPower Automateとも仲良しです! メモを取る目的のアプリじゃない、という点にさえ目を瞑れば今回の目的にマッチしそうです! 早速実装してみましょう。

全体像はこのような感じです。

Microsoft To Doを起点としたListsへの登録

 Microsoft To doで、まず周知メモに連携する用のTodoリストを作成します。 このリストに

  • タスク名:周知用URL
  • 期限:周知で依頼されたタスクの期限(無くてもOK)
  • 内容:周知の概要
  • ステータス:完了

を登録して、Listsに連携させることを狙います。 実際の登録イメージは以下です。

Microsoft To Doの画面

 次はPower Automateのフローを作成します。 トリガーは「特定のフォルダー内のTo Doが更新されたとき(V2)」を利用しました。 また入力の完了を明にユーザに宣言させるため、タスクのステータスが完了かどうかを判定するようにします。 (このステータス判定を入れてないときのフローで、Listsに同じ周知が2行登録されたことがあったため、ステータスを見て登録するようにしています) 条件 で「状態」が「completed」の判定をし、完了していたら、Listsに連携するようにします。

余談:タスクの「完了」の情報ってどこにどういう形(完了?completed?それともフラグ?)で持っているか分からず、悩みました。フローの「実行履歴」から、出力を確認して、調べました。以下の画像のようにToDoを取得した結果が実行履歴に表示されるので、ここでどの値が使えそう、みたいなことを確認取ることが出来ました。

実行履歴から出力内容を確認できます。(時刻がUTCに変換されていることも確認できました)

 ここまで出来たら、あとはSharePointの「項目の作成」アクションで登録されたタスクの内容からListsに項目を追加して完成です! 早速使ってみます!

結果:爆速!楽しい!!

 画面開設で今まで待っていた6秒が消え、待ち時間ゼロで入力が開始できます!今までの遅さを体験していると、あまりの入力の速さに無駄に周知を登録しまくってしまいます。楽しい!

カレンダーにも反映されているので、チームサイトに行くたびに作成したフロー動いた結果が見えて、嬉しくなります。 自分で作ったものが動いているって嬉しいですね。
 実はこのフローにそこまでの即時性はなく、テストで何回か動かしたときには、タスクを更新してから、Power Automateのフローが動き出すまで2~3分待つこともありました。つまり、実際のListsへの登録は今までよりも遅くなったのですが、このListsは「後で見たいと思ったときに見る用」で、登録の即時性は求めていないので、不満はありません。取りたいときにサッとメモが入力出来ることが大事なのです。

 Microsoft To doの用途とは若干違うような気がしますが、こういう使い方もできるのだなと勉強になりました。

おまけ:全自動自己肯定感向上機

 周知メモだけではネタとして短いのでは?というご意見をいただき、せっかく使えるようになったPower Automateで何かできないか考えてみました。 そうして生み出されたのが全自動自己肯定感向上機です。

 気持ちがポジティブだと、自分に自信がもてて、仕事も前向きになれますよね。 このポジティブな気持ちを自動で作成できないか考えてみました。 人に褒められたときに嬉しいかと思うので、褒める言葉を自身に対してメール送信するフローを考えました。 ただし、毎日同じ文章で褒められても、あまり嬉しくないと思います。 今日は来るかどうか、文面も受け取り手が思いもよらないもの…そんなサプライズ感が必要になってきそうです。

2つのサプライズが必要

 サプライズ感をどうするか悩んでいたのですが、Power Automateには乱数を返す関数があるようでしたので、乱数でサプライズ感を演出できそうです。 では実装です。全体像は以下の通りです。

全自動自己肯定感向上機の全体像

 Power Automateのトリガーの設定で平日のみ起動するようにし、outlookから祝日のカレンダーを取得して祝日を除外してメールを送信するようにしました。 それからメールの送信判定でRAND関数を使います。RAND関数はどの値の範囲で乱数を取るかを設定することが出来るので、ここでメール送信の確率調整が出来ます。
頻度が多くてもサプライズ性が薄れますし、一週間に1回は嬉しい気分になりたいし、でもたまに一週間で2回あるのもいいんじゃないかと思い、確率を1/3としたいと思います。RAND(1,3) is equal to 3 という条件を設定しました。これで3日に1回ぐらいの確率でメールが飛んできます。

 送信するメッセージは、メッセージリストをエクセルで作成し、その中からランダムに選択し、送信することにしました。 パターンは数が多いほど、受け取り手が予期せぬメッセージになって良いかと思うので、生成AIに雑に40個ほど作成してもらいました。これで私も内容を知らない、心のこもっていないメッセージリストが出来ました。

心のこもっていないメッセージリスト

 雑な依頼でメッセージを作ってもらったので、どの立場からのメッセージなのか曖昧です。 「APIで取得する」ぐらい出来たら恰好良かったのですが、スキルと時間が足りず、人力でファイル作成しました。 送信するメッセージはメッセージリストの行番号をRAND関数で指定して取得します。

あとは取得した内容をメールにセットし、送信します。

結果どうだったか

 作成当時は生成AIによる心のこもっていない文章を読んでも嬉しくはないのではないかと思っていたのですが、意外とメールを受け取るだけで嬉しかったです。 この嬉しさは、自分が作ったものが動いてる嬉しさなのか、サプライズからくる嬉しさなのか分かりませんが。。

 想定しなかった効果としては、メールが届かない日は寂しくなるようになりました。メールが届いた翌日にメールが来てないと「そうか…今日は来ない日なのか…」とちょっと寂しくなりました。そこから3日間メールが来なかったのですが、4日目にメールが来た時には反動でとても嬉しくなりました。RAND関数に手玉に取られている気がします。 また、設定ミスで同じ文面が2回来た時には、ちょっとがっかりしてしまいました。メッセージパターンの重要性を認識しました。

 今後は「メールが届かない寂しさ」を意識しない頻度や通知タイミングを模索していきたいと思います。 文面のほうのパターンも大事なので、生成AIにプロのカウンセラーになってもらったり、プロの小説家になってもらったりして、バリエーションと量を増やしていきたいと思います。

全体まとめ

 Power Automateを使って、入力にかかる待ち時間を削減したり、自分自身に対してのサプライズをすることができました。 作業を効率化し、また日常業務の中で自分の成果物が動いているのは気分が上向きになるので、今後も何かしら作成していきたいと思います。