Passer au contenu principal
Les variables vous permettent d’accéder aux données contenues dans Forms et Flows afin de créer une logique métier personnalisée et des automatisations. Voici quelques points de base à retenir sur l’utilisation des variables :
  • Les variables sont entourées d’accolades {{ variable }}.
  • Si une variable n’existe pas ou ne peut pas être résolue, l’effet est le même qu’avec une variable undefined.
  • Vous pouvez utiliser des opérateurs de coalescence des nuls pour gérer les variables null ou undefined, par exemple : {{fields.foo ?? fields.bar}}.

Variables disponibles

Vous pouvez utiliser différents types de variables pour référencer et transformer les données que vous recueillez auprès des clients avec Forms et Flows.
VariableSyntaxeDescription
Contexte{{context.*}}Forms / FlowsFaire référence aux données de contexte de la transaction en cours
Champs de formulaire{{fields.*}}Forms / FlowsFaire référence aux données de vos champs de formulaire et de vos champs masqués
Variables partagées{{vars.*}}Forms / FlowsFaire référence aux données stockées dans des variables partagées
Résultat des actions de flux{{actions.*}}FlowsFaire référence aux données de sortie des actions de flux précédentes
Fonctions utilitaires{{functions.*}}Forms / FlowsFonctions utilitaires servant à transformer les données

Variables de contexte

Les formulaires et les flux héritent automatiquement des variables de contexte de la transaction en cours. Vous pouvez accéder aux variables de contexte suivantes :
  • L’objet user, qui donne accès aux propriétés suivantes :
    • 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
  • L’objet organization, qui donne accès aux propriétés suivantes :
    • organization.id
    • organization.name
    • organization.display_name
    • organization.metadata
  • L’objet client, qui donne accès aux propriétés suivantes :
    • client.client_id
    • client.name
  • L’objet tenant, qui donne accès à la propriété suivante :
    • tenant.name
  • L’objet transaction, qui donne accès aux propriétés suivantes :
    • transaction.state
    • transaction.correlation_id
  • L’objet custom_domain, qui donne accès aux propriétés suivantes :
    • custome_domain.domain
    • custome_domain.domain_metadata
{
  "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..."
  },
  "custom_domain": {
    "domain": "example.com",
    "domain_metadata": {
      "key": "value"
    }
  }
}
Par exemple :  {{context.user.user_id}} fait référence à user_id de l’objet user.
Dashboard > Forms > Flows

Variables des champs du formulaire

Les variables de champ contiennent les données recueillies auprès de l’utilisateur à partir des champs de saisie du formulaire, ainsi que les données des champs masqués. Les données de chaque champ varient selon son type. Par exemple : {{fields.first_name}} fait référence à la valeur saisie dans un champ dont l’ID est first_name.
Dashboard > Actions > Forms > Form

Variables de sortie des actions du Flow

Lorsqu’une action de Flow est exécutée, elle génère un objet de sortie auquel il est possible de faire référence dans les actions suivantes. Par exemple : {{actions.generate_otp.code}} fait référence au code de sortie de l’action dont l’ID est generate_otp.
Dashboard > Actions > Forms > Flows

Variables partagées

Vous pouvez stocker des variables pour les partager avec les flux suivants, ou même avec des composants de formulaire dans la même transaction. Les variables partagées sont éphémères et associées à un parcours de formulaire précis. Leurs valeurs ne peuvent pas être consultées en dehors de ce parcours. Par exemple : {{vars.external_id}} fait référence à la valeur d’une variable partagée ayant pour ID external_id.
Dashboard > Actions > Forms > Flows
Les variables partagées :
  • sont internes (côté serveur) et ne sont pas exposées au navigateur (côté client) ;
  • peuvent être résolues et exposées au navigateur si vous référencez une variable partagée dans un composant de formulaire ;
  • peuvent contenir des renseignements sensibles; faites donc preuve de prudence lorsque vous accédez à une variable partagée afin d’éviter toute exposition inutile ou involontaire.

Fonctions utilitaires

