MENU

Teamsチャネルに投稿されたらSharePointリストに保存する

Teamsのチャネルに投稿されたメッセージを、SPOのlistに保存するフローを作ります。
※とか言っても超初心者的な内容ですけど ( ´・∀・`)

目次

作成物

今回のフローで必要なのは以下の通りです。

  • Teamsチャネル
  • SharePointリスト
  • PowerAutomateクラウド

イメージ図は以下の通り

※左から「Teams」「SPOリスト」「リスト設定」

リストは「作成」をしただけで、列の追加等は何も行っていません。
登録日時はリストの内部設定に自動で入っており、デフォルトでは非表示になっていますので、リストビューからチェックを入れて、表示させれば良いだけです。別に見えていなくても問題はなし。

フロー

詳細フロー

今回はTeamsに投稿されたタイミングで発動させたいため「自動化したクラウドフロー」を選択します

フロー名は自由につけてください。

トリガーは「チャネルに新しいメッセージが追加されたとき」を選択します。

選択肢が多い時は「Teams」や「チャネル」で絞り込むと楽です。

また、「チャットに新しいメッセージが追加されたとき」という紛らわしいものもありますので、選択を誤らないよう注意してください。

チャネルに新しいメッセージが追加されたとき

どこのチームの、どのチャネルに投稿されたタイミングで発動させたいのかを、ここで設定します。

項目の作成

どのリストに、どのように登録したいのかを設定します

サイトのアドレスリストが属するサイトを選択します
リスト名保存したいリストを選択します

タイトルから下は、作成したリスト項目(列の名前)が表示されます。今回はリストに「タイトル」しか作成していないため、表示されているのは「タイトル」だけです。
他にも列を作成している場合は、その数だけ表示されます。

動的な値

「タイトル」に動的なコンテンツ(値)を設定します。

「チャネルに新しいメッセージが追加されたとき」から「メッセージ本文コンテンツ」を当てはめれば完成です。

結果は以下に掲載しておりますのでご確認ください。

HTMLコードが不要(プレーンテキストのみが欲しい)の場合は次の項目で説明します。

メッセージ本文コンテンツ

プレーンテキストのみ保存する場合

HTMLコードを抜いて保存する場合のフローは以下の通りです。

先ほど作成したフローの中に「HTMLからテキスト(プレビュー)」を挟み込みます。
検索するときは「HTML」で検索すると絞り込まれます。
※「HTMLから」で絞込みするとヒットしません。

Htmlからテキスト

アクション「HTMLからテキスト」を入れ込んだ後は、ボックスの中に動的な値「メッセージ本文コンテンツ」を入れましょう。

最後に「項目の作成」に嵌めるものを「プレーンテキストコンテンツ」に差し替え、再びTeamsで投稿してください。右下の図のように、HTMLコードのないテキストが保存されたと思います。

留意事項

Teams投稿からリスト保存されるまで数分のタイムラグが生じます。
環境によるかもしれませんが、自分の環境では以下のようなズレ具合でした。

Teamsの投稿日時→

フローが走ってリスト保存された日時 ↓

タイムラグがあることを覚えておけば「リスト保存されてない!? フローも走ってない! なんで!?」と狼狽えることもないかと思います。

応用:登録が成功しても失敗しても返信でお知らせする

基本のフローを少し手直しして、ちゃんと登録されたのか、登録されなかったのか、どちらにしてもお知らせするフローにしたいと思います。

変更したフローは下記の通りです。

一番下の、左右に並列分岐させているところが今回の肝です。
運用のためリストの設定を変更しており基本フローとは若干異なります。
※「現在の時刻」は削っても問題ありません。

チャネル内のメッセージで応答します

まずは「項目の作成」の下に「チャネル内のメッセージで応答します」を追加しましょう。
同じフローの中であれば返信投稿も簡単に実装できちゃいます。

選択するアクションは「チャネル内のメッセージで応答します」です。

Teamsで絞り込むと簡単に追加できます。

この中の肝は「Message ID」です。
ここで登録したIDの投稿に返信が作成されます。

追加するのは「チャネルに新しいメッセージが追加されたとき」の中に入っている動的コンテンツです。

その中の「メッセージID」を選択して追加しましょう。

並列分岐

並列分岐を追加します。

「項目の作成」と「チャネル内のメッセージで応答します」の間に表示される「+」マークを押して、新しいステップを追加してください。

すると「並列分岐の追加」を選択できます。

左は成功したときの返信イメージ、右は失敗(未登録)したときの返信イメージです。

右側に追加したアクションの3点リーダー「・・・」をクリックして「実行条件の構成」を選択します。

デフォルトでは「に成功しました」のみチェックが入っていますので、それを外します。

それ以外の項目にすべてチェックを入れます。

これで、成功したもの以外がこちらのフローに流れてきます。

テスト

上記の応用で作成したフローを実際に作動させてみましょう。

登録していたリストのタイトルはデフォルトで「一行テキスト」の設定になっており、一行テキストは最大255文字までしか登録できません。

なので、左記のように255文字以上を登録してみると登録失敗になるはず。

投稿して少し時間を置くと・・・

登録失敗の返信がつきましたね。
では、PowerAutomateの実行履歴を見てみましょう。

はい、ちゃんと(?)失敗しております。
エラーの詳細を見てみましょう。

英語です。
大丈夫、ブラウザに翻訳して貰います o(・∀・`o)

種類 ‘OpenApiConnection’ のワークフロー操作 ‘項目の作成’ の ‘inputs.parameters’ が無効です。
エラーの詳細: API 操作 ‘PostItem’ では、プロパティ ‘item/Title’ を最大長 ‘255’ の文字列にする必要がありますが、長さは ‘456’ です。

ちゃんと「『項目の作成』のパラメーター値の文字数制限255文字だって言ってんのに456文字もあるから無効にしたよ」と言ってますね。すごい。

ということで、ちゃんと制限を守って再投稿。

上記までフローでは紹介してない返信ですが・・・

はい、ちゃんと成功したときも返信してくれましたね。
めでたしめでたし。

広告

目次