Skip to content

Propiedades de entrada persistentes

Cuando un Canvas se desencadena mediante un evento personalizado, una compra o una llamada a la API, puedes usar metadatos de la llamada a la API, el evento personalizado o el evento de compra para la personalización en cada paso del flujo de trabajo de tu Canvas. Puedes usar estas propiedades para enviar mensajes más seleccionados.

Uso de las propiedades de entrada

Las propiedades de entrada se pueden usar en Canvas basados en acciones y desencadenados por API. Estas propiedades de entrada se definen cuando un Canvas se desencadena mediante un evento personalizado, una compra o una llamada a la API. Consulta los siguientes artículos para más información:

Las propiedades pasadas desde estos objetos se pueden referenciar usando la etiqueta de Liquid canvas_entry_properties. Por ejemplo, una solicitud con "canvas_entry_properties": {"product_name": "shoes", "product_price": 79.99} podría añadir la palabra “shoes” a un mensaje agregando el Liquid {{canvas_entry_properties.${product_name}}}.

Cuando un Canvas incluye un mensaje con la etiqueta de Liquid canvas_entry_properties, los valores asociados con esas propiedades se guardarán durante toda la trayectoria del usuario en el Canvas y se eliminarán cuando el usuario salga del Canvas. Ten en cuenta que las propiedades de entrada de Canvas solo están disponibles para referencia en Liquid. Para filtrar por las propiedades dentro del Canvas, usa la segmentación por propiedades del evento en su lugar.

Actualización de Canvas para usar propiedades de entrada

Si un Canvas activo que anteriormente no incluía ningún mensaje que use canvas_entry_properties se edita para incluir canvas_entry_properties, el valor correspondiente a esa propiedad no estará disponible para los usuarios que entraron al Canvas antes de que se añadiera canvas_entry_properties al Canvas. Los valores solo se guardarán para los usuarios que entren al Canvas después de que se realice el cambio.

Por ejemplo, si inicialmente lanzaste un Canvas que no usaba ninguna propiedad de entrada el 3 de noviembre, y luego añadiste una nueva propiedad product_name al Canvas el 11 de noviembre, los valores de product_name solo se guardarían para los usuarios que entraron al Canvas a partir del 11 de noviembre.

En el caso de que una propiedad de entrada de Canvas sea nula o esté en blanco, puedes cancelar mensajes usando condicionales. El siguiente fragmento de código es un ejemplo de cómo podrías usar Liquid para cancelar un mensaje.

1
2
3
{% if canvas_entry_properties.${product_name} == blank %}
{% abort_message() %}
{% endif %}

Para leer más sobre la cancelación de mensajes con Liquid, consulta nuestra documentación de Liquid.

Propiedades de entrada globales de Canvas

Con canvas_entry_properties, puedes establecer propiedades globales que se aplican a todos los usuarios o propiedades específicas del usuario que solo se aplican al usuario especificado. La propiedad específica del usuario sustituirá a la propiedad global para ese usuario.

Ejemplo de solicitud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
curl -X POST \
-H 'Content-Type: application/json' \
-d '{
      "api_key": "a valid rest api key",
      "canvas_id": "the ID of your Canvas",
      "canvas_entry_properties": {
        "food_allergies": "none"
      },
      "recipients": [
        {
          "external_user_id": "Customer_123",
          "canvas_entry_properties": {
            "food_allergies": ["dairy", "soy"],
            "nutrition": {
              "calories_per_serving": 200,
              "serving_size_in_ounces": 4
            }
          }
        }
      ]
    }'

En esta solicitud, el valor global para “food allergies” es “none”. Para Customer_123, el valor es “dairy”. Los mensajes en este Canvas que contengan el fragmento de Liquid {{canvas_entry_properties.${food_allergies}}} se renderizarán con “dairy” para Customer_123 y “none” para el resto.

Caso de uso

Si tienes un Canvas que se desencadena cuando un usuario navega por un artículo en tu sitio de comercio electrónico pero no lo añade a su carrito, el primer paso del Canvas podría ser una notificación push preguntándole si está interesado en comprar el artículo. Podrías referenciar el nombre del producto usando {{canvas_entry_properties.${product_name}}}

El segundo paso puede enviar otra notificación push invitando al usuario a finalizar la compra si añadió el artículo a su carrito pero aún no lo ha comprado. Puedes seguir referenciando la propiedad de entrada product_name usando {{canvas_entry_properties.${product_name}}}.

New Stuff!