Skip to content

Variables de contexto

Las variables de contexto son datos temporales que puedes crear y utilizar durante el recorrido de un usuario por un Canvas específico. Te permiten personalizar los retrasos, segmentar usuarios de forma dinámica y enriquecer la mensajería sin alterar permanentemente la información del perfil de usuario. Las variables de contexto solo existen dentro de la sesión de Canvas y no persisten en diferentes Canvas ni fuera de la sesión.

Cómo funcionan las variables de contexto

Las variables de contexto se pueden configurar de dos maneras:

  • A la entrada de Canvas: Cuando los usuarios entran en un Canvas, los datos del evento o del activador de la API pueden rellenar automáticamente las variables de contexto.
  • En un paso de contexto: Puedes definir o actualizar las variables de contexto manualmente dentro del Canvas añadiendo un paso de contexto.

Cada variable de contexto incluye:

  • Un nombre (como flight_time o subscription_renewal_date)
  • Un tipo de datos (como número, cadena, hora o matriz)
  • Un valor que asignas utilizando Liquid o mediante la herramienta Añadir personalización.

Una vez definida, puedes utilizar una variable de contexto en todo el Canvas haciendo referencia a ella en este formato: {{context.${example_variable_name}}}.

Por ejemplo, {{context.${flight_time}}} podría devolver la hora del vuelo programado del usuario.

Cada vez que un usuario accede al Canvas —incluso si ya ha accedido anteriormente— las variables de contexto se redefinirán en función de los últimos datos de entrada y de la configuración del Canvas. Este enfoque con estado permite que cada entrada de Canvas mantenga su propio contexto independiente, lo que permite a los usuarios tener varios estados activos dentro del mismo recorrido, al tiempo que se conserva el contexto específico de cada estado.

Por ejemplo, si un cliente tiene dos vuelos próximos, tendrá dos estados de recorrido independientes ejecutándose simultáneamente, cada uno con sus propias variables de contexto específicas del vuelo, como la hora de salida y el destino. Esto te permite enviar recordatorios personalizados sobre su vuelo de las 2 de la tarde a Nueva York, al tiempo que envías diferentes actualizaciones sobre su vuelo de las 8 de la mañana a Los Ángeles mañana, de modo que cada mensaje sea relevante para la reserva específica.

Consideraciones

Puedes definir hasta 10 variables de contexto por cada paso de contexto. Cada nombre de variable puede tener hasta 100 caracteres y solo puede contener letras, números o guiones bajos.

Las definiciones de variables de contexto pueden tener hasta 10 240 caracteres. Si pasas variables de contexto a un Canvas desencadenado por API, estas compartirán el mismo espacio de nombres que las variables creadas en un paso de contexto. Por ejemplo, si envías una variable purchased_item en el objeto de contexto del punto de conexión /canvas/trigger/send, puedes hacer referencia a ella como {{context.${purchased_item}}}. Si redefines esa variable en un paso de contexto, el nuevo valor sustituirá al valor de la API para el recorrido de ese usuario.

Puedes almacenar hasta 50 KB por paso de contexto, distribuidos en hasta 10 variables. Si el tamaño total de todas las variables de un paso supera los 50 KB, las variables que superen el límite no se evaluarán ni se almacenarán. Por ejemplo, si tienes tres variables en un paso de contexto:

  • Variable 1: 30 KB
  • Variable 2: 19 KB
  • Variable 3: 2 KB

La variable 3 no se evaluará ni almacenará porque la suma de las variables anteriores supera los 50 KB.

Tipos de datos

A las variables de contexto que se crean o actualizan en el paso se les pueden asignar los siguientes tipos de datos.

De forma predeterminada, el tipo de datos de hora está en UTC. Si utilizas un tipo de datos de cadena para almacenar un valor de hora, puedes definir la hora en una zona horaria diferente, como PST.

Por ejemplo, si envías un mensaje a un usuario el día antes de su cumpleaños, guardarías la variable de contexto como un tipo de datos de hora, ya que hay lógica Liquid asociada al envío del día anterior. Sin embargo, si envías un mensaje festivo el día de Navidad (25 de diciembre), no necesitarás hacer referencia a la hora como una variable dinámica, por lo que sería preferible utilizar un tipo de datos de cadena.

Para los tipos de datos de objeto, puedes usar la notación de punto para especificar una ruta a través de los datos. Por ejemplo, si tu paso de contexto define una variable de contexto order_summary con esta estructura:

1
2
3
4
5
{
  "shipping": {
    "carrier": "overnight"
  }
}

