変数とヘルパー関数

変数を使用すると、フォームとフローに含まれるデータにアクセスして、カスタムビジネスロジックと自動化を作成できます。

変数を使用する際の基本的な考慮事項は次のとおりです。

  • 変数は中括弧{{ variable }}で囲みます。

  • 変数が存在しないか解決できない場合は、未定義の変数と同じ効果があります。

  • nullまたは未定義の変数を処理するには、nullish演算子を使用できます。例:{{fields.foo ?? fields.bar}}

利用できる変数

フォームとフローを使用して顧客から収集したデータを参照および変換するには、さまざまな種類の変数を使用できます。

変数 構文 場所 説明
Context(コンテキスト) {{context.*}} フォーム/フロー 現在のトランザクションのリファレンスコンテキストデータ
Form fields(フォームフィールド) {{fields.*}} フォーム/フロー フォームフィールドと非表示フィールドからのリファレンスデータ
Shared variables(共有変数) {{vars.*}} フォーム/フロー 共有変数として保存されたリファレンスデータ
Flow actions output(フローアクション出力) {{actions.*}} フロー 前のフローアクションの出力応答からのリファレンスデータ
Helper functions(ヘルパー関数) {{functions.*}} フォーム/フロー データ変換のためのヘルパー関数

コンテキスト変数

フォームとフローは、現在のトランザクションからコンテキスト変数を自動的に継承します。次のコンテキスト変数にアクセスできます。

  • userオブジェクト。以下に挙げたプロパティにアクセスできます。

    • user.user_id

    • user.username

    • user.name

    • user.given_name

    • user.family_name

    • user.nickname

    • user.email

    • user.email_verified

    • user.phone_number

    • user.phone_verified

    • user.picture

    • user.user_metadata

    • user.app_metadata

    • user.created_at

    • user.updated_at

    • user.last_password_reset

    • user.identities

  • 次のプロパティにアクセスできる組織オブジェクト。

    • organization.id

    • organization.name

    • organization.display_name

    • organization.metadata

  • 次のプロパティにアクセスできるクライアントオブジェクト。

    • client.client_id

    • client.name

  • 次のプロパティにアクセスできるテナントオブジェクト。

    • tenant.name

  • 次のプロパティにアクセスできるトランザクションオブジェクト。

    • transaction.state

/

{
  "user": {
    "user_id": "auth0|658409...",
    "name": "ana@travel0.com",
    "nickname": "ana",
    "email": "ana@travel0.com",
    "email_verified": true,
    "picture": "https://s.gravatar.com/avatar/8eb1b522f6...",
    "user_metadata": {},
    "app_metadata": {},
    "created_at": "2023-12-21T09:46:40.487Z",
    "updated_at": "2024-05-07T10:44:26.271Z",
    "last_password_reset": "2023-12-21T09:49:08.932Z",
    "identities": [
      {
        "user_id": "6584...",
        "isSocial": false,
        "provider": "auth0",
        "connection": "Username-Password-Authentication"
      }
    ]
  },
  "client": {
    "client_id": "xpeg5...",
    "name": "My App"
  },
  "tenant": {
    "name": "tenant-testing"
  },
  "transaction": {
    "state": "hKFo2SBId2M0..."
  }
}

Was this helpful?

/

例:  {{context.user.user_id}}は、ユーザーオブジェクトのuser_idを参照します。

Dashboard > Forms > Flows

フォームフィールド変数

フィールド変数には、フォームの入力フィールドからユーザーから収集されたデータと、非表示フィールドのデータが含まれます。各フィールドのデータは、フィールドタイプによって異なります。例:{{fields.first_name}}は、IDがfirst_nameのフィールドの入力値を参照します。

Dashboard > Actions > Forms > Form

フロー出力アクション変数

フローアクションが実行されると、後続のアクションで参照できる出力オブジェクト応答が生成されます。例:{{actions.generate_otp.code}}は、IDがgenerate_otpのアクションの出力コードを参照します。

Dashboard > Actions > Forms > Flows

共有変数

後続のフローと共有する変数、または同じトランザクション内のフォームコンポーネントと共有する変数を保存できます。共有変数は一時的なものであり、特定のフォームジャーニーに関連付けられています。その値には、そのジャーニーの外部からはアクセスできません。例:{{vars.external_id}}は、IDがexternal_idの共有変数の値を参照します。

