Saltar al contenido principal
Las variables te permiten acceder a los datos contenidos en Forms y Flows para crear lógica de negocio personalizada y automatizaciones. Algunas consideraciones básicas sobre el uso de variables son:
  • Las variables se escriben entre llaves {{ variable }}.
  • Si una variable no existe o no puede resolverse, tiene el mismo efecto que una variable undefined.
  • Puedes usar operadores de fusión de nulos para manejar variables null o undefined; por ejemplo: {{fields.foo ?? fields.bar}}.

Variables disponibles

Puede usar distintos tipos de variables para hacer referencia a los datos que recopila de los clientes con Forms y Flows, y transformarlos.
VariableSintaxisDóndeDescripción
Contexto{{context.*}}Forms / FlowsHace referencia a los datos de contexto de la transacción actual
Campos del formulario{{fields.*}}Forms / FlowsHace referencia a los datos de los campos del formulario y los campos ocultos
Variables compartidas{{vars.*}}Forms / FlowsHace referencia a los datos almacenados como variables compartidas
Salida de las acciones del flujo{{actions.*}}FlowsHace referencia a los datos de la respuesta de salida de acciones anteriores del flujo
Funciones auxiliares{{functions.*}}Forms / FlowsFunciones auxiliares para transformar datos

Variables de contexto

Los Forms y los Flows heredan automáticamente las variables de contexto de la transacción actual. Puede acceder a las siguientes variables de contexto:
  • El objeto user, con acceso a las siguientes propiedades:
    • 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
  • El objeto organization, con acceso a las siguientes propiedades:
    • organization.id
    • organization.name
    • organization.display_name
    • organization.metadata
  • El objeto client, con acceso a las siguientes propiedades:
    • client.client_id
    • client.name
  • El objeto tenant, con acceso a la siguiente propiedad:
    • tenant.name
  • El objeto transaction, con acceso a las siguientes propiedades:
    • transaction.state
    • transaction.correlation_id
  • El objeto custom_domain, con acceso a las siguientes propiedades:
    • 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"
    }
  }
}
Por ejemplo: {{context.user.user_id}} hace referencia al user_id del objeto user.
Dashboard > Forms > Flows

Variables de los campos del formulario

Las variables de campo contienen datos recopilados del usuario a partir de los campos de entrada del formulario y de los campos ocultos. Los datos de cada campo varían según el tipo de campo. Por ejemplo: {{fields.first_name}} hace referencia al valor introducido en un campo con el id first_name.
Dashboard > Actions > Forms > Form

Variables de salida de las acciones del flujo

Cuando se ejecuta una acción de flujo, genera un objeto de salida cuya respuesta puede referenciarse en acciones posteriores. Por ejemplo: {{actions.generate_otp.code}} hace referencia al code de salida de la acción con ID generate_otp.
Dashboard > Actions > Forms > Flows

Variables compartidas

Puede almacenar variables para compartirlas con Flows posteriores o incluso con componentes del formulario dentro de la misma transacción. Las variables compartidas son efímeras y están asociadas a un recorrido específico del formulario. No se puede acceder a sus valores fuera de ese recorrido. Por ejemplo, {{vars.external_id}} hace referencia al valor de una variable compartida con el ID external_id.
Dashboard > Actions > Forms > Flows
Variables compartidas:
  • son internas (del lado del servidor) y no se exponen al navegador (del lado del cliente).
  • pueden resolverse y exponerse al navegador si hace referencia a una variable compartida en un componente del formulario.
  • pueden contener información confidencial, así que tenga cuidado al acceder a una variable compartida para evitar cualquier exposición innecesaria o no intencionada.

Funciones auxiliares