En un filtro de rutas de audiencia o división de decisiones, introduce la ruta como el nombre de la variable de contexto usando la notación de punto (por ejemplo, order_summary.shipping.carrier). Cuando se evalúa el filtro, Braze resuelve esa ruta al valor overnight.

En Liquid (como en un paso de Mensaje), usa {{context.${order_summary}.shipping.carrier}} en su lugar.

Uso de variables de contexto

Puedes utilizar variables de contexto en cualquier lugar donde utilices Liquid en un Canvas, como en los pasos Mensaje y Actualización de usuario, seleccionando Añadir personalización. Para los mensajes dentro de la aplicación y los Banners en los pasos de Mensaje, puedes seleccionar variables de contexto para determinar cuándo debe expirar el mensaje.

Por ejemplo, supongamos que deseas notificar a los pasajeros sobre su acceso a la sala VIP antes de su próximo vuelo. Este mensaje solo debe enviarse a los pasajeros que hayan comprado un billete de primera clase. Una variable de contexto es una forma flexible de realizar el seguimiento de esta información.

Los usuarios entrarán en el Canvas cuando compren un billete de avión. Para determinar la elegibilidad de acceso a la sala VIP, crearemos una variable de contexto llamada lounge_access_granted en un paso de contexto y, a continuación, haremos referencia a esa variable de contexto en los pasos posteriores del recorrido del usuario.

Variable de contexto configurada para realizar el seguimiento de si un pasajero cumple los requisitos para acceder a la sala VIP.

En este paso de contexto, utilizaremos {{custom_attribute.${purchased_flight}}} para determinar si el tipo de vuelo que han comprado es first_class.

A continuación, crearemos un paso de Mensaje para dirigirnos a los usuarios donde {{context.${lounge_access_granted}}} es true. Este mensaje será una notificación push que incluirá información personalizada sobre la sala VIP. En función de esta variable de contexto, los pasajeros elegibles recibirán los mensajes pertinentes antes de su vuelo.

  • Los pasajeros con billetes de primera clase recibirán: “¡Disfruta de acceso exclusivo a la sala VIP!”
  • Los pasajeros con billetes de clase business y economy recibirán: “Mejora tu vuelo y disfruta de acceso exclusivo a la sala VIP.”

Un paso de Mensaje con diferentes mensajes que enviar, dependiendo del tipo de billete de avión comprado.

Para las rutas de acción y los criterios de salida

Puedes aprovechar la comparación de filtros de propiedades con variables de contexto o atributos personalizados en estas acciones desencadenantes: Realizar evento personalizado y Realizar compra. Estos desencadenantes de acciones también admiten filtros de propiedades tanto para propiedades básicas como anidadas.

  • Al comparar con propiedades básicas, las comparaciones disponibles coincidirán con el tipo de propiedad definido por el evento personalizado. Por ejemplo, las propiedades de cadena tendrán coincidencias exactas y regex. Las propiedades booleanas serán verdaderas o falsas.
  • Al comparar con propiedades anidadas, los tipos no están predefinidos, por lo que puedes seleccionar comparaciones entre varios tipos de datos para booleanos, números, cadenas, hora y día del año, de forma similar a las comparaciones para atributos personalizados anidados. Si seleccionas un tipo de datos que no coincide con el tipo de datos real de la propiedad anidada en el momento de la comparación, el usuario no coincidirá con la ruta de acción ni con los criterios de salida.

Ejemplos de rutas de acción

La siguiente ruta de acción se configura para clasificar a los usuarios que realizaron el evento personalizado Account_Created con la propiedad básica source en la variable de contexto app_source_variable.

Un ejemplo de ruta de acción que hace referencia a una variable de contexto al realizar un evento personalizado.

La siguiente ruta de acción está configurada para hacer coincidir la propiedad básica brand del nombre de producto específico shoes con una variable de contexto promoted_shoe_brand.

Un ejemplo de ruta de acción que hace referencia a una variable de contexto al realizar una compra.

Ejemplos de criterios de salida

Los criterios de salida establecen que, en cualquier momento del recorrido del usuario por el Canvas, este saldrá del Canvas si:

  • Realiza el evento personalizado Abandonar carrito de compras, y
  • La propiedad básica Item in Cart coincide con el valor de cadena de la variable de contexto cart_item_threshold.

Criterios de salida configurados para que un usuario salga si realiza un evento personalizado basado en la variable de contexto.

