FLOWスクリプトの要素

アクションセル

変数

変数カテゴリー

変数データ型

配列変数

オブジェクト変数

イベントカウンター

アクションセル

アクションセルは、そのタイプが示す特定の機能を実行します。例えば、[スタート][メディアのを再生][コンタクトにルーティング]などです。

スクリプトには、スクリプトへのエントリポイントである[スタート]アクションセルが1つと、任意の数のアクションセルで構成されます。[スタート]アクションセルは削除できません。

[スタート]アクションセルには、そこから出ていくリンク(遷移点)が1つしかありません。しかし、他のすべてのアクションセルには、入ってくるリンクが1つあり、遷移点が1つ以上あります。スクリプト内の各アクションセルには固有のIDがあり、セルごとに固有の名前を付けられます。アクションセルを色分けし、複雑なスクリプトを読みやすくすることが可能です。

3つの遷移点が設定された[メニュー]アクションセルを、下の図に示します。アクションセルを選択すると(青でハイライトされます)そのプロパティが表示されるので、これを設定して保存する必要があります。

プロパティと遷移ルートはアクションセルごとに固有で、本マニュアルで説明しています。

上記のスクリプトで、[メニュー]アクションセルは、DTMFキーを押すよう促すイントロダクションプロンプトを発信者に再生し、発信者が押したキーで示されるルートに従って遷移します。プロンプトとキーを押すまでのタイムアウトは、アクションセルのプロパティで設定します。通信がコンタクトにルーティングされると(オプション1〜3)、スクリプトの実行が終了します。

スクリプトのアクションセルには同じ名前を指定できますが、固有のIDで識別されます。

「着信処理スクリプトの作成」および「FLOWアクションセルリファレンス」も参照してください。

変数

変数は、スクリプトが実行されるたびに変わる可能性のある値を格納するために、FLOWスクリプトで使用されるプログラミング要素です。例えば、CLIを使用して発信者名を検索するスクリプトでは、着信ごとにその値が変わるため、CLIに変数が使用されます。また、変数を使用し、FLOWスクリプト内で(ユーザーが定義した)定数値を指定することもできます。

変数カテゴリー

変数は、使用方法に応じて下記のカテゴリーのいずれかに分類される必要があります。

変数カテゴリー

内容

設定

ユーザー

スクリプトレベルで設定します。その変数が作成されたスクリプトに対してのみ使用できます。変数に格納された値は、入力パラメータとして他のスクリプトやアプリケーションに渡すことができます。

ユーザー

システム

スクリプトで一般的に使用される値を保持するよう、一元的に設定します。例:発信番号や着信番号。「コンタクト」フィールドは「ダイヤル」スクリプトでのみ使用可能です。

connect storm

グローバル

グローバル変数を参照するすべてのスクリプトで使用される値を保持するよう、一元的に設定します。通貨換算レート、有効化フラグ、無効化フラグなどがこの例です。グローバル変数は「$」記号で始まります。

ユーザー(connect storm STUDIOで)。詳細は、connect storm STUDIOユーザーガイド』を参照してください。

CDR

20個の「その他」フィールド($_その他_1~$_その他_20)を参照します。これらは、connect storm VIEWのヒストリカルレポート(CONTACTデータレコードのデータソース)に使用する情報の保存に使用できます。フィールドに入力できるのは、それぞれ最大1024文字です。

また、CDR変数には、OUTBOUNDキャンペーンの完了コードを格納する$_通話_結果変数も含まれます。

ユーザー

ユーザー変数の値は、システムが特定の通話またはサービスを処理している間は維持されます。その後の通話またはサービス処理時に、上書きされます。ユーザー変数に初期値を指定すると、スクリプトが実行を開始するたびに、その値が適用されます。

変数データ型

変数は、格納するデータ型に応じて、次のいずれかの型にしてください。

変数データ型

内容

サイズ/範囲

整数

整数。

任意の値で、新規整数型変数を初期化できます。指定しない場合は、デフォルト値である0になります。

この値は、実行時にスクリプトのアクションセルによって上書きされます。

-2,147,483,647~2,147,483,647の範囲で設定してください。ただし、アクションセルによっては負の値や特定の閾値を超える値を使用できない場合があります。

文字列

一連の文字です。テキスト、数字、またはその両方を指定できます。

任意の値で、新規文字列型変数を初期化できます。指定しない場合は、空の文字列になります。

この値は、実行時にスクリプトのアクションセルによって上書きされます。

2048バイト。使用可能な文字数は、使用する文字のサイズ(バイト数)によって異なります。

ブール値

TrueまたはFalseのいずれかを示すフラグ。

任意の値で、新規ブール型変数を初期化できます。指定しない場合は、デフォルト値であるFalseになります。

この値は、実行時にスクリプトのアクションセルによって上書きされます。

TRUEまたはFALSEのみ。

浮動小数点数

浮動小数点値または小数。つまり、「123.45」など、小数点のある数字。

任意の値で、新規浮動小数点型変数を初期化できます。指定しない場合は、デフォルト値である0.00になります。

この値は、実行時にスクリプトのアクションセルによって上書きされます。