Las funciones auxiliares te permiten transformar datos y realizar operaciones sencillas. Por ejemplo: {{functions.toString(fields.privacy_policies)}} transforma el valor del campo con el id privacy_policies usando la función toString().
Dashboard > Actions > Forms > Flows
Las funciones auxiliares disponibles son:
FunciónDescripciónEjemplo
toArray(value)Convierte el valor en un arreglo.{{ functions.toArray('abc') }} // ['abc']
toBoolean(value)Convierte el valor en un valor booleano.{{ functions.toBoolean(1) }} // true<br /><br />\{\{ functions.toBoolean(0) }} // false
length(value)Devuelve la longitud del valor del parámetro.{{ functions.length('auth0') }} // 5
mask(value)Enmascara un valor para evitar que se exponga en Executions.{{ functions.mask('my_awesome_secret') }} // ███
toNumber(value)Convierte el valor a un número.{{ functions.toNumber('123') }} // 123
random(min, max, [boolean])Devuelve un número aleatorio entre el mínimo y el máximo, ambos inclusive.{{ functions.random(0, 6) }} // 4 <br /><br />\{\{ functions.random(0, 6, true) }} // 3.8523497...
slice(value, start, end)Devuelve una porción de un arreglo de valores o de una cadena entre los índices de inicio y fin.{{ functions.slice( 'example', 3, 5) }} // 'mp'
toString(value)Convierte el valor a una cadena.{{ functions.toString(123) }} // '123'
substring(value, start, end)Devuelve una parte de un valor entre los índices de inicio y fin. Lea sobre las diferencias entre las funciones slice y substring{{ functions.substring( 'example’', 3, 5) }} // 'mp'
toTimestamp()Devuelve la marca de tiempo actual de UNIX.{{ functions.toTimestamp() }} // 1628761483
toTimestamp(date)Devuelve la fecha proporcionada como tiempo UNIX.{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
toTimestamp(date)Devuelve la fecha proporcionada como tiempo UNIX.{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970
toLowerCase(value)Devuelve una nueva cadena convertida a minúsculas.{{ functions.toLowerCase('JohnDoe 1234') }} // johndoe 1234
toUpperCase(value)Devuelve una nueva cadena convertida a mayúsculas.{{ functions.toUpperCase('JohnDoe 1234') }} // JOHNDOE 1234
replaceAll(value, string, replacement)Devuelve una nueva cadena con todas las coincidencias de un patrón sustituidas por un valor de reemplazo.{{ functions.replaceAll('2021-04-30', '-', '/') }} // 2021/04/30
replace(value, string, replacement)Devuelve una nueva cadena con todas las coincidencias de un patrón sustituidas por un valor de reemplazo. Si pattern es una cadena, solo se sustituirá la primera coincidencia.{{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30
split(value, separator, limit?)Devuelve una lista ordenada de subcadenas separadas por el separador.{{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']
now()Devuelve la fecha actual en formato ISO 8601.{{ functions.now() }} // 2021-04-30T10:31:28.576Z
includes(collection, item, fromIndex?)Indica si una matriz incluye un valor determinado entre sus elementos.{{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true
indexOf(collection, item, fromIndex?)Devuelve el primer índice en el que se puede encontrar un elemento dado en la matriz, o -1 si no está presente.{{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1
merge(base, value)Devuelve una matriz u objeto combinados, o concatena una cadena, según el tipo de datos base.{{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']
md5(value)Devuelve un valor con hash MD5.{{ functions.md5('auth0') }} // 7bbb597...
sha1(value)Devuelve un valor con hash SHA1.{{ functions.sha1('auth0') }} // b4ec5339...
sha256(value)Devuelve un valor con hash SHA256.{{ functions.sha256('auth0') }} // d9082bdc...
sha512(value)Devuelve un valor con hash SHA512.{{ functions.sha512('auth0') }} // c0d588069d...
uuid()Devuelve un UUID v4 aleatorio.{{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764

Prácticas recomendadas para variables

Usa ID descriptivos

Cuando agregas un campo de Form o una acción de Flow, el ID se genera automáticamente. Actualiza el ID con un valor más descriptivo para que puedas identificar la información que contiene. Por ejemplo, si creas un campo de Form que almacena el nombre del usuario, actualiza el ID a first_name.

Tenga cuidado al actualizar IDs existentes

Si una variable ya está en uso y necesita modificar el ID, identifique dónde se ha hecho referencia a ella y actualice el ID según corresponda para evitar valores no definidos o vacíos.

Verificar ejecuciones de Flow

Si observa un valor inesperado en una variable, use la vista Executions para depurarla.

Use el menú de autocompletado

El menú de autocompletado le ayuda a localizar y referenciar correctamente las variables existentes.
Dashboard > Actions > Forms > Flows
Dashboard > Actions > Forms > Form