Les fonctions utilitaires vous permettent de transformer des données et d’effectuer des opérations simples. Par exemple : {{functions.toString(fields.privacy_policies)}} permet de transformer la valeur du champ dont l’ID est privacy_policies à l’aide de la fonction toString().
Dashboard > Actions > Forms > Flows
Les fonctions utilitaires disponibles sont :
FonctionDescriptionExemple
toArray(value)Convertit la valeur en tableau.{{ functions.toArray('abc') }} // ['abc']
toBoolean(value)Convertit la valeur en valeur booléenne.{{ functions.toBoolean(1) }} // true<br /><br />\{\{ functions.toBoolean(0) }} // false
length(value)Renvoie la longueur de la valeur du paramètre.{{ functions.length('auth0') }} // 5
mask(value)Masque une valeur pour éviter qu’elle soit exposée dans Executions.{{ functions.mask('my_awesome_secret') }} // ███
toNumber(value)Convertit la valeur en nombre.{{ functions.toNumber('123') }} // 123
random(min, max, [boolean])Renvoie un nombre aléatoire compris entre les valeurs minimales et maximales incluses.{{ functions.random(0, 6) }} // 4 <br /><br />\{\{ functions.random(0, 6, true) }} // 3.8523497...
slice(value, start, end)Renvoie une portion d’un tableau de valeurs ou d’une chaîne comprise entre les index de début et de fin.{{ functions.slice( 'example', 3, 5) }} // 'mp'
toString(value)Convertit la valeur en chaîne.{{ functions.toString(123) }} // '123'
substring(value, start, end)Retourne une partie d’une valeur comprise entre les indices de début et de fin. Consultez les différences entre les fonctions slice et substring{{ functions.substring( 'example’', 3, 5) }} // 'mp'
toTimestamp()Renvoie l’horodatage UNIX actuel.{{ functions.toTimestamp() }} // 1628761483
toTimestamp(date)Renvoie la date fournie au format UNIX.{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
toTimestamp(date)Renvoie la date fournie au format UNIX.{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
toLowerCase(value)Renvoie une nouvelle chaîne convertie en minuscules.{{ functions.toLowerCase('JohnDoe 1234') }} // johndoe 1234
toUpperCase(value)Renvoie une nouvelle chaîne convertie en majuscules.{{ functions.toUpperCase('JohnDoe 1234') }} // JOHNDOE 1234
replaceAll(value, string, replacement)Renvoie une nouvelle chaîne dans laquelle toutes les occurrences d’un motif sont remplacées par une valeur de substitution.{{ functions.replaceAll('2021-04-30', '-', '/') }} // 2021/04/30
replace(value, string, replacement)Renvoie une nouvelle chaîne dans laquelle toutes les occurrences d’un motif sont remplacées par une valeur de substitution. Si pattern est une chaîne, seule la première occurrence sera remplacée.{{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30
split(value, separator, limit?)Renvoie une liste ordonnée de sous-chaînes délimitées par le séparateur.{{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']
now()Renvoie la date actuelle au format ISO 8601.{{ functions.now() }} // 2021-04-30T10:31:28.576Z
includes(collection, item, fromIndex?)Indique si un tableau contient une valeur donnée parmi ses éléments.{{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true
indexOf(collection, item, fromIndex?)Renvoie le premier indice auquel un élément donné se trouve dans le tableau, ou -1 s’il n’est pas présent.{{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1
merge(base, value)Renvoie un tableau ou un objet fusionné, ou concatène une chaîne selon le type de données de base.{{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']
md5(value)Renvoie une valeur hachée avec MD5.{{ functions.md5('auth0') }} // 7bbb597...
sha1(value)Renvoie une valeur hachée en SHA1.{{ functions.sha1('auth0') }} // b4ec5339...
sha256(value)Renvoie une valeur hachée en SHA256.{{ functions.sha256('auth0') }} // d9082bdc...
sha512(value)Renvoie une valeur hachée en SHA512.{{ functions.sha512('auth0') }} // c0d588069d...
uuid()Renvoie un UUID v4 aléatoire.{{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764

Bonnes pratiques pour les variables

Utilisez des ID explicites

Lorsque vous ajoutez un champ de Form ou une action de Flow, l’ID est généré automatiquement. Modifiez l’ID pour lui donner une valeur plus descriptive afin de pouvoir repérer l’information qu’il contient. Par exemple, si vous créez un champ de Form qui stocke le prénom de l’utilisateur, remplacez l’ID par first_name.

Faites preuve de prudence lorsque vous mettez à jour des ID existants

Si une variable est déjà utilisée et que vous devez modifier l’ID, repérez où vous y faites référence et mettez cet ID à jour en conséquence afin d’éviter des valeurs non définies ou vides.

Vérifier les exécutions du Flow

Si vous voyez une valeur de variable inattendue, utilisez la vue Executions pour résoudre les problèmes liés à la variable.

Utilisez le menu d’autocomplétion

Le menu d’autocomplétion vous aide à trouver et à référencer correctement les variables existantes.
Dashboard > Actions > Forms > Flows
Dashboard > Actions > Forms > Formulaire