Teamsで仕事をしていると、重要な周知事項も直ぐに流れてしまうことが多々あります。
対処方法は色々あるかと思いますが「選択したメッセージ」をSharePointのlistに保存をかけておこう。
そういう時の備忘録です。
※ちなみに試行錯誤はしましたが、まだまだ改善の余地はあると思っています
簡易フロー
Automateのフローは以下の通りです

実際にフローを作成する前に、今回はSharePointのlistを作成しておかないといけません。
具体的に何の項目を保存するのか?
自分の中で決めておきましょう。
今回は以下のようにしました。
list項目名 | list書式 | 用途 |
---|---|---|
タイトル | デフォルト | メッセージID格納 |
投稿の件名 | 1行テキスト | メッセージの件名 |
投稿日時 | 1行テキスト | メッセージの投稿日時 |
投稿内容 | 複数行テキスト | メッセージの本文 |
投稿者 | ユーザーまたはグループ | メッセージの投稿者 |
チーム名 | 1行テキスト | メッセージが投稿されたチーム名 |
チームID | 1行テキスト | 上記のID |
チャネルID | 1行テキスト | 投稿されたチャネルのID |
本当はチャネルIDからチャネル名も表示させたいところですが、やり方が分からなかった。
後でまた挑戦します。
また、投稿日時の設定を「日時」ではなく「1行テキスト」にしています。
これは、Automateでタイムゾーンの変更をかけても、リスト投稿時にまた変換されてしまったためです。
タイムゾーンの変更をしなくても良い説もありますが、今回のフローでは別途、保存者へ通知するアクションも含めており、そこでタイムゾーンを使っておりますので、今回は上記設定でいきます。
さて、リストを作成したら、フロー作成に移りましょう。
フロー
今回は各々のタイミングで発火させるため「インスタント クラウド フロー」で作成します。
トリガーはTeamsから「選択したメッセージの場合」です。
カードの作成ボタンが出てきますが、今回は不要ですのでスルーします。
フローに支障はありません。
メッセージを取得するには詳細情報が欲しいので、Teamsから「メッセージ詳細を取得する」を選択。

それぞれ上記のように、取得したいメッセージに辿り着けるように動的コンテンツで当てはめましょう。
次は「Htmlからテキスト(プレビュー)」を追加します。
※検索ボックスに「Html」と入れて検索した方が早いです

このアクションを挟むことで、メッセージ本文が改行なしで詰まったり、余計なタグが丸見えになったりすることを防ぐことができます。



まぁ完全に納得できる出来映えではありませんが、余計なタグが見えるよりかは、実際に使う人たちに受け入れられやすいかと。(もしかしたらこのアクションを挟まないでもいけるデータ抽出方法があるかもしれませんが……)
アクションを追加したらコンテンツに「メッセージ詳細を取得する」の動的コンテンツを入れます。

動的コンテンツには「Body Content」の他に「Body plainTextContent」があります。HTMLのまま取り出すか、一応テキストとして取り出すか、といった違いのようです。
両方試した結果「Body Content」が見やすかったので、今回はこちらで。
次はタイムゾーンの変換です。
再び「メッセージ詳細を取得する」から動的コンテンツで「CreatedDateTime」を確認。基準時間に投入します。

ここの「書式設定文字列」はそのままlistの投稿時間に当てはまります。
お決まりの「yyyy-MM-dd HH:dd」を入れておくのが分かりやすいのではないでしょうか。
次は「マイプロフィールの取得(V2)」のアクションを追加します。
これは「保存した人に通知を送信する」という後のアクションで利用するためです。ここでの詳細設定は特に不要です。
※「マイプロフィールの取得」は「office 365 Users」に含まれるアクション
「ou」や「365」で検索すると出てくる
次は「チームの取得」です。

後にチームIDだけではなく、チーム名称も使いたいので、ここで取得しておきます。
次はメッセージを保存した自分宛に通知するアクションを作ります。

「チャットまたはチャネルでメッセージを投稿する」を選択。
投稿者は何でもいいですが、今回は「フローボット」、投稿先はボットチャットで自分宛にします。最初の方に取得しておいた「メール」をここで利用します。
一番下の「Message」には「保存するフローからの自動通知だよ」と、適当に投入しておきましょう。
本番前のテストなので、自分が分かりやすいのが一番です。
次はリスト保存のアクションですが、一度ここまでで保存し、テスト投稿してみましょう。うまくいかない場合の切り分けが容易になりますし、リストを汚さなくて済みます(笑)
Teamsに移動し、保存したいメッセージの右上にカーソルを合わせます。

「・・・」が表示されますので、それをクリック。
「その他の操作」が一番下に出ますので、そこにカーソルを当てると、保存した名称のフローが出てくると思います。
尚、一度でも使用すると下記のように「・・・」の中に追加されます。
※今回私は「選択したTeamsメッセージに対して」と名称保存かけてました。

フローを動かすと自分宛にフローボットが通知してくれます。
「保存するフローからの自動通知だよ」と、先ほど投入したメッセージが表示されていると思います。
このメッセージにもいくつか項目を追加できるので、用途に合わせて変更していくと良いと思います。
※フローボット通知より自分宛のチャットの方が良かったり……?
フローに戻りましょう。
最後に、今まで取得してきた情報をすべてlistに保存かけます。


「サイトのアドレス」と「リスト名」は必須項目ですが、他は、自分がリストに保存かけたい情報だけを拾っていけば良いです。
「サイトのアドレス」は、リストを作成したSharePointのサイトのこと。
「リスト名」は、情報を保存するリストの名前です。
上記2つを選択すると、あらかじめ作成していたリスト項目「投稿の件名」とか「投稿日時」とかが自動で表示されます。ちなみに、一度このフローを保存して閉じ、リスト側に項目を増やしてからフローに戻ってきても、ちゃんとその増やした項目が反映されています。便利です。
今回のフローはこれで終了ですが、ちゃんと保存されたか分からないので、この後にもう1度自分宛に「保存されたぞ」というメッセージを飛ばすフローを追加してもいいかもしれませんね。