変数の利用方法について知りたい

変数は「システム変数」、「シナリオ内変数」、「ユーザー変数」の3種類があります。
用途に合わせて変数を定義することで、以下例のような動作が可能となります。
例:変数の値をチャットボットの発言に組み込む
例:変数の値によってアクションの実行を制御する
例:変数の値を送受信し外部サービスと連携する

各変数の説明については、 こちら をご覧ください。

変数の定義(システム変数)

  1. システム変数は、DialogPlay(システム)側で定義済みのため、ユーザーが定義する必要はありません。

変数の定義(シナリオ内変数)

  1. シナリオ画面の「シナリオの流れ」にある、『ヒアリング』、『選択肢確認』、『外部システム連携』、『Yes/No確認』アクションを追加後、以下説明の項目を設定することで、『変数一覧』に使用できるシナリオ内変数が定義されます。

  2. 各アクション設定時に追加されるシナリオ内変数は以下のとおりです。

    2-1. 『ヒアリング』アクション設定時
    『ヒアリング』アクションを追加し、『ヒアリング項目名』を入力すると、入力した値が『シナリオ内変数』に変数として定義されます。

    2-2. 『選択肢確認』アクション設定時
    『選択肢確認』アクションを追加し、『タイトル』を入力すると、入力した値が『シナリオ内変数』に変数として定義されます。

    2-3. 『外部システム連携』アクション設定時
    『外部システム連携』アクションを追加し、『連携先』を選択すると、連携先の『Response Map』で設定されている『変換先』が、『シナリオ内変数』に変数として定義されます。

    [選択した外部システム連携先]

    2-4. 『Yes/No確認』アクション設定時
    『Yes/No確認』アクションを追加し、『タイトル』を入力すると、入力した値が『シナリオ内変数』に変数として定義されます。

変数の定義(ユーザー変数)

  1. 左メニューの『チャットボット一覧』を選択し、ユーザー変数を定義したいチャットボットをクリックしてください。

  2. 画面下部にある『ユーザー変数』をクリック後、『名前』を入力し、”保存“ボタンをクリックしてください。
    変数の初期値を設定したい場合は、『初期値』を入力してください。

  3. 定義したユーザー変数は、同一チャットボット内の全シナリオで共通項目として利用可能です。
    1つ目のシナリオで取得したユーザ変数の値を、2つ目のシナリオで継続して使用するなど、シナリオを跨いだ使い方が可能となります。

    [1つ目のシナリオ]

    [2つ目のシナリオ]

変数の利用方法

  1. 『変数一覧』に表示されている変数をシナリオ内で利用することが可能です。

    [利用可能変数例]

  2. 『発言内容』、『質問内容』での利用
    各アクション内の『発言内容』または『質問内容』に、変数名を{{}}で囲って記述することで、変数の値をチャットボットの発言の一部として表示できます。

  3. 『実行条件』での利用
    各アクション内の『実行条件』に変数と値を指定することで、アクションを実行するための条件を設定できます。

  4. 『既に知っている項目は省略する』チェックボックスについて
    『既に知っている項目は省略する』にチェックが入っている場合、初回にユーザーから情報を取得し値が保持された項目は、2回目以降質問が省略されます。
    「名前」、「電話番号」、「性別」など変わる頻度が少ない項目に対して有効です。
    ※ユーザー変数で初期値を設定、かつ『既に知っている項目は省略する』にチェックが入っている場合、初回であっても質問が省略されます。

    例:ユーザー変数の『初期値』が未設定、かつ『既に知っている項目は省略する』にチェックが入っている場合のシミュレーション画像
    ・初回発言:名前を取得するためのヒアリングを行います。

    ・2回目以降:すでに名前を取得しているため、名前のヒアリングは行いません。

変数の値の表示方法を指定

以下例のように、変数の後ろに特定の値を入れることで、変数の値を部分的に表示したり、フォーマットを指定して表示することが可能です。

例1:「list(外部システム連携)」で取得( 空き会議室の検索 の場合)

名称 説明 入力例 取得した値
size 配列長を返します 空き会議室:{{locations.size}}室 空き会議室:3室

例2:「@本日」で取得(2018.06.01 の場合)

名称 説明 入力例 取得した値
year 年を表す文字列を返します {{@本日.year}} 2018
month 月を表す文字列を返します {{@本日.month}} 6
day 日を表す文字列を返します {{@本日.day}} 1
weekday 月曜日を 0、日曜日を 6 として、曜日を整数で返します {{@本日.weekday}} 4
isoweekday 月曜日を 1、日曜日を 7 として、曜日を整数で返します {{@本日.isoweekday}} 5
isoformat YYYY-MM-DDの日付を表す文字列を返します {{@本日.isoformat}} 2018-06-20

例3:「@現在時刻」で取得(12:30:00 の場合)

名称 説明 入力例 取得した値
hour 時間を表す文字列を返します {{@現在時刻.hour}} 12
minute 分を表す文字列を返します {{@現在時刻.minute}} 30
second 秒を表す文字列を返します {{@現在時刻.second}} 00
isoformat hh:mm:ssの時間を表す文字列を返します {{@現在時刻.isoformat}} 12:30:00

例4:「@現在日時」または「外部システム連携」で取得(2018.06.01 12:30:00 の場合)

名称 説明 入力例 取得した値
date @dateで取得した文字列を返します {{@現在日時.date}} 2018-06-20
time @timeで取得した文字列を返します {{@現在日時.time}} 12:30:00
Last updated on 2019/04/05.