【Power Automate】Teamsチャネルのお問い合わせに自動返信

Power Automate
この記事は約6分で読めます。

本記事では、お問い合わせの受付をTeamsで行い、営業時間(9:00~18:00)に応じてメッセージ内容を変更して自動返信を行います。

この記事でわかること
  • Teamsへの自動返信方法
  • 会社が休日かをOutlook予定表から取得し、判定する方法
  • お問い合わせ時間に応じて返信内容を変更する方法



作成するフローの内容

本記事では、下記のフローを作成します。


  

フロー全体のショット

今回作成するフローはこのような形です。


 

事前準備

本フローでは、お問い合わせ日が会社の休日かを判定するため、Outlook予定表を取得します。
組織で会社の休日予定表が配布されていない場合は、個別で「会社休日」カレンダーを作成します。


Outlookの「予定表」より「新しい予定表」を作成します。



「会社休日」カレンダーを作成します。

  • 全ての会社休日(土日含む)を「会社休日」カレンダーに登録します
  • 会社が祝日休みの場合は、祝日も登録します
  • 会社休日カレンダーには、休日情報以外の予定は登録されていないことが前提です


 

自動化したクラウドフローの作成

フローの作成に入ります。
作成画面で「自動化したクラウドフロー」を選択します。



下記画面でフロー名とトリガーを設定します。
トリガーは「チャットに新しいメッセージが追加されたとき」です。


  

「チャネルに新しいメッセージが追加されたとき」の設定

対象のチームとチャネルを選択します。


「変数を初期化する」アクション追加

営業開始時間と終了時間を格納しておくための変数を用意します。


「Variable」の「変数を初期化する」アクションを選択します。



変数のパラメータを設定します。

Name営業開始時間
TypeString
Value営業開始時間は9時とします。
formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),'yyyy-MM-dd 09:00')



同様に営業終了時間の変数も追加します。

Name営業終了時間
TypeString
Value営業終了時間は18時とします。
formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),'yyyy-MM-dd 18:00')


 

「タイムゾーンの変換」アクションの追加

「チャネルに新しいメッセージが追加されたとき」で取得したメッセージ投稿日時を、日本時間に変換します。
「Date Time」より「タイムゾーンの変換」アクションを追加します。


 
パラメータを設定します。

Base Time動的なコンテンツより「メッセージ 作成のタイムスタンプ」を選択します。
Source Time Zone(UTC)Coordinated Universal Time
Destination Time Zone時差変換先のタイムゾーンに変換します。
本記事では、(UTC+9:00)Osaka, Sapporo, Tokyo
Time Unit日付と時間の両方を取得するTime Unitを選択します。
General date/time pattern(short time)-6/15/2009 1:45 PM[g]


 

「イベントの取得」アクションの追加

「会社休日」カレンダーより、メッセージ投稿日に休日イベントがあるかどうかを取得するため
「イベントの取得」アクションを追加します。



パラメータを設定します。

予定表ID会社休日
フィルタークエリ日本時間で本日の予定を取得するために、フィルタークエリで抽出します。
start/dateTime ge '@{addDays(triggerOutputs()?['body/createdDateTime'],-1,'yyyy-MM-dd 15:00')}' and start/dateTime le '@{formatDateTime(triggerOutputs()?['body/createdDateTime'],'yyyy-MM-dd 14:59')}'


 

条件 投稿日時が営業時間内かを判定

下記3つの条件を設定していきます。

  1. メッセージ投稿時間が営業開始時間以降か
  2. メッセージ投稿時間が終了時間以前か
  3. メッセージ投稿日が会社休日か



パラメータを設定します。

1.メッセージ投稿時間が営業開始時間以降かを判定します。
左辺
formatDateTime(body('タイム_ゾーンの変換'),'yyyy-MM-dd HH:mm')

演算子
is greater or equal to

右辺
動的なコンテンツより、変数「営業開始時間」を選択します。
2メッセージ投稿時間が営業終了時間以前かを判定します。
左辺
formatDateTime(body('タイム_ゾーンの変換'),'yyyy-MM-dd HH:mm')

演算子
is less than
※18:00ぴったりのお問い合わせは営業時間外にしました。
18:00まで受付たい場合は、「is less or equal to」を選択します。

右辺
動的なコンテンツより、変数「営業終了時間」を選択します。
3「会社休日」カレンダーの、メッセージ投稿日(本日)のイベントの有無を判定します。
※イベントが0個なら、会社の休日ではないという判定です

左辺
length(outputs('イベントの取得_(V4)')?['body/value'])

演算子
is equal to

右辺
0


 

Trueの場合の設定

条件に合致した場合(=メッセージ投稿時間が営業時間内のアクションを、Trueの下に設定していきます。

 

「チャネル内のメッセージで応答します」アクションの追加

投稿メッセージに返信するため、「チャネル内のメッセージで応答します」アクションを追加します。



パラメータを設定します。

投稿者本記事では、営業時間内の場合は、「User」に設定しました。
投稿先Channel
Message ID動的なコンテンツより、「Message ID」を選択します。
Team問合せを受付ているチームを選択します。
Channel対象のチャネルを選択します。
Messageお問い合わせを受付けた旨を記載します。


 

Falseの場合の設定

条件に合致しない場合(=投稿日時が営業時間ではない場合のアクションを、Falseの下に設定していきます。

「チャネル内のメッセージで応答します」アクションの追加

Trueと同様のアクションを追加し、パラメータを設定します。

投稿者本記事では、営業時間外の場合は、「Flow bot」に設定しました。
ボットによる返信で、自動応答感が増します。
投稿先Channel
Message ID動的なコンテンツより、「Message ID」を選択します。
Team問合せを受付ているチームを選択します。
Channel対象のチャネルを選択します。
Message営業時間外の旨を記載します。


 

フローの保存とテスト

保存をし、テストを実行してみてください。


営業時間内の場合


 
営業時間外の場合

コメント