Vincular dos tablas de interacciones

Una tabla de interacciones te permite almacenar datos puntuales que se registrarán cada vez que un perfil interactúe con tu marca. Según el contexto, las interacciones se estructurarán en dos niveles distintos.

Tomemos el ejemplo de un pedido realizado en una tienda online. El perfil del cliente podría haber enviado varios artículos a su carrito antes de hacer el pedido. La interacción por tanto se podría descomponer en:

  • El pedido, incluyendo el número de pedido, el importe total, etc.

  • Las líneas de pedido en las que aparecerán todos los productos del pedido, la cantidad, el precio de cada uno, etc.

Esta será también la estructura de los carritos abandonados, indicando cada artículo en detalle, o los tiques de compra, con las distintas líneas del tique, etc.

Representación en Actito

En Actito, esta estructura en dos niveles se traducirá en dos tablas de interacciones diferentes.

images/download/attachments/631603792/image2020-2-4_14-10-7.png

Dado que la tabla de perfiles es la piedra angular del modelo de datos de Actito, las tablas de interacciones estarán siempre vinculadas a la tabla de perfiles. Es el enlace principal. Cada entrada de las dos tablas estará siempre vinculada a un perfil.

No obstante, es posible definir un enlace adicional entre estas dos tablas, de forma similar al vínculo que puede existir entre una tabla de tipo repositorio y una tabla de interacciones (véase Comprender las capacidades de las tablas). Así, cada entrada en la tabla de líneas de pedido estará siempre vinculada a un pedido concreto y contaremos con una organización lógica y coherente entre los dos niveles.

Configurar un vínculo técnico

El vínculo entre las dos tablas debe configurarse en la estructura de la tabla a través de un archivo de definición JSON.

Es recomendable configurar este vínculo en la tabla de segundo nivel (por ejemplo, líneas de pedido ), dado que, para poder existir, las distintas línea de pedido deben hacer referencia a un pedido.

Configuración

Desde el punto de vista práctico, este vínculo se debe especificar en el parámetro «links» del archivo JSON de creación de la tabla a través de un link de tipo «DATA_SOURCE_LINK» (igual que para configurar un vínculo con una tabla repositorio). Para mayor información sobre los elementos de estos parámetros, te recomendamos leer la sección sobre cómo estructurar archivos JSON.

En este caso, la «source» se refiere a la tabla del segundo nivel (por ej.: líneas de pedido) y el «target» se refiere a la tabla del primer nivel (por ej.: pedidos).

La clave entre las dos tablas deberá ser un campo común. Puede ser, por ejemplo, el número de referencia del pedido. Este campo debe ser único en la tabla de pedidos pero no tiene por qué ser único en la tabla de líneas de pedido.

