背景
Teams に Community を追加すれば Yammer も把握しやすくなるんですが・・
Yammer 自体が浸透していない環境の場合
Yammer での有益な展開内容を Teams に投稿させることで、普段 Yammer を見ない人を誘導できるんじゃないかなぁという思いから
スレッド全部展開すると大量になりがちなので、今回は以下とする
- Yammer での新規スレッド投稿のみ
- Teams では、単一スレッドへ返信という形でまとめる
概要
動作イメージ
全体像
詳細
Yammer で新しいメッセージのトリガーで起動
新しい投稿のみへのフィルター
Teams のトリガー 新しいチャネル メッセージが追加されたとき と以下が違うのでフィルターが必要
フィルターする為にトリガーの結果を調べると、返信すると replied_to_id が設定されることがわかる
triggerOutputs()?['body/replied_to_id']
取得結果が、空っぽなら、返信させるように 条件(condition) を追加するだけ
replied_to_id は 数値 の為、そのまま取得して empty() で確認してしまうと、empty() の引数の想定型に当てはまらない為にエラーになるので注意
Teams の展開用スレッドへ返信することで展開
普通に以下アクションで返信するのみ
チャネル内のメッセージで応答します で投稿
メッセージ(Message) は、以下とすることで、Yammer への誘導を図る
- 元メッセージへのリンクを追加
- blockquote を使って、引用扱い
<a href="@{triggerOutputs()?['body/web_url']}">メッセージへ</a>
<blockquote>@{triggerOutputs()?['body/body/rich']}</blockquote>
返信(Reply) なので、事前に親スレッドを投稿しておき、そのメッセージ ID を取得しておく必要があります
メッセージ ID の取得方法
以下を設定しておくと、こういうときのメッセージ ID 取得は便利になりますよ
補足
今回、Yammer のスレッド全部を展開しているわけではないですが、もし、スレッド全部を展開する場合は以下方針かな
- replied_to_id が無い場合(今回の Reply 側)
- 新規投稿
- 新規投稿時のメッセージ ID と Yammer のスレッドID を対にして Lists とかに保存
- replied_to_id がある場合
- 対となるTeams のメッセージID を取得して、Reply
今回は以下理由でパス
- 単に Yammer の概要通知をしたいだけなので、親だけで OK
- Lists などで管理するのは面倒。
あとがき
SharePoint の通知や、各種外部情報を Teams の特定のチャネルで受けられるようにすると、楽になっていいですよね。
keyword
How to transfer yammer thread to teams
アクション部分のフロー
再現する場合は、以下を利用
{
"id": "b7098e63-f0ed-40bc-a033-4faceed26f4e",
"brandColor": "#8C3900",
"connectionReferences": {
"shared_yammer": {
"connection": {
"id": "/providers/Microsoft.PowerApps/apis/shared_yammer/connections/shared-yammer-0b7c3a2d-c2f5-46ef-bd0d-32f189b1e3eb"
}
},
"shared_teams_1": {
"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_TransferToTeamsWhenNewThreadIsCreated",
"operationDefinition": {
"type": "Scope",
"actions": {
"Condition_Is_New_Thread": {
"type": "If",
"expression": {
"equals": [
"@outputs('Compose')",
"@null"
]
},
"actions": {
"Reply_with_a_message_in_a_channel": {
"type": "OpenApiConnection",
"inputs": {
"host": {
"connectionName": "shared_teams_1",
"operationId": "ReplyWithMessageToConversation",
"apiId": "/providers/Microsoft.PowerApps/apis/shared_teams"
},
"parameters": {
"poster": "Flow bot",
"location": "Channel",
"body/parentMessageId": "1645275812524",
"body/recipient/groupId": "a70cc9a6-85a4-4b73-974a-c005f11ca2b5",
"body/recipient/channelId": "19:b55252f93b12444ea97ffd5ac9a26abc@thread.tacv2",
"body/messageBody": "<a href=\"@{triggerOutputs()?['body/web_url']}\">メッセージへ</a>\n\n<blockquote>@{triggerOutputs()?['body/body/rich']}</blockquote>"
},
"authentication": "@parameters('$authentication')"
},
"runAfter": {},
"metadata": {
"operationMetadataId": "72f2956e-f299-4701-aa94-b37b12f67369"
}
}
},
"runAfter": {
"Compose": [
"Succeeded"
]
},
"metadata": {
"operationMetadataId": "99f709c7-e804-4c27-ad32-adfc12db94c3"
}
},
"Compose": {
"type": "Compose",
"inputs": "@triggerOutputs()?['body/replied_to_id']",
"runAfter": {},
"metadata": {
"operationMetadataId": "3872b9b8-a229-46b8-bded-83b0030a0c66"
}
}
},
"runAfter": {},
"metadata": {
"operationMetadataId": "24451bb9-dbf3-4d32-a750-3965804f170a"
}
}
}