本記事では、お問い合わせの受付をTeamsで行い、営業時間(9:00~18:00)に応じてメッセージ内容を変更して自動返信を行います。
作成するフローの内容
本記事では、下記のフローを作成します。
フロー全体のショット
今回作成するフローはこのような形です。
事前準備
本フローでは、お問い合わせ日が会社の休日かを判定するため、Outlook予定表を取得します。
組織で会社の休日予定表が配布されていない場合は、個別で「会社休日」カレンダーを作成します。
Outlookの「予定表」より「新しい予定表」を作成します。
「会社休日」カレンダーを作成します。
- 全ての会社休日(土日含む)を「会社休日」カレンダーに登録します
- 会社が祝日休みの場合は、祝日も登録します
- 会社休日カレンダーには、休日情報以外の予定は登録されていないことが前提です
自動化したクラウドフローの作成
フローの作成に入ります。
作成画面で「自動化したクラウドフロー」を選択します。
下記画面でフロー名とトリガーを設定します。
トリガーは「チャットに新しいメッセージが追加されたとき」です。
「チャネルに新しいメッセージが追加されたとき」の設定
対象のチームとチャネルを選択します。
「変数を初期化する」アクション追加
営業開始時間と終了時間を格納しておくための変数を用意します。
「Variable」の「変数を初期化する」アクションを選択します。
変数のパラメータを設定します。
Name | 営業開始時間 |
Type | String |
Value | 営業開始時間は9時とします。formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),'yyyy-MM-dd 09:00') |
同様に営業終了時間の変数も追加します。
Name | 営業終了時間 |
Type | String |
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. | メッセージ投稿時間が営業開始時間以降かを判定します。 左辺 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 | 営業時間外の旨を記載します。 |
フローの保存とテスト
保存をし、テストを実行してみてください。
営業時間内の場合
営業時間外の場合
コメント