[Amazon Connect] 着信した時間によって処理を分岐する 〜日本の祝祭日は、お休みとする〜

Amazon Connectでは、「オペレーション時間」を参照して、営業時間外内かどうかによってフローを分岐する事ができます。 しかし、残念ながら、「オペレーション時間」の設定は、曜日と時間の設定しか無く、祝日等に特別な営業時間を設定することはできません。 今回は、ここをLambdaで実装して、祝日は、営業時間外として動作する問い合わせフローを作成してみたいと思います。
2018.09.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

Amazon Connect(以下、Connect)では、オペレーション時間 を参照して、営業時間外内かどうかによってフローを分岐する事ができます。

しかし、残念ながら、オペレーション時間の設定は、曜日と時間の設定しか無く、祝日等に特別な営業時間を設定することはできません。

今回は、ここをLambdaで実装して、祝日は、営業時間外として動作する問い合わせフローを作成してみたいと思います。

2 Lambdaの実装

休日の判定は、以下のコードを利用さえて頂きました。

Qiita JavaScriptで休日判定

上記のコードをrequireして、実装したConnect用のLambdaは以下のとおりです。本日が休日の場合、{isHoriday:true} が返されます。

const Holiday = require('./holiday').Holiday;

exports.handler = async function(event, context) {
const dt = new Date();
const dateStr = dt.getFullYear() + '/' + Number(1 + dt.getMonth()) + '/' + dt.getDate();

if (Holiday.getHolidayName(new Date(dateStr)) != '') {
return { isHoliday: true };
}
return { isHoliday: false };
};

問い合わせフローの中から、Lambdaを呼び出す要領については、下記の「問い合わせフローからLambda関数を呼び出す手順」をご参照下さい

3 問い合わせフロー

作成した問い合わせフローは以下のようなものです。最初に、オペレーション時間を確認して、営業時間内が返された場合は、先程のLambdaを呼び出しています。

Lambdaの戻り値で、祝日判定された場合は、営業時間外とし、そうでない場合は、そのまま営業時間内として動作します。

Lambdaの戻り値を判定しているブロックのオプションは、以下のようになっています。

4 最後に

今回のように、Lambdaで判定するのであれば、何でも自由に実装できます。

単純にオペレーション時間の設定で処理できる場合は、それに越したことはありません。そして、Lambdaでの判定は、その範囲を超える場合のみという選択になるでしょうか。

5 参考リンク

Qiita JavaScriptで休日判定

[Amazon Connect] 問い合わせフローの中でLambda関数を実行する