「Voiceflowにおける会話のコンテキストを考える」シリーズのやっと最終回です。今回は「環境コンテキスト」です。
この記事は「Voiceflowにおける会話のコンテキストを考える 」シリーズの第6回の記事です。他の記事は以下にあります。よろしければあわせて読んでみてください。
第1回
第2回
第3回
第4回
第5回
第6回(この記事)
目次
環境コンテキスト
実は環境コンテキストについては、「シチュエーショナルデザイン」シリーズの第2回でもやっています。
というか、そもそも「シチュエーション」というのはある意味「環境」に非常に近い考え方だと思いますね。コーヒーショップを題材に具体的な例を上げてみましょう。
時間
わかりやすいのは「時間」という環境です。一般的なコーヒーショップには営業時間がありますよね。営業時間中と営業時間外に訪れた場合、それぞれ店員の回答は違いますよね。とてもわかりやすいです。
営業時間中
いらっしゃいませ。ご注文は何になさいますか?
営業時間外
申し訳ございません。本日は終了しました。またのご来店をお待ちしております。
天候
天候はまさに「環境」です。晴れの日と雨の日だとやっぱり違いますよね。前回の「エアーチケット」でもそれっぽいことをやっていました。
サンプルでは「晴れ」しかないわけですが、もし雨の予報があった場合には、例えば以下のように変えてあげるのが良いでしょう。
わかりました。XXXX-XX-XXに神戸行きのチケットを予約しますね・・・おっと、当日の神戸の天気予報だと雨の可能性が高いみたいですね・・・日程を変えることもできますが、このまま予約しますか?
ユーザの違い
シチュエーショナルデザインでもあった「パーソナライズ」というのも、スキルから見た場合には「環境」と言えるでしょう。例えば、以下のような場合です。
初めて利用するお客様の場合
いらっしゃいませ。初めてのご利用ですね。当店ではたくさんの種類のコーヒーを取り扱っております。ご注文は何にしますか?
常連のお客様の場合
いらっしゃいませ。いつもご利用ありがとうございます。今日はハワイ コナのエクストラファンシーがちょうど入荷したところでおすすめですよ。ご注文は何にしますか?
今日誕生日のお客様の場合
いらっしゃいませ。いつもご利用ありがとうございます。(ファンファーレ)お誕生日おめでとうございます!今日はサービスでハワイ コナのエクストラファンシーを1杯無料で提供させていただきますよ。そちらでよろしいですか?
つまり、お客様の利用度合いやパーソナル情報との合致具合という「環境」の違いがコンテキストに影響を与えるということですね。
環境コンテキストによる分岐
ではこれをどういうふうに使うか、というところですが、「シチュエーショナルデザイン」シリーズや「コンテキストを考える」シリーズをここまで読んでいただいた方ならもうおわかりかと思います。環境要因を変数として保持してこれをもとにCondition Blockで分岐させることになります。
ということで、営業時間によって分岐する例を見てみましょう。
ちょっとだけコードを書いています。最初のCustom Code Blockの中にはこんなコードが入ってます。
const moment = requireFromUrl('https://cdn.jsdelivr.net/npm/moment'); hh = moment().add(9,'h').hours();
JavaScriptで時間を扱うライブラリである"moment"を読み込んで、現在時刻の「時」を取得しています。add(9, 'h')
というのはmoment()
で取得できる時間はUTCになっているのでJST、つまり日本時刻に置き換えていることになります。hours()
で現在の「時」が取れるので、それを変数hh
に保存しているというわけです(変数hh
は予め作成しておく必要があります)
そしてCondition Blockです。
ここで変数hh
を判定して、
hh
が8よりも大きい(8は含まない)- かつ、
hh
が22より小さい(22は含まない)
つまり、9〜21時を営業時間として判定して、合致する場合は上へ、合致しない(else)場合は下へ流れるというわけですね。Condition Blockは何度も使ってきたので慣れてる方もいらっしゃると思いますが、こういう複雑な条件を設定することもできます。(ちょっと設定の仕方はコツがいりますが、別の機会に紹介したいと思います。)
まとめ
「Voiceflowにおける会話のコンテキストを考える」シリーズの最終回、「環境コンテキスト」でした。「コンテキストを考える」というのは、言い換えるとシチュエーションごとにユーザとの会話をデザインするということであり、「シチュエーショナルデザイン」と同じく、ユーザの会話体験を素晴らしいものにするための重要な方法の1つです。Voicelowを使えば、コンテキストに基づいた会話フローをかんたんかつ柔軟に構築することができますので、ご活用ください!