Los criterios de salida establecen que, en cualquier momento del recorrido del usuario por el Canvas, este saldrá del Canvas si:

  • Realiza una compra específica para el nombre de producto “book”, y
  • La propiedad anidada “loyalty_program” de esa compra es igual al atributo personalizado “VIP” del usuario.

Criterios de salida configurados para que un usuario salga si realiza una compra.

Establecer una expiración

Para los Banners y los mensajes dentro de la aplicación en un paso de Mensaje de Canvas, selecciona Una duración después de que el paso esté disponible para la expiración, luego activa Personalizar duración para controlar la ventana de disponibilidad desde una variable de contexto, por ejemplo, para que coincida con la duración de una promoción o reserva de un paso de contexto.

Personalizar duración se aplica a esa opción de expiración basada en duración. Si en su lugar eliges En una fecha y hora específicas, configura la expiración usando los controles de fecha y hora.

Retrasos en las rutas de acción

En un paso de rutas de acción, en Ventana de evaluación, activa Personalizar retraso para establecer cuánto tiempo se retiene a los usuarios en el paso a partir de una variable de contexto. Usa esto cuando el período de espera deba variar por usuario según detalles como el nivel o la región.

Filtros de variables de contexto

Puedes crear filtros que utilicen variables de contexto previamente declaradas en los pasos de rutas de audiencia y división de decisiones.

Las variables de contexto se declaran y solo son accesibles en el ámbito de un Canvas, lo que significa que no se puede hacer referencia a ellas en segmentos. Los filtros de variables de contexto funcionan de manera similar en los pasos de rutas de audiencia y división de decisiones: los pasos de rutas de audiencia representan múltiples grupos, mientras que los pasos de división de decisiones representan decisiones binarias.

Ejemplo de paso de división de decisiones con la opción de crear un filtro con una variable de contexto.

Al igual que las variables de contexto de Canvas tienen tipos predefinidos, las comparaciones entre variables de contexto y valores estáticos deben tener tipos de datos coincidentes. El filtro de variable de contexto permite realizar comparaciones entre múltiples tipos de datos para booleanos, números, cadenas, hora y día del año, de forma similar a las comparaciones para atributos personalizados anidados.

Aquí tienes un ejemplo de un filtro de variable de contexto que compara la variable de contexto product_name con la regex /braze/.

Una configuración de filtro para la variable de contexto "product_name" que coincida con la regex "/braze/".

Comparación con variables de contexto o atributos personalizados

Al activar la opción Comparar con una variable de contexto o un atributo personalizado, puedes crear filtros de variables de contexto que se comparen con variables de contexto definidas previamente o con atributos personalizados del usuario. Esto puede resultar útil para realizar comparaciones dinámicas por usuario, como el context desencadenado por API, o para condensar una lógica de comparación compleja definida a través de variables de contexto.

Supongamos que deseas enviar un recordatorio personalizado a los usuarios tras un periodo dinámico de inactividad, lo que incluye a cualquier persona que no haya iniciado sesión en tu aplicación en los últimos tres días y que debería recibir un mensaje.

Tienes una variable de contexto re_engagement_date que se define como {{now | minus: 3 | append: ' days'}}. Ten en cuenta que 3 days puede ser una cantidad variable que también se almacena como un atributo personalizado del usuario. Por lo tanto, si re_engagement_date está después de last_login_date (almacenado como un atributo personalizado en el perfil de usuario), se les enviará un mensaje.

Una configuración de filtro con atributos personalizados como tipo de personalización para la variable de contexto "re_engagement_date" después del atributo personalizado "last_login_date".

El siguiente filtro compara la variable de contexto reminder_date para que sea anterior a la variable de contexto appointment_deadline. Esto puede ayudar a agrupar usuarios en un paso de ruta de audiencia para determinar si deben recibir recordatorios adicionales antes de la fecha límite de su cita.

Una configuración de filtro con variables de contexto como tipo de personalización para la variable de contexto "reminder_date" en la variable de contexto "appointment_deadline".

Estandarización de la coherencia de las zonas horarias

Aunque la mayoría de las propiedades del evento que utilizan el tipo de marca de tiempo ya están en UTC en Canvas, hay algunas excepciones. Con la incorporación de Canvas Context, todas las propiedades predeterminadas del evento con marca de tiempo en los Canvas basados en acciones estarán siempre en UTC. Este cambio forma parte de un esfuerzo más amplio por garantizar una experiencia más predecible y coherente al editar los pasos y mensajes en Canvas. Ten en cuenta que este cambio afectará a todos los Canvas basados en acciones, independientemente de si el Canvas específico utiliza un paso de contexto o no.

Artículos relacionados

New Stuff!