組み込み関数
Scenario Builder アプリケーションでは、いくつかの組み込み関数を使用することができます。このページでは、そのような関数について説明し、その使用例を紹介します。
関数の呼び出し方法
テキストフィールドから関数を呼び出すには、関数名の先頭に等号を付けます。例:=random(100)
関数の説明
applytimezone(UTC タイムスタンプ, タイムゾーンの名前)
UTC タイムスタンプのパラメータとタイムゾーンのパラメータが指定された場合、この関数はタイムゾーンのオフセットを秒単位で返します。
この関数は、インバウンド対話における顧客が特定の事業所の営業状況(営業中か休業中か)を確認する必要がある場合や、アウトバンドキャンペーン中にウェブフォームからの見込み客に連絡できるタイミングを判断する場合などに役立ちます。
使用方法
UTC_timestamp パラメータには、特定の値(例:1609459200)を使用することもできますが、 now() 関数をパラメータとして使用することも可能です。オフセットの算出はUTCタイムスタンプの時刻に基づいており、現在の時刻(標準時や夏時間(DST)など)には依存しない点にご注意ください。
例:
=applytimezone(now(),"America/Los_Angeles")
now() が「1609459200」を返し、「America/Los_Angeles」のオフセットが「-28800」である場合、最終的な結果は次のようになります:
1609430400
具体的には、この関数は、第1引数で指定された秒数に、第2引数で指定されたタイムゾーン名に対応するタイムゾーンオフセットを加えた値を返します。なお、返されるオフセットは、第1引数の値にも依存する場合がある点にご注意ください(つまり、夏時間の切り替えの可能性を考慮するためです)。
base64encode(string)
入力された文字列をBase64エンコーディング方式でエンコードします
base64decode(string)
Base64でエンコードされた文字列を、エンコードされていない文字列にデコードします
email_remove_quoted_content_html(html_content, replacement_string, mode)
HTMLメールの本文から引用された(前の)メッセージを消去します。これは、メール履歴を処理して各メッセージから新規コンテンツのみを抽出する際に役立ちます。
- パラメータ
-
- html_content - メールのHTMLコンテンツです。
- replacement_string - 消去された引用コンテンツを置き換える文字列です。
- mode - 消去方法を指定する整数です:
- 1: div.gmail_quote エレメントが存在する場合、そのエレメント内のコンテンツを置き換えます。存在しない場合は、最初の「blockquote」タグと最後の「blockquote」タグの間のすべての HTML を置き換えます。
- 2: 最後の「blockquote」タグ内のコンテンツのみを置き換えます。
email_remove_quoted_content_plaintext(plaintext_content, replacement_string, mode)
プレーンテキストのメール本文から、引用された(前の)メッセージを消去します。これは、メール履歴を処理して各メッセージから新規コンテンツのみを抽出する際に役立ちます。
- パラメータ
-
- plaintext_content - メールのプレーンテキストコンテンツです。
- replacement_string - 消去された引用コンテンツを置き換える文字列です。
- mode - 消去方法を指定する整数です:
- 1: 「>」(または空白の後に「>」)で始まる最初の行から、そのような行の最後までのすべての引用コンテンツを消去します。
- 2: 「>」(または空白の後に「>」)で始まる連続した行の最後のブロックのみを消去します。
escapeJSON()
(非推奨です。代わりに使用してください) 変数展開によるJSONのエスケープご利用ください)
JSONをテキストフィールドとして別のJSONに追加する前に、JSON式内に含まれる制御文字やその他の特殊文字をエスケープします。この関数の使用方法の一つとして、「変数の設定」ブロックを使用して、各変数をJSONに含める前に個別にJSONエスケープを行う方法があります。 関連項目 変数の展開時のJSONエスケープ.
例 1
文字列リテラルでこの関数を使用する場合: =escapeJSON('{"firstName":"John", "lastName":"Doe"}')
例 2
JSON変数(つまり、FetchURLブロックやZendesk、Salesforce.com、その他CRM検索ブロックから受け取ったデータ)でこの関数を使用する場合: =escapeJSON('$(varJSON)')
たとえば、FetchURLブロックがJSONオブジェクトを受信し、それが変数varJSONに格納された場合、実際のコンテンツは以下のようになります: { "firstName": "John", "lastName": "Doe" }
escapeJSON() 関数を適用すると、次のようになります: =escapeJSON('$(varJSON)')
その結果は次のようになります: {\"firstName\":\"John\",\"lastName\":\"Doe\"}
formatdatetime(int unixtimestamp, string フォーマット)
フォーマット引数で指定された形式に従って時刻をフォーマットします。この形式はJavaの形式と同じです SimpleDateFormat
で指定された形式と同じです。
例:
"yyyy-MM-dd'T'HH:mm'Z'"
を指定すると、2012-07-20T20:45:44.0973928Z
となります
formatduration(秒単位の期間)
指定された秒単位の duration を、MM:SS
または HHH:MM:SS
形式に変換します。出力として、フォーマットされた文字列を生成します。
例:
formatduration(121)
'は'「02:01」を
返します
hash("hash_function","メッセージ","フォーマット")
この関数を使用すると、メッセージ(任意の文字列)をハッシュ値に変換することができます。
hash_function には、以下のハッシュアルゴリズムの値が指定可能です:
- MD5
- SHA-1
- SHA-256
「フォーマット」には、以下の値が指定可能です:
- base64
- hex
hash_function または フォーマット のいずれかの値が、上記で指定された有効な値のリストと適合しない場合、この関数は空の文字列を返します。
例
次のように関数を呼び出します:
=hash("SHA-256","$(item.from)","hex")
次のような結果が返されます:
0ffe885acd9763ca3ff08c30c9db1807c63689983ecd205b99a6a4f4b5c4ed1c
hex(string)
入力された文字列を16進数(位置表記法)に変換します。ASCIIエンコードされた文字列の場合、この関数は非ASCII文字(1~255)をスペースに置換します。
hmac(hash_function, key, メッセージ)
MD5、SHA-1、および SHA-256 用の認証ハッシュ (HMAC) を作成します。ここで、Hash_function = (“MD5” | “SHA-1” | “SHA-256”) となります。戻り値は、Base64 エンコードされたハッシュを含む文字列です。
length(string)
文字列に含まれる文字数を返します。
lowercase(string)
文字列内のすべての文字を小文字に変換します。この関数は変数と一緒に使用できます。
例:
=lowercase("AbCdEfG") は "abcdefg" を返します。
now()
Unix タイムスタンプ(つまり、1970年1月1日 00:00:00 UTC からの経過秒数)を返します。
parsedatetime(文字列 datetime, 文字列 フォーマット)
指定された日時を Unix フォーマット(すなわち、1970年1月1日 00:00:00 UTC からの経過秒数)で返します。日時の入力は、ICU の Java SimpleDateFormat.
random(max)
整数のパラメータを受け取り、設定された範囲(つまり、0 から「max」として定義された数値の 1 未満までの値)のランダムな整数を返します。この関数を使用すると、ランダムな割合でアンケートを開始することができます。
例:
=random(100)
は、0 から 99 までの整数を返します(つまり、合計 100 個の整数です)。
この関数の使用例については、セクション シナリオ作成演習.
replace(string, search_pattern, replace_pattern, flags)
入力文字列内で検索と置換を行います。置換処理が完了した後、修正された文字列を返します。
パラメータ:
- string - 検索対象の入力文字列。
- この引数に変数を使用する場合は、 の「escapejson」変数パラメータを使用してください を使用してください。
- search_pattern - 文字列引数と適合する正規表現パターンです。サポートされているパターンのリストは、以下の「パターンの種類」の表をご参照ください。
- 正規表現パターン内の二重バックスラッシュ(\\) にご注意ください。引用符(") や改行記号(\n)をリテラルとして挿入する場合は、単一のバックスラッシュ(\)でエスケープする必要があります。
- 文字のグループを
()で使用することで、キャプチャグループを指定できます。このキャプチャグループは、replace_pattern 内でバックリファレンスを使用して参照可能です。ここで、\\1 は最初のキャプチャグループ、\\2 は 2 番目のキャプチャグループ、というように続きます。例えば、fullname 変数から最初の単語をキャプチャするには:=replace("$(fullname,escapejson)","(.*?)\\s+(.*?)","\\1","i")
- search_pattern の先頭に (*UCP) を付けることで、\\d(数字)および \\w(単語)パターンが Unicode 文字に適合するよう設定できます。既定では、\\d および \\w は ASCII 文字にのみ適合します。 たとえば、`fullname`変数にUnicode文字が含まれている場合でも、その最初の単語をキャプチャするには:
=replace("$(fullname,escapejson)","(*UCP)(\\w+)\\s+(\\w+)","\\1","i")
- replace_pattern - 検索パターンに適合したテキストの代わりに挿入するテキストです。\\1 ~ \\9 を使用して、search_pattern で定義されたキャプチャされた文字グループを後方参照することができます。
- flags - 以下のフラグを 1 つ以上指定します:
- i – 適合の判定時に大文字と小文字を区別しない
- g – 最初の一適合だけでなく、すべての一適合を置換します。例:
replace("a8 d8","8","c","")は、"ac d8"を返しますreplace("a8 d8","8","c","g")の結果は"ac dc"となります
round(floating_number, precision)
小数点以下の桁数を <precision> 桁に丸めます。結果は引き続き浮動小数点数となります。
stripnondigits(文字列)
文字列から数字以外の文字を消去し、0 から 9 までの数字、および * と # の記号のみを残します。
例:
stripnondigits("123abc456")
は "123456"
を返します
titlecase(string)
この関数は、文字列をタイトルケース(つまり、各単語の頭文字を大文字にする)に変換します。
tostring(整数)
この関数は、整数を文字列に変換します。
例:
tostring(-2+1)
は、
文字列として「-1」
を返すはずです
unhex(文字列)
この関数は、ASCII エンコードされた 16 進文字列を、エンコードされていない文字列に変換します。文字列に 0~9、a~z、A~Z、またはその他空白以外の文字が含まれている場合、空の文字列が返されます。なお、以下の例外は無視されますのでご注意ください:
- \0x9
- \0xd
- \0xa
- \x20
また、文字列に含まれる有効文字の数が偶数でない場合、空の文字列が返されます。
例
次のように関数を呼び出します:
=unhex("7b227573654964223a2022553230366432356332656136626438376331373635353630396131633337636238227d")
以下の結果が返されます:
{"userId": "U206d25c2ea6bd87c17655609a1c37cb8"},Abc.123(zzz)
uppercase(文字列)
文字列内のすべての文字を大文字に変換します。この関数は変数とともに使用できます。
例:
「$(item.from)」が「user_name」の場合、=uppercase("$(item.from)")
は「USER_NAME」
を返します。
urlencode(文字列)
文字列をURLエンコードし、特殊文字を %dd の表記で置き換えます。これは、許可された文字に明示的に含まれていないすべての文字を置き換える、保守的な実装です。
validatePAN(string)
入力されたプライマリアカウント番号(PAN)(すなわちクレジットカード番号)の妥当性を検証します。番号の長さが10桁から19桁の範囲内であるかを確認し、 ルーンチェックに検証に合格した場合、番号が有効であれば1を、無効であれば0を返します。
注:入力された番号が「2014」または「2149」で始まる場合(ダイナース・エンルート・クラブ・カード)、ルーンチェックは実行されません。
validateCCExpirationDate(string)
4桁のクレジットカードの有効期限を検証します。日付は MMYY(4桁)の形式である必要があります。最初の2桁は01から12(月)、最後の2桁は00から99(年)の範囲である必要があります。
この関数は有効期限を検証し、データが有効な場合は 1 を、無効な場合は 0 を返します。
注:一部の決済処理業者は期限切れのカードでも決済を受け付ける場合があるため、この関数は指定された日付と現在の日付との照合は行いません。
validateCCV(string)
クレジットカードの CCV を検証します。データが有効な場合は 1 を、無効な場合は 0 を返します。
3 桁および 4 桁の CCV 番号の両方が認識されます。4 桁の値は、Amex について有効であると認識されます(つまり、前に入力された PAN の分析に基づきます)。3 桁の値は、その他すべてのカードについて有効であると認識されます。
パターンの種類
| パターン | 説明 |
| ^ | バッファの先頭と適合 |
| $ | バッファの末尾に適合 |
| () | グループ化と部分文字列のキャプチャ |
| […] | 指定された文字セットに含まれる任意の文字に適合 |
| [^…] | 指定された文字セットに含まれない任意の文字を適合させる |
| \\s | 空白文字に適合します |
| \\S | 空白以外の文字に適合します |
| \\d | 10進数の数字に適合させる |
| \\D | 10進数の数字以外の文字に適合します |
| \\w | 英数字またはアンダースコアに適合します |
| \\W | 英数字でもアンダースコアでもない任意の文字に適合します |
| \\r | キャリッジリターンに適合します |
| \\n | 改行に適合します |
| + | 1回以上適合させる(貪欲) |
| +? | 1回以上適合(非貪欲) |
| * | 0回以上適合(貪欲) |
| *? | 0回以上適合(非貪欲) |
| ? | 0回または1回適合 |
| \\meta | メタ文字のいずれか1つに適合します:^$().[*+?\ |