MENU

選択したメッセージをSharePointのlistに保存する

Teamsで仕事をしていると、重要な周知事項も直ぐに流れてしまうことが多々あります。
対処方法は色々あるかと思いますが「選択したメッセージ」をSharePointのlistに保存をかけておこう。

そういう時の備忘録です。
※ちなみに試行錯誤はしましたが、まだまだ改善の余地はあると思っています

目次

簡易フロー

Automateのフローは以下の通りです

実際にフローを作成する前に、今回はSharePointのlistを作成しておかないといけません。
具体的に何の項目を保存するのか?
自分の中で決めておきましょう。

今回は以下のようにしました。

list項目名list書式用途
タイトルデフォルトメッセージID格納
投稿の件名1行テキストメッセージの件名
投稿日時1行テキストメッセージの投稿日時
投稿内容複数行テキストメッセージの本文
投稿者ユーザーまたはグループメッセージの投稿者
チーム名1行テキストメッセージが投稿されたチーム名
チームID1行テキスト上記のID
チャネルID1行テキスト投稿されたチャネルの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度自分宛に「保存されたぞ」というメッセージを飛ばすフローを追加してもいいかもしれませんね。

広告

目次