-1.79769313486232E308~1.79769313486232E308の範囲の10進数で設定してください。ただし、アクションセルによっては負の値や特定の閾値を超える値を使用できない場合があります。

最初の16桁だけが保存されます。例えば、12345678910111213141516は、1.234567891011121E22として保存されます。

日付

日付、時刻を/////の順番で保存するために使われる要素の構造。

任意の値で、新規日付型変数を初期化できます。指定しない場合は、空の日付になります。

この変数の要素は、実行時にスクリプトのアクションセルによって入力され、変更されます。

日付要素の値が範囲外になると(例えば、月の場合は14)、FLOWは日付全体を意味のある値に正規化します。スクリプトの日付変数の一部に予期しない値が入力された場合は、スクリプト内の操作によって日付が正規化されているかどうかを確認します。 

FLOWが日付変数の要素を正規化する方法については、「日付変数の正規化」を参照してください。

例えば、2021年4月6日の午後3時10分は、2021.4.6.15.10.0として格納されます。

アクションセルで書式指定子を使用すると、1桁の数字を2桁の数字として表示できます。例えば、書式指定子%02dを「秒」要素に適用すると、「0」秒が「00」と表示されます。(文字列をフォーマットなどの)アクションセルの中には、書式指定子で変数の書式を設定できるものがあります。

通話データ

通話中に構造化された通話データです。 

通話データを参照。

配列

特定のデータ型の複数のデータ値を含む1つの変数です。

作成時に配列変数を初期化することはできません。最初は空ですが、実行時に[配列に追加]アクションセルを使用してデータを入力できます。

50個の値(要求に応じて値を増やすことができます。地域のサポート担当者に相談してください。)

以下の「配列変数」も参照してください。

オブジェクト

構造化された複雑なデータです。

オブジェクトデータ型は、OpenAPI仕様から生成されます。管理する時は、connect storm STUDIOを使用してオブジェクト定義をFLOWにインポートしてください。「type=object」が使用されるスキーマのみ。

作成時にオブジェクト変数を初期化することはできません。その空の構造は、実行時に他のアクションセルによって入力されます。

以下の「オブジェクト変数」を参照してください。

テンプレート

エージェントにDTA上で、メールテンプレートを提供するものです。あらかじめ、次の値が記入された状態で提示されます:

宛先アドレス

送信元アドレス

CCアドレス

件名

本文

メールテンプレート変数は[変数を割り当て]アクションセルを使用して入力され、[コンタクトにルーティング]アクションセルを使用してワークフローに組み込まれます。

 

配列変数

配列変数は、異なるタイプの複数の変数を作成することなく、複数のデータ値を1つの変数に格納して操作する手段を提供します。例えば、顧客のアカウント番号、顧客名、連絡先住所、連絡先番号、VIP顧客などの顧客情報のデータ値のレコードを、connect storm DATA MANAGEMENTなどの統合したアプリケーションから取得するスクリプトを設定してみます。取得したデータを格納するために複数の文字列変数を作成せず、同じデータを1つの配列変数に格納することができます。別々の変数より、配列変数内のグループ化されたデータのほうが、検索、更新、および操作を行うことが簡単なため、より複雑なデータ駆動型ルーティングの決定を行うスクリプトを作成できます。配列が定義されるとき、配列変数のメンバーはすべて同じデータ型でなければなりません。配列は、整数型、文字列、浮動小数値型、ブール値、日付、およびオブジェクトのデータ型をサポートできます。

具体的には、5つの文字列変数を作成せずに、1つの文字列配列変数に下記のような顧客の詳細を入力することができます。

[ACC_012345, Freddie Davies, 23 Privet Drive, 07700900722, Yes]

さらに、スクリプトでは、配列変数が下記のような3つの顧客データの値で更新されることがあります:

[ACC_006456, Piers Huds, 8 Felix Lane]

FLOWは、配列変数のデータを取得および操作するための「配列」アクションセルの専用セットを提供します。これらを使用し、配列内のデータ値の数を返し、データ値の読み取り、更新、追加、削除ができます。

「配列」アクションセルでは、インデックス番号を使用し、格納されているデータ値を選択します。配列値は、最初の値から左から右へ(正のインデックス)、または最後の値から右から左へ並ぶ(負のインデックス)インデックスです。配列内の最初の値または唯一の値は常にインデックス位置0で、最後の値は常にインデックス位置-1です。以下の図では、5つの値を持つ配列のインデックスの番号を示しています。

インデックス

0

1

2

3

4

 

-5

-4

-3

-2

-1

配列

値A

値B

値C

値D

値E

 

配列のインデックスを使用すると、配列の先頭または末尾を基準にした値を選択できます。上記の図では、値Cをインデックス位置2または-3のどちらか都合の良い方にすることができます。

メモ:配列変数を別の配列変数内にネストすることはできません。

オブジェクト変数

オブジェクト変数は、構造体にさまざまなタイプの複数のデータ値を格納します。例えば、Customer1Detailsというオブジェクト変数には、下記のような特定の顧客の個人情報を格納できます。

firstName = Elroy

lastName = Keefe

age = 43

gender = Male