Ejemplo de parámetro «links»
"links": [
{
"objectType": "DATA_SOURCE_LINK",
"linkName": "datasource2",
"sourceFieldName": "orderId",
"targetFieldName": "orderId",
"constraintType": "none",
"targetedEntityName": "actito",
"skipIntegrityCheck": null,
"targetedDataSourceName": "orders"
}

Recuerda

A la hora de configurar el vínculo entre una tabla repositorio y una de interacciones, el campo que funcione de enlace debe tener la propiedad «extended» (véase Estructurar tu archivo de definición JSON).

Esto no ocurre cuando el vínculo se establece entre dos tablas de interacciones.|

Siguientes pasos

Se puede crear el vínculo entre dos tablas de interacciones que ya existen por separado. Se deben tener en cuenta las limitaciones en materia de integración antes de llevar a cabo una operación así (ver a continucación).

Para ello se debe utilizar un archivo de actualización JSON. Dirígete a la aplicación Gestionar estructura de tablas (Catálogo > Modelo de datos > Gestionar estructura de tablas) .

Selecciona la tabla del segundo nivel (siguiendo con el ejemplo anterior, la de líneas de pedido) y haz clic en Más y en Actualizar.

images/download/attachments/631603792/image2020-4-6_9-49-21.png

A continuación, deberás cargar un archivo JSON de tipo «addRelation», que incluya los siguientes elementos:

  • «relationName»: referencia del vínculo (sin impacto)

  • «property»: el nombre del atributo que hace de enlace en la tabla del segundo nivel

  • «targetDataSourceId»: el ID de la tabla de primer nivel (el nombre no es válido)

  • «targetProperty»: el nombre del atributo de enlace en la tabla de primer nivel (normalmente es el identificador del pedido)

Ejemplo de JSON «addRelation»
{
"type" : "addRelation",
"relationName" : "orderDetails",
"property": "orderId",
"targetDataSourceId": "2634dc86-3cd3-47db-9f2c-5dd5e8c31b43",
"targetProperty": "orderId"
}

Impacto en Actito

Configurar un vínculo entre dos tablas de interacciones te permitirá garantizar la coherencia entre los dos niveles de datos.

Esto entraña también un límite a la hora de crear tablas y almacenar datos: no pueden existir líneas de pedido si no hay un pedido.

Recuerda

Es importante tener en cuenta esta limitación cuando se lleven a cabo sincronizaciones de datos, se lleven a cabo mediante el intercambio de archivos o mediante API individuales.

Todas las entradas de la tabla de primer nivel (por ej.: Pedidos) deben ser creadas antes que las entradas del segundo nivel (por ej., las líneas de pedidos).

Mientras que tengas en cuenta esta limitación, este tipo de vínculos entre dos tablas de interacciones tendrá dos grandes ventajas en el marco de Actito:

  • Personalización de emails

  • Targeting

El vínculo te permitirá asegurar la coherencia de los datos a estos dos niveles, con una fiabilidad que sería imposible de conseguir de otra manera.

La personalización de emails

Si continuamos con nuestro ejemplo de pedidos y líneas de pedido, la coherencia será particularmente útil a la hora de crear un email transaccional y un escenario de confirmación de pedidos.

Lo que normalmente desencadena un escenario así es una interacción en la tabla de pedidos; no sería nada conveniente desencadenar el escenario por cada línea de pedido. En cambio, se enviará un correo electrónico para resumir el pedido del cliente, lo que implica hacer referencia a la información almacenada en las líneas de pedido para personalizar el correo.

Actito pone a tu disposición las herramientas necesarias para garantizar la coherencia entre la tabla de primer nivel, que desencadena el escenario, y la tabla de segundo nivel, que sirve para personalizar los correos. Se aplica la misma lógica en el caso de los carritos abandonados, los tiques por email, etc.

Desencadenar el escenario

Un bloque de tipo otra interacción que corresponda a la tabla de primer nivel (ej. pedidos) será el que accione el escenario.

Para mayor información sobre el bloque de partida, te recomendamos leer la página sobre los distintos bloques de un escenario.

images/download/thumbnails/631603792/image2020-4-6_9-49-51.png

Configuración de la personalización

Para poder utilizar un correo electrónico en un escenario, el correo debe ser para escenarios o de tipo transaccional.

En el correo tendrás que indicar las dos tablas de interacciones como la fuente de datos de la tabla. Para mayor información al respecto de las fuentes de datos, te recomendamos leer la página sobre la personalización de mensajes.

images/download/attachments/631603792/image2020-4-6_9-50-17.png

Es necesario también configurar el enlace entre las dos fuentes de datos. Para ello debes escoger el criterio de selección de los datos en el icono del engranaje.

La tabla del primer nivel («Pedidos») está directamente vinculada al escenario, dado que el evento que acciona el escenario es una nueva entrada en la tabla.

Para cerciorarnos de que la interacción que acciona la comunicación es la misma que la que se utiliza en el mensaje, incluso si se hacen varios pedidos en un mismo día, los datos deben proceder del escenario.

images/download/attachments/631603792/image2020-4-6_9-50-36.png

No obstante, la comunicación se personalizará también a partir de los detalles de la interacción, es decir, la segunda tabla (líneas de pedido). Estas filas deben ser por tanto coherentes con el pedido que ha accionado la comunicación.

Los datos de las líneas de pedido procederán del pedido correspondiente, de modo que puedas estar seguro de que la información que se utilizará para la personalización será coherente con la interacción que ha accionado la comunicación, incluso si los detalles del pedido se almacenan en una tabla diferente.

images/download/attachments/631603792/image2020-4-6_9-50-56.png

Información

Los datos de la tabla del segundo nivel solo pueden proceder de la tabla de primer nivel si se ha configurado el vínculo entre las dos tablas en su estructura.

Si no, solo estarán disponibles la opción básica por defecto y la opción de que los datos procedan del escenario.

También puedes configurar los valores de las personalizaciones a partir de la tabla de segundo nivel, con la seguridad de que los datos harán referencia a una única interacción, que será la que haya accionado la comunicación.

images/download/attachments/631603792/image2020-3-27_10-58-3.png

Recuerda

Por definición, un email de confirmación del pedido o un email recordando un carrito abandonado debe utilizar datos relativos a distintos artículos. Para poder mostrar estos datos, que son distintas filas, puedes crear un bucle de personalización. Para mayor información al respecto te recomendamos leer la página dedicada a los correos transaccionales.

El uso en targeting

El vínculo entre una tabla de pedidos y una de líneas de pedidos también podrá utilizarse para garantizar la coherencia entre los criterios de targeting basados en una tabla de primer nivel y otra de segundo.

Sin este vínculo, aunque definas el siguiente target (véase ilustración) nada te garantizará que las filas que contengan los artículos 1 y 2 sean en efecto las de un pedido de importe superior a 200€.

¡ERROR!

images/download/attachments/631603792/image2020-4-6_9-52-15.png

Explicación

Actito, en primer lugar, verifica si los perfiles han realizado al menos un pedido (cualquiera) por un importe superior a 200€.

A continuación, Actito comprueba si los perfiles tienen al menos una línea de pedido (cualquiera) que contenga el artículo n.º 1.

El target serán los perfiles que respeten estos dos criterios, pero no se tiene en cuenta ninguna relación entre los dos criterios. Por ello, este targeting no equivale a seleccionar los perfiles que hayan hecho un pedido del artículo n.º 1 por un precio superior a 200€

De hecho, un perfil que haya hecho un pedido de los artículos n.º 3 y 4 por un importe de 300€ y otro que haya hecho un pedido del artículo n.º 1 pero solo de 100€ serán incluidos en el target.

Al establecer un enlace entre las dos tablas en su estructura, Actito te permitirá sacar partido del enlace y usarlo para definir tu target.

Definir un target en dos niveles

Para enlazar dos tablas en tu targeting debes activar primero el modo experto.

images/download/attachments/631603792/image2020-4-6_9-52-40.png

Con el modo experto podrás ver el botón que te permitirá añadir un subconjunto de targeting a una tabla vinculada a una primera tabla.

images/download/attachments/631603792/image2020-4-6_9-53-7.png

De este modo podrás combinar los dos criterios para asegurarte de que estén vinculados.

El subconjunto servirá para añadir el criterio de solo tener en cuenta las filas de los pedidos que respeten el primer criterio.

images/download/attachments/631603792/image2020-4-6_9-53-29.png

Con estos criterios, el target son los perfiles con un pedido superior a 200€ que incluya el artículo n.º 1.

Comprender el proceso de selección

Es importante comprender que, durante el proceso de targeting, los criterios se analizan conjunto por conjunto.

Utilizar operadores agregados

Utilizarlos permite que, cuando utilices un subconjunto, los criterios del subconjunto se analicen pedido por pedido.

Los operadores agregados (número de, total, mínimo, máximo y media) se aplican sobre los detalles de un mismo pedido y no sobre todas las líneas de pedido.

De este modo, con la siguiente definición de target te aseguras de que el total de todas las líneas de un solo pedido, que responda a los criterios del primer nivel, supere los 500€. No comprobará el total de todas las línea de pedido asociadas a un pedido de 2019.

images/download/attachments/631603792/image2020-4-6_9-54-57.png

Para que un perfil sea incluido en el target, el perfil deberá haber realizado al menos un pedido en 2019 cuyo total de filas (del mismo pedido) superen los 500€.

Añadir criterios sobre varias filas del segundo nivel

Incluso después de haber añadido un subconjunto a una tabla de segundo nivel, tienes la posibilidad de añadir otro subconjunto sobre la misma tabla.

Esto será útil para añadir criterios relativos a varias filas de una tabla de segundo nivel. De hecho, los criterios de un mismo bloque serán analizados línea por línea.

¿Qué quiere decir esto? Si lo que se quiere es incluir todos los perfiles que hayan hecho un pedido superior a 200€ que comprenda tanto el artículo n.º 1 como el n.º 2, el siguiente targeting no arrojará los resultados que buscamos. De hecho, la misma línea de pedido no puede contener al mismo tiempo el artículo n.º 1 y el 2.

¡ERROR!

images/download/attachments/631603792/image2020-4-6_9-55-31.png

Para definir el target correctamente, debe descomponerse en dos bloques de líneas de pedidos.

images/download/attachments/631603792/image2020-4-6_9-56-18.png

Definir un target en tres niveles

Es posible añadir un subconjunto a un subconjunto anterior para construir un target en tres niveles. Este sería el caso si hay tres tablas de interacciones vinculadas entre ellas, como una tabla de pedidos, una de líneas de pedido y otra de productos.

La tabla de productos puede ser una tabla de interacciones o una repositorio, según supere o no el límite de las 10 000 filas de una tabla repositorio.

images/download/attachments/631603792/image2020-3-27_11-1-21.png

Exemple de JSON
{
"type" : "addRelation",
"relationName" : "orderDetails",
"property": "orderId",
"targetDataSourceId": "2634dc86-3cd3-47db-9f2c-5dd5e8c31b43",
"targetProperty": "orderId"
}