LoginSignup
0
0

PowerAutomate: キーワードに反応して、ネタリストで応答して、雑談を盛り上げる

Posted at

背景

会社で・・課のグループチャットがある。
なんと、そこでは雑談がしにくいことから、ある時間ごとに「雑談・休憩しましょう」と流れます・・。

いや、そんなことやって誰がするんだよ、って思うんですが事実です :cry:

まぁ、文句ばっかり言っててもしょうがないので、盛り上げるためにネタを投稿してたんですが、その都度やるとなると面倒だし、作業中だと反応したくないときもある。

ってことで、今回のAutomateを作ってみた

概要

  • ネタリストを Lists に日々用意。
    • 別のところに登録してるネタを、自動登録
    • 気になったことは別途手動で登録もあり
  • 「雑談・休憩しましょう」投稿に自動応答で、ネタリストから投稿

詳細

ネタリストの準備

image.png

列名 概要
Title テキスト リンクの名称として利用
URL ハイパーリンク リンクとして利用
Posted はい/いいえ 投稿済みかどうか

Automate投稿に対する自動応答

Automate投稿なので、メッセージは固定。
ただ、日本語なのがたまに傷

方法としては以下二つあったけど、以前から使いたかった Trigger ってことで前者を選択

  1. 『キーワードが言及されているとき』 アクションを利用して、応答
  2. チャットに新しいメッセージが追加されたとき』 アクションを利用して、trigger condition で、応答

ということで、トリガー

image.png

このトリガー、元々複数単語には対応していない。詳細は以下で、ちょっと古いけど

処理

image.png

詳細は上図に書いた。

説明が必要とするなら

ネタリストから投稿用アイテムの取得

image.png

  • FilterQuery で Posted ne true の条件を設定する
    ※上図では、GUIで設定する為反転

  • 投稿は一件のみなので、Top Count = 1

Teamsへの投稿内容作成

image.png

Message for temas
 <blockquote>@{outputs('Get_message_details')?['body/body/plainTextContent']}</blockquote>
<a href=@{first(outputs('Get_items')?['body/value'])['URL']}>@{first(outputs('Get_items')?['body/value'])['Title']}</a>

アクション部分のコピペ

Action
{"id":"652b24f9-d908-4e4d-acf8-58821bad0d73","brandColor":"#8C3900","connectionReferences":{"shared_sharepointonline_1":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-15e7a58d-6555-418d-a955-a6b286a76a7b"}},"shared_teams":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_teams/connections/shared-teams-864099d5-54a7-4002-93b6-565ecf481128"}}},"connectorDisplayName":"Control","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"Scope","operationDefinition":{"type":"Scope","actions":{"Get_message_details":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"GetMessageDetails","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"messageId":"@first(triggerOutputs()?['body/value'])['messageId']","threadType":"groupchat","body/recipient":"19:bbbf9a6a83704bbc8ccb1101e40871f3@thread.v2"},"authentication":"@parameters('$authentication')"},"runAfter":{},"metadata":{"operationMetadataId":"f525a834-56b1-4cf5-9e91-38367543da16"}},"Condition":{"type":"If","expression":{"equals":["@outputs('Get_message_details')?['body/body/plainTextContent']","10分まで休憩・雑談の時間にしましょう。"]},"actions":{"Get_items":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"GetItems","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://shimakuma-my.sharepoint.com/personal/shima_kuma_shimakuma_onmicrosoft_com","table":"3786b79b-e380-448f-b3d9-45a2575cbfde","$filter":"(Posted eq '') or (Posted eq 'false')","$top":1},"authentication":"@parameters('$authentication')"},"runAfter":{},"metadata":{"operationMetadataId":"c48f3b60-47a1-40fa-95e5-6484c965e1c2"}},"Condition_2":{"type":"If","expression":{"equals":["@empty(outputs('Get_items')?['body/value'])",true]},"actions":{},"runAfter":{"Get_items":["Succeeded"]},"else":{"actions":{"Compose":{"type":"Compose","inputs":"<blockquote>@{outputs('Get_message_details')?['body/body/plainTextContent']}</blockquote>\n<a href=@{first(outputs('Get_items')?['body/value'])['URL']}>@{first(outputs('Get_items')?['body/value'])['Title']}</a>","runAfter":{},"metadata":{"operationMetadataId":"9e92c61d-7905-424b-88e4-5269a95729fa"}},"Post_message_in_a_chat_or_channel":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"PostMessageToConversation","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"poster":"Flow bot","location":"Group chat","body/recipient":"19:bbbf9a6a83704bbc8ccb1101e40871f3@thread.v2","body/messageBody":"@outputs('Compose')"},"authentication":"@parameters('$authentication')"},"runAfter":{"Compose":["Succeeded"]},"metadata":{"operationMetadataId":"8525e155-96b4-4e37-a07f-b46bc8b980e6"}},"Update_item":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"PatchItem","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://shimakuma-my.sharepoint.com/personal/shima_kuma_shimakuma_onmicrosoft_com","table":"3786b79b-e380-448f-b3d9-45a2575cbfde","id":"@first(outputs('Get_items')?['body/value'])['ID']","item/Posted":true},"authentication":"@parameters('$authentication')"},"runAfter":{"Post_message_in_a_chat_or_channel":["Succeeded"]},"metadata":{"operationMetadataId":"eedb677a-767d-467b-a591-5382a7bdea2d"}}}},"metadata":{"operationMetadataId":"e9780bdd-816e-4e62-95d8-7079eae8e6fb"}}},"runAfter":{"Get_message_details":["Succeeded"]},"metadata":{"operationMetadataId":"097e3a72-8ba8-4ce5-a152-11cb01eeafd8"}}},"runAfter":{},"metadata":{"operationMetadataId":"effcff01-a242-4a1a-971f-11db4921ad09"}}}

使い方

あとがき

ほんとは、teams news を action で取得したかったのだが、まだActionがなかったので、自分でネタ作るしかない・・

image.png
これとか、外部APIとか使えたらもっと楽できるのに・・ :laughing:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0