Powerautomate teams 返信 メッセージid

Power Platform2022.05.11
Powerautomate teams 返信 メッセージid

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

今回はPower AutomateのTipsの紹介です。

Power Automateでフローを作成する際、「あるフローでメールを送信し、別のフローでそのメールに返信したい」という要望はありませんか?

Power Automateでメールを返信する際、メールに返信するアクションを用います。
また、このアクションを用いる際は、メッセージIDが必須となります。

Powerautomate teams 返信 メッセージid
Power Automateでの「メールを送信する」アクション

このメッセージIDですが、Power Automateでメールを受信した際には取得することができますが、
Power Automateからメールを送信した際には取得することはできません。

そこで、今回はPower Automateでメールを送信した際にメッセージIDを取得する方法についてお伝えします。
Power Automateでフローを作成したことがある方に向けた記事です。

Power Automateでメールを受信した時

最初に、Power Automateでメールを受信した際にメッセージIDを取得する方法についてお伝えします。
こちらはとても簡単です。

作成したフローは以下です。

単純に新しいメールが届いたときというトリガーを用いることで、メッセージIDを取得できます。

Powerautomate teams 返信 メッセージid
Power Automateでメールを受信した際にメッセージIDを取得する方法

Power Automateからメールを送信した時

続いて、Power Automateからメールを送信した際にメッセージIDを取得する方法についてお伝えします。

まずはメールを受信した時と同じように、メールの送信アクションからメッセージIDが取得できるか試してみました。 結果としては、メールの送信アクションからメッセージIDは取得できないことが判明しました。

Powerautomate teams 返信 メッセージid
「メールの送信」アクションからメッセージIDは取得できない

以下では、上記のフローを一工夫することで、Power Automateからメールを送信した際でもメッセージIDを取得する方法をお伝えします。

対策

以下の流れにより、メッセージIDを取得します。

  • メール送信後、「送信済みアイテム」へメールが格納されるまで待機
  • 「送信済みアイテム」から送信したメールを抽出
  • メッセージIDを取得

また今回作成したフローを先に紹介します。

Powerautomate teams 返信 メッセージid
Power Automateからメールを送信した際にメッセージIDを取得する方法

以降では、それぞれの手順について説明します。

メール送信後、「送信済みアイテム」へメールが格納されるまで待機

大まかな流れとしては、メール送信後、「送信済みアイテム」から送信したメールを抽出すればよいのですが、 メールを送信した後、「送信済みアイテム」へメールが格納されるまで一定時間がかかるため、「遅延」アクションを用いて待機します。

今回は、1分の待機時間を設定しました。

Powerautomate teams 返信 メッセージid
Power Automateからメールを送信した際にメッセージIDを取得する方法:待機

「送信済みアイテム」から送信したメールを抽出

続いて、「送信済みアイテム」から先程送信したメールを抽出します。

「メールを取得する」アクションを用いて、検索条件を設定することにより、先程送信したメールを抽出します。
今回は、「件名フィルター」を用いて先程送信したメールを抽出しています。
また、設定する際のポイントとしては、以下点です。

  • フォルダー:「送信済みアイテム」に設定

  • 未読メッセージのみを取得する :「いいえ」に設定

※“未読メッセージのみを取得する”はデフォルトで「はい」となっているため、必ず「いいえ」と設定してください。
(私はこの設定値に気づかず、なぜメールが取得できないのか?と悩みました…)

Powerautomate teams 返信 メッセージid
Power Automateからメールを送信した際にメッセージIDを取得する方法:メールを取得する

メッセージIDを取得

最後に、メッセージIDを取得します。

メールを取得するアクションで得た出力結果は配列となるため、first()関数を用いて、最初の要素のメッセージIDを取得します。

Powerautomate teams 返信 メッセージid
Power Automateからメールを送信した際にメッセージIDを取得する方法:メッセージIDの取得

first()関数や上記の式を作成するまでの詳細については、以下のブログを参照してください。

こちらでメッセージIDを取得することができました!

おわりに

今回はPower Automateでメールを送信した際に、メッセージIDを取得する方法についてお伝えしました。

Power Automateが送信したメールに対して、別のフローからメールを返信する際には、
メールを送信した際にメッセージIDを取得する必要がありますので、こちらの方法をお試しいただければ幸いです。

【こちらも合わせて読みたい】

弊社ではPower Platform(Power AppsやPower Automateなど)を用いてお客様の業務を自動化するご支援を数多く承っております。

業務の中で、「普段手動でやっている業務を自動化できないか」というような疑問がある場合には、お気軽にアーティサン株式会社までお問い合わせください。

Powerautomate teams 返信 メッセージid

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

Powerautomate teams 返信 メッセージid

posted at 2022-08-31

背景

Teams の Message Details (メッセージの詳細)を取得する際

  • 返信したいメッセージID

ではなく、

  • 返信したいメッセージIDの親のメッセージID(スレッドの最初の投稿メッセージID)

が必要です。

以前は 親のメッセージID (Parent Message ID) を取得することが出来なかったはずなんだけど、いつの間にか出来るようになってましたってお話

Get Message Details
【日本語版】⇒ メッセージ詳細を取得する

以下で指定する ID です

Powerautomate teams 返信 メッセージid

取れるもの

元々困っていた、For a selected message トリガーと、取得アクション自体での結果を例示

Parent Message ID という名前ではなく、Reply To ID で存在。

トリガー: For a selected message

For a selected message (V2)
【日本語版】⇒ 選択されたメッセージに対して (V2)

Parent Message ID の取得

@{triggerBody()?['teamsFlowRunContext']?['messagePayload']?['replyToId']}

Powerautomate teams 返信 メッセージid

アクション: Get Message Details 自身からも取得出来ます

Get Message Details
【日本語版】⇒ メッセージ詳細を取得する

Parent Message ID の取得

@{outputs('Get_message_details')?['body/replyToId']}@{triggerBody()?['teamsFlowRunContext']?['messagePayload']?['subject']}

Powerautomate teams 返信 メッセージid

ドキュメント

以下記載なので、不明

Returns
The outputs of this operation are dynamic.

Powerautomate teams 返信 メッセージid

Powerautomate teams 返信 メッセージid

あとがき

これで、For a selected message を使って、スレッド内返信が出来るようになりました

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

What you can do with signing up