Dashboard > Actions > Forms > Flows

ヘルパー関数

ヘルパー関数を使用すると、データを変換して簡単な操作を実行できます。例:{{functions.toString(fields.privacy_policies)}}は、toString()関数を使用して、IDprivacy_policiesのフィールドの値を変換します。

Dashboard > Actions > Forms > Flows

使用可能なヘルパー関数は次のとおりです。

関数 説明
toArray(value) 値を配列に変換します {{ functions.toArray('abc') }} // ['abc']
toBoolean(value) 値をブール値に変換します {{ functions.toBoolean(1) }} // true

{{ functions.toBoolean(0) }} // false
length(value) パラメーター値の長さを返します {{ functions.length('auth0') }} // 5
mask(value) 実行時に公開されないように値をマスクします {{ functions.mask('my_awesome_secret') }} // ███
toNumber(value) 値を数値に変換します {{ functions.toNumber('123') }} // 123
random(min, max, [boolean]) 最小値と最大値の間の乱数を返します {{ functions.random(0, 6) }} // 4

{{ functions.random(0, 6, true) }} // 3.8523497...
slice(value, start, end) 開始インデックスと終了インデックスの間の値配列または文字列のセクションを返します {{ functions.slice( 'example', 3, 5) }} // 'mp'
toString(value) 値を文字列に変換します {{ functions.toString(123) }} // '123'
substring(value, start, end) 開始インデックスと終了インデックスの間の値のセクションを返します。sliceとsubstring関数の違いについてお読みください {{ functions.substring( 'example’', 3, 5) }} // 'mp'
toTimestamp() 現在のUNIXタイムスタンプを返します {{ functions.toTimestamp() }} // 1628761483
toTimestamp(date) 指定された日付をUNIX時間で返します {{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
toTimestamp(date) 指定された日付をUNIX時間で返します {{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
replaceAll(value, string, replacement) パターンに一致するすべての部分を置換文字列に置き換えた新しい文字列を返します。 {{ functions.replaceall('2021-04-30', '-', '/') }} // 2021/04/30
replace(value, string, replacement) パターンに一致するすべての部分を置換文字列に置き換えた新しい文字列を返します。パターンが文字列の場合、最初の出現のみが置換されます。 {{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30
split(value, Separator, limit?) セパレーターで区切られた部分文字列の順序付きリストを返します。 {{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']
now() 現在の日付をISO8601形式で返します。 {{ functions.now() }} // 2021-04-30T10:31:28.576Z
includes(collection, item, fromIndex?) 配列のエントリに特定の値が含まれているかどうかを返します。 {{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true
indexOf(collection, item, fromIndex?) 配列内で特定の要素が見つかる最初のインデックスを返します。存在しない場合は-1を返します。 {{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1
merge(base, value) 基本データ型に応じて、結合された配列、オブジェクト、または連結された文字列を返します。 {{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']
md5(value) MD5 ハッシュ値を返します。 {{ functions.md5('auth0') }} // 7bbb597...
sha1(value) SHA1 ハッシュ値を返します。 {{ functions.sha1('auth0') }} // b4ec5339...
sha256(value) SHA256ハッシュ値を返します。 {{ functions.sha256('auth0') }} // d9082bdc...
sha512(value) SHA512ハッシュ値を返します。 {{ functions.sha512('auth0') }} // c0d588069d...
uuid() ランダムなv4 UUIDを返します {{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764

変数のベストプラクティス

意味のあるIDを使用する

フォームフィールドまたはフローアクションを追加すると、IDが自動的に生成されます。

IDをよりわかりやすい値に更新して、含まれる情報を識別できるようにします。たとえば、ユーザーの名を保存するフォームフィールドを作成する場合は、IDをfirst_nameに更新します。

既存のIDを更新するときは注意してください

変数がすでに使用されており、IDを変更する必要がある場合は、参照した場所を特定し、それに応じてIDを更新して、未定義または空の値にならないようにします。

フロー実行を確認する

予期しない変数値が表示された場合は、実行ビューを使用して変数のトラブルシューティングを行います。

オートコンプリートメニューを使用する

オートコンプリートメニューを使用すると、既存の変数を見つけて適切に参照できます。

Dashboard > Actions > Forms > FlowsDashboard > Actions > Forms > Form