MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Teamsのメッセージ選択時トリガーがPower Automateに追加されました!

はじめに

※全テナント反映されているかはわかりません。 (投稿時点)

Microsoft TeamsとのIntegrationが強化されているPower Platformですが、Power Automateで注目のトリガーが利用可能になりました!

選択したメッセージ

f:id:mofumofu_dance:20200706225317p:plain

これまで、SharePointやOneDriveや、CDSでは「選択したXXX」のトリガーが存在していましたが、Teamsの文脈ではこれが 「選択したメッセージ」になります。

このトリガーのいいところの1つは、Teamsで会話している中で発生したタスクや、共有されたドキュメント、あるいはメッセージそのものをフローで取得して後続のアクションにつなげられる点です。

また、上の図を見てわかる通り、Adaptive Cardsを利用して、「メッセージ+カスタムの入力」が可能になります。

このAdaptive Cardsへの入力もメッセージ同様に後続のアクションで利用できるので、より幅広い活用が可能になります。

試してみる

トリガーの設定としては3つです。いずれもオプションなので、何も指定しなくても実行可能です。

  • Adaptive Cards
  • Adaptive Cardsを表示するダイアログの幅
  • Adaptive Cardsを表示するダイアログの高さ

f:id:mofumofu_dance:20200706230136p:plain

Adaptive Cardsは、Power Automateに組み込みのデザイナーで作成します。

f:id:mofumofu_dance:20200706230222p:plain

変更後は必ず「Save Card」してください。

Adaptive Cardsを設定しない場合

トリガーの実行には、まずメッセージの[…]をクリックし、表示されるメニューの一番下「More actions」に表示されるフローを選びます。

f:id:mofumofu_dance:20200706230615p:plain

Adaptive Cardsを何も設定していない場合には、下図のようなメッセージが表示され、フローが即時開始されます。

f:id:mofumofu_dance:20200706230847p:plain

得られるデータを見てみると、(一部マスクしていますが)以下のような構成になっています。

{
  "entity": {
    "teamsFlowRunContext": {
      "MessagePayload": {
        "Id": "1594040259306",
        "From": {
          "Application": null,
          "Conversation": null,
          "Device": null,
          "User": {
            "DisplayName": "Nagao Hiroaki",
            "Id": "18841347-0000-0000-0000-1d411f03ae5d"
          }
        },
        "Body": {
          "ContentType": "html",
          "Content": "<div><div><at id=\"0\">hiro2</at>&nbsp;7/24までに申請出しておいてください。</div>\n</div>",
          "PlainText": "hiro2 7/24までに申請出しておいてください。"
        },
        "Subject": "",
        "LinkToMessage": "https://teams.microsoft.com/l/message/19:c1d77cxxxxxxc74e47145bf87af@thread.skype/1594040259306"
      },
      "Id": "f:7894xxxx713737",
      "ChannelData": {
        "EventType": null,
        "Team": {
          "Id": "19:c1d77ca380axxxxxc74e47145bf87af@thread.skype",
          "AadGroupId": "787d35a0-0000-0000-0000-fd93bc449dd1",
          "Name": null
        },
        "Tenant": {
          "Id": "b5cf997a-0000-4007-a2e5-999999999"
        },
        "Channel": {
          "Id": "19:c1d77caaaaaaaaaae47145bf87af@thread.skype",
          "Name": null
        },
        "Notification": null
      },
      "From": {
        "Id": "29:1YiVIsxasddffaT1JX-fa8I_o2-Zgh3Qx2YTtjQAyNaYhDNQew",
        "Name": "Nagao Hiroaki",
        "Role": null,
        "AadObjectId": "18841347-0000-0000-0000-1d411f03ae5d",
        "Properties": null
      },
      "Conversation": {
        "Id": "19:c1d77ca3xxxxxxe47145bf87af@thread.skype;messageid=1594040259306",
        "Name": null,
        "IsGroup": true
      },
      "Locale": "en-US",
      "CommandContext": "message"
    },
    "cardOutputs": {}
  }
}

情報量多いのですが、メッセージに関する詳細 (テナント、グループ、チャンネル、メッセージのID、だれが出したか、内容)等が得られていることがわかります。

あとはこれらの情報を利用して、後続アクションを実行していくことになります。

※もちろん動的な値に表示されます。

Adaptive Cardsを利用した場合

Adaptive Cardsをオプションで指定した場合を見てみます。

More actionsから実行すると、今度はダイアログが表示され、設定したカードが表示されます。

f:id:mofumofu_dance:20200706231610p:plain

ここに情報を入力して送信してみると、Adaptive Cardsを利用しない場合と比べて、以下のデータが追加で得られます。

        "Id": "19:c1d77ca3xxxxxxe47145bf87af@thread.skype;messageid=1594040259306",
        "Name": null,
        "IsGroup": true
      },
      "Locale": "en-US",
      "CommandContext": "message"
    },
    "cardOutputs": {
      "taskTitle": "例外申請提出",
      "DueDate": "2020-07-27"
    }
  }
}

カードからの情報は、 cardOutputsの中に入ります。 メッセージ同様、これを補足情報として後続のアクションで利用することで、「メッセージ+実行時のカスタム入力」で何らかの処理を自動化することができます。

おわり

速報として、Power AutomateでTemas向けトリガーに追加された「選択したメッセージ」をご紹介しました。

次の投稿では、メッセージの選択トリガーからPlannerへのタスク追加を実行してみます。