Vincular dos tablas de interacciones
Una tabla de interacciones permite almacenar datos "puntuales" registrados cada vez que un perfil interactúa con su marca. Dependiendo del contexto de su actividad, estas interacciones pueden estructurarse en dos niveles.
Tomemos como ejemplo un pedido realizado en un sitio de comercio electrónico. El perfil del cliente puede haber seleccionado varios artículos en su carrito antes de finalizar su pedido. La interacción se descompondrá de la siguiente manera:
-
Un pedido, que incluye la referencia, el total, etc.
-
Líneas de pedido, que incluyen cada producto, su cantidad, su precio, etc.
Esta estructura también se utilizará para gestionar carritos abandonados con el detalle de los artículos, recibos con el detalle de las diferentes líneas del recibo, etc.
Representación en Actito
En Actito, esta estructura de dos niveles se traducirá en dos tablas de interacciones diferentes.
Dado que la tabla de perfiles se encuentra en el centro del modelo de datos de Actito, cada una de estas tablas siempre debe estar vinculada a la tabla de perfiles. Esta es la conexión principal. Por lo tanto, cada entrada de estas dos tablas siempre estará vinculada a un solo perfil.
Sin embargo, es posible establecer un enlace adicional entre estas dos tablas, de manera similar al enlace que puede existir entre una tabla de tipo Referencial y una tabla de Interacciones (ver "Comprender las capacidades de las tablas"). De esta manera, cada entrada en la tabla de "Líneas de pedido" siempre estará vinculada a un solo "Pedido" en particular. Esto permitirá una organización lógica y coherente entre estos dos niveles.
Establecer el enlace técnico
El enlace entre las dos tablas debe establecerse en la estructura de la tabla a través de su archivo de definición JSON.
C'est en la tabla de segundo nivel (por ejemplo, "Líneas de comando") donde se debe establecer el enlace. De hecho, la restricción va en ese sentido: para existir, cada "Línea de comando" debe hacer referencia a un "Comando".
En la configuración inicial
Desde un punto de vista práctico, es necesario especificar este enlace en el parámetro "links" del archivo JSON de creación de la tabla, a través de un enlace de tipo "DATA_SOURCE_LINK" (similar a establecer un enlace con una tabla de Referencia). Para obtener más detalles sobre los componentes de este parámetro, consulte la sección "links" de la página "Estructurar su archivo JSON".
En este caso, la "source" se refiere a la tabla de segundo nivel (por ejemplo, "Líneas de comando") y la "target" se refiere a la tabla de primer nivel (por ejemplo, "Comandos").
Un campo común debe servir como clave entre las dos tablas, por ejemplo, la referencia del comando. Este campo debe ser único en la tabla de "Comandos", pero no en la tabla de "Líneas de comando".
Ejemplo del parámetro links
"links":[
{
"objectType":"DATA_SOURCE_LINK",
"linkName":"datasource2",
"sourceFieldName":"orderId",
"targetFieldName":"orderId",
"constraintType":"none",
"targetedEntityName":"actito",
"skipIntegrityCheck":null,
"targetedDataSourceName":"orders"
}
Cuando se configura un enlace entre una tabla de tipo Referencia y una tabla de Interacciones, el campo de enlace debe tener la propiedad "extended" (consulte "Estructurar su archivo de definición JSON".
Esto no es necesario cuando el enlace se realiza entre dos tablas de Interacciones.
Posteriormente
Es posible agregar un enlace entre dos tablas de interacciones que ya existen. Asegúrese de analizar correctamente las restricciones de integridad antes de realizar esta operación (consulte a continuación).
Para ello, debe utilizar un JSON de actualización. Vaya a "Administrar estructuras de tabla" (Catálogo > Modelo de datos > Administrar estructuras de tabla).
Seleccione la tabla de segundo nivel (por ejemplo, "Líneas de comando"), luego haga clic en "Más" y luego en "Actualizar".
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"
}
Impactos del enlace en Actito
Establecer un enlace entre dos tablas de interacción garantiza la coherencia entre estos dos niveles de datos.
Esto también implica que estas dos tablas estarán vinculadas por una restricción de integridad: una "línea de pedido" no podrá existir sin que exista el "pedido" correspondiente.
Es importante tener en cuenta esta restricción de integridad al configurar sus sincronizaciones de datos, ya sea mediante intercambio de archivos o llamadas API individuales.
Cualquier entrada en la tabla de primer nivel (por ejemplo, "Pedidos") siempre debe crearse antes que las entradas que se le agregan en la tabla de segundo nivel (por ejemplo, "Líneas de pedido").
Si se tiene en cuenta esta restricción de integridad para sus sincronizaciones, establecer un enlace entre dos tablas de interacción tendrá dos ventajas principales en Actito:
-
A nivel de personalización de correos electrónicos
-
A nivel de segmentación
Este enlace entre las dos tablas le permitirá garantizar la coherencia de los datos en estos dos niveles, con un grado de confiabilidad que no sería posible sin esta restricción de integridad.
Personalización de correos electrónicos
Si se toma el ejemplo de "Pedidos" y "Líneas de pedido", la coherencia será especialmente útil para configurar un correo electrónico transaccional y un escenario de confirmación de pedidos.
Un escenario de este tipo típicamente se iniciará con una interacción en la tabla de "Pedidos": de hecho, no sería relevante iniciar un escenario de este tipo para cada "Línea de pedido". Sin embargo, un correo de confirmación tendrá como objetivo hacer un resumen del pedido, lo que implica utilizar la información contenida en las "Líneas de pedido" para la personalización del correo electrónico.
Actito te proporciona las herramientas necesarias para garantizar la coherencia entre la tabla de nivel superior que desencadena el escenario y la tabla de nivel inferior que se utiliza para personalizar los correos electrónicos. La misma lógica se aplicará para un recordatorio de carritos abandonados, un sistema de tickets por correo electrónico...
Desencadenar el escenario
El escenario se desencadenará mediante un bloque de tipo "Otra interacción" que corresponda a la tabla de nivel superior (por ejemplo, "Pedidos").
Para obtener más detalles sobre este bloque de inicio, consulta la página "Comprender los bloques de un escenario".
Configuración de la personalización
Para que un correo electrónico pueda ser utilizado en un escenario, debe ser de tipo escenario o transaccional.
En el correo electrónico, será necesario configurar las dos tablas de interacciones en las fuentes de datos de la tabla. Para obtener más información sobre las fuentes de datos, consulta la página "Personalizar el mensaje".
Luego, debes configurar la conexión entre estas dos fuentes de datos seleccionando el criterio de selección de datos a través del icono de engranaje.
La tabla de nivel superior ("Pedidos") está vinculada directamente al escenario, ya que el evento desencadenante corresponde a una nueva entrada en esta tabla.
Por lo tanto, los datos deben ser "proporcionados por el escenario". De esta manera, nos aseguramos de que la interacción que desencadenó la comunicación sea la que se utiliza en el mensaje, incluso si se realizan varios pedidos en el mismo día, por ejemplo.
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.
Los datos de la tabla de segundo nivel ("Líneas de pedido") solo se pueden obtener de la tabla de primer nivel ("Pedido") si hay un enlace establecido entre estas tablas en su estructura.
De lo contrario, solo están disponibles las opciones básicas "por defecto" y "proporcionadas por el escenario".
Luego puedes configurar los valores de tus personalizaciones en función de la tabla de segundo nivel ("Líneas de pedido"), con la certeza de que la información mostrada se refiere a una sola interacción que desencadenó la comunicación.
Un correo electrónico de confirmación de pedido o de recordatorio de carrito abandonado, por definición, hará referencia a varias líneas de artículos. Para poder mostrar estas diferentes líneas, tienes la opción de implementar un bucle de personalización. Para obtener más información sobre este tema, consulta la página dedicada a los E-mails Transaccionales.
Uso en Targeting
El enlace entre una tabla de "Pedidos" y una tabla de "Líneas de pedido" también se puede utilizar para garantizar la coherencia entre los criterios de segmentación basados en una tabla de primer nivel y una tabla de segundo nivel.
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€.
En esta segmentación, Actito primero verificará si los perfiles tienen al menos un pedido (cualquier pedido) cuyo monto sea superior a 200€.
Luego, Actito verificará si los perfiles tienen al menos una línea de ticket (cualquier línea) que contenga el artículo 1.
La segmentación solo seleccionará los perfiles que cumplan con estos 2 criterios, pero sin una conexión directa entre ellos. Esto significa que esta segmentación no equivale a seleccionar los perfiles que han realizado un pedido superior a 200€ que incluya el artículo 1.
Por el contrario, un perfil que ha realizado un pedido de 300€ compuesto por los artículos 3 y 4, y otro pedido de 100€ que incluye el artículo 1, será seleccionado por esta segmentación.
Al establecer un enlace entre estas dos tablas en su estructura, Actito le brinda la posibilidad de utilizar este enlace en su segmentación.
Construir una segmentación de dos niveles
Para vincular dos tablas en su segmentación, es necesario activar el "modo experto".
El modo experto mostrará un botón que le permitirá agregar un subconjunto de segmentación en una tabla vinculada a su primera tabla.
Esto le permitirá anidar sus dos criterios asegurándose de que estén relacionados entre sí.
Este subconjunto tendrá el efecto de agregar un criterio implícito para tener en cuenta solo las líneas de pedido que correspondan a un pedido que cumpla con el primer criterio.
Así, este ciblaje tendrá el efecto de seleccionar todos los perfiles que tengan un pedido superior a 200€ y cuyo detalle de pedido contenga el artículo 1.
Comprender el mecanismo de selección
Es importante entender que en un ciblaje, los criterios se analizan en conjunto.
Utilizar operadores de agregación
Esto significa que cuando se hace referencia a un subconjunto, los criterios de ese subconjunto se analizarán pedido por pedido.
El uso de operadores de agregación (cantidad de, total, mínimo, máximo y promedio) se realizará en el detalle de un mismo pedido y no en todas las líneas de pedidos.
Así, el siguiente ciblaje verificará si el total de las líneas correspondientes a un solo pedido que cumpla los criterios de nivel 1 es superior a 500€. No verificará el total de todas las líneas de pedidos asociadas a un pedido realizado en 2019.
Para ser seleccionado por este ciblaje, un perfil deberá haber realizado (al menos) un pedido en 2019 cuyo total de líneas (de ese pedido en particular) sea superior a 500€.
Agregar criterios en varias líneas del segundo nivel
Incluso después de agregar un subconjunto en una tabla de segundo nivel ("Líneas de pedidos"), se mantiene la posibilidad de agregar otro subconjunto en la misma tabla.
Esto será útil si se desean agregar criterios en varias líneas de una tabla de segundo nivel. De hecho, los criterios colocados en el mismo bloque se analizarán línea por línea.
Esto significa que para permitir la selección de perfiles que hayan realizado un pedido de más de 200€ que incluya tanto el artículo 1 como el artículo 2, el siguiente ciblaje no dará ningún resultado. De hecho, la misma línea de pedido no puede contener tanto el artículo 1 como el artículo 2.
Para realizar el direccionamiento correcto, deberá descomponerlo en dos bloques de "líneas de comandos":
Construir una segmentación de tres niveles
Es posible agregar un subconjunto a un subconjunto para construir una segmentación de 3 niveles. Esto ocurre cuando 3 tablas de interacciones están vinculadas entre sí, por ejemplo, una tabla de "Pedidos", una tabla de "Líneas de Pedidos" y una tabla de "Productos".
La tabla de "Productos" puede ser una tabla de Interacciones o una tabla de tipo Referencial, dependiendo de si entra o no en el límite de 10,000 filas de una tabla de tipo Referencial.