contactNumber1  = 07700900763

contactNumber2 = 01632960238

各項目は、オブジェクトメンバーと呼ばれ、整数型、文字列、ブール値、浮動小数点数、日付、配列、または別のオブジェクトを指定できます。上記のオブジェクト変数の例には、文字列型と整数型の6つのオブジェクトメンバーがあり、オブジェクト自体のタイプは「CustomerDetails」です。アクションセル([変数を割り当て][日付を取得][DATA MANAGEMENT]など)を使用し、オブジェクトメンバーのデータ値を入力および変更できます。

別の顧客の個人情報を格納するためにサービスが必要な場合は、「CustomerDetails」タイプの別のオブジェクト変数を作成し、Customer2Detailsなどの名前を付けることができます。「CustomerDetails」タイプのオブジェクトであることにより、同じ6つのデータメンバーに顧客2のデータが格納されます。

より複雑な構造では、データはオブジェクトサブメンバーに格納されます。例えば、「CustomerDetails」オブジェクトタイプの「CustomerFullDetails」というバリエーションは、下記のように、「address」メンバーの5つのサブメンバーに顧客の住所情報を格納できます。

firstName

lastName

address

   houseNumber

   street

   city

   postcode

   country

age

gender

contactNumber1

contactNumber2

オブジェクト変数に対応するアクションセルのプロパティフィールドで、オブジェクト変数全体を参照できます。オブジェクト変数は、RESTful APIとの間でのデータの送受信([REST API]アクションセルを参照)や、FLOWの子サービスへのデータを渡したい場合は特に便利です([スタート][FLOWサービスを実行]アクションセルを参照)。

オブジェクト変数のメンバーは、その変数型に対応する任意のアクションセルプロパティフィールドで使用できます。例えば、前述の「CustomerDetails」オブジェクトタイプの例を参照すると、オブジェクトメンバー「lastName」を文字列変数型に対応する任意のアクションセルプロパティフィールドで使用できます。

「CustomerDetails」と「CustomerFullDetails」は、オブジェクトタイプの2つのシンプルな例です。任意の数のメンバーを含むオブジェクトタイプは、さまざまなタイプのデータを格納するために定義できます。サービスでオブジェクト変数を使用する必要がある場合は、OpenAPI仕様に従ってオブジェクト変数を定義する必要があります。connect storm STUDIOユーザーガイド』の説明に従い、connect storm STUDIOを使用してFLOWにインポートできます)。

メモ:オブジェクトタイプは関連付けられたOpenAPI仕様のタイトルに従ってグループ化されます。例えば、「CustomerDetails」というオブジェクトタイプが複数のグループに表示させることができます。

メモ:御社のOpenAPI仕様書に、明示的に「object」(匿名オブジェクト)が含まれている場合について。「匿名オブジェクトの利用に際して」で説明されている回避策を織り込んだ修正をしない限り、ドキュメントをFLOWにインポートできませんのでご注意ください。

メモ:OpenAPI仕様内のオブジェクトの定義のケース(大文字と小文字区分)が、[REST API]アクションセルのレスポンスボディ内のAPIによって返されるオブジェクトのケースと一致していることを確認してください。例えば、APIがPascal Case(パスカルケース)を返すと予想される場合は、仕様書ではPascal Caseを使用してください。 

「スクリプトでの変数の使用」も参照してください。

イベントカウンター

    

イベントカウンターは遷移ルート上に置かれるエンティティで、FLOWの実行がそのルートに渡されるごとに増えます。イベントカウンターはconnect storm VIEWのライブデータソースとして使用でき、アナリストがスクリプト各部の使用状況やパフォーマンスを監視するのに役立ちます。例えば、特定のIVRオプションを選択した発信者の数、または携帯電話や固定電話を使用している発信者の数を報告できます。FLOWから送信されたカウンターイベントの表示方法については、connect storm VIEWユーザーガイド』を参照してください。

以下のタイプのイベントカウンターが使用できます。

カウンタータイプ

内容

スナップショット集計

整数。ルートが実行されるたびに、カウンターが「1」または指定された別の値だけ増え、スクリプトの実行が終了すると減ります。

投票数の積算

ルートが実行されるたびに、カウンターが「1」または指定された別の値だけ増えます。

例えば、取引金額などの値を保持する変数をインクリメントするために使用できます。

数値ストリーム

VIEWに数値が送信され、次の更新で置き換えられるまで現在の値のまま変わりません。例えば、資金調達キャンペーン中に受け取った最新の寄付金額の送信などに使用できます。

データストリーム

VIEWに文字列が送信されます。例えば、キャンペーン中にダイヤルした最後の番号の送信に使用できます。

スクリプトには、最大5つのイベントカウンターを含めることができます。(リクエストに応じて増やすことができます。地域のサポート担当者に相談してください。)

「カウンター」パネルの アラート記号 記号は、スクリプトに無効なカウンターが1つ以上存在することを示します。これは、カウンターが削除済みの変数(通常はグローバル変数)を参照している場合などに表示されます。無効なカウンターを解決するまで、スクリプトをコミットすることはできません。

「リアルタイムイベントカウンターの設定」も参照してください。