LoginSignup
0
3

More than 1 year has passed since last update.

PowerAutomate: Yammer の新規スレッドのみを Teams へ展開する

Last updated at Posted at 2022-04-11

背景

Teams に Community を追加すれば Yammer も把握しやすくなるんですが・・

Yammer 自体が浸透していない環境の場合
Yammer での有益な展開内容を Teams に投稿させることで、普段 Yammer を見ない人を誘導できるんじゃないかなぁという思いから

スレッド全部展開すると大量になりがちなので、今回は以下とする

  • Yammer での新規スレッド投稿のみ
  • Teams では、単一スレッドへ返信という形でまとめる

概要

  1. Yammer で新しいメッセージのトリガーで起動
  2. 新しい投稿のみにフィルター
  3. Teams への返信アクションで投稿

動作イメージ

image.png

全体像

非常に単純なので、初心者の方にもおすすめですね。
image.png

詳細

Yammer で新しいメッセージのトリガーで起動

グループに新しいメッセージがあるとき
image.png

新しい投稿のみへのフィルター

Teams のトリガー 新しいチャネル メッセージが追加されたとき と以下が違うのでフィルターが必要
image.png

フィルターする為にトリガーの結果を調べると、返信すると replied_to_id が設定されることがわかる
image.png

ということで、replied_to_id を取得する
image.png

replied_to_id
triggerOutputs()?['body/replied_to_id']

取得結果が、空っぽなら、返信させるように 条件(condition) を追加するだけ
image.png

replied_to_id は 数値 の為、そのまま取得して empty() で確認してしまうと、empty() の引数の想定型に当てはまらない為にエラーになるので注意

Teams の展開用スレッドへ返信することで展開

普通に以下アクションで返信するのみ
チャネル内のメッセージで応答します で投稿

image.png

メッセージ(Message) は、以下とすることで、Yammer への誘導を図る

  • 元メッセージへのリンクを追加
  • blockquote を使って、引用扱い
投稿内容
<a href="@{triggerOutputs()?['body/web_url']}">メッセージへ</a>

<blockquote>@{triggerOutputs()?['body/body/rich']}</blockquote>

返信(Reply) なので、事前に親スレッドを投稿しておき、そのメッセージ ID を取得しておく必要があります

メッセージ ID の取得方法

以下を設定しておくと、こういうときのメッセージ ID 取得は便利になりますよ

補足

今回、Yammer のスレッド全部を展開しているわけではないですが、もし、スレッド全部を展開する場合は以下方針かな

  1. replied_to_id が無い場合(今回の Reply 側)
    1. 新規投稿
    2. 新規投稿時のメッセージ ID と Yammer のスレッドID を対にして Lists とかに保存
  2. replied_to_id がある場合
    1. 対となる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"
        }
    }
}
0
3
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
3