Para llevar a cabo la compleja tarea de personalizar individualmente cada uno de los mensajes que se envían a cada cliente y a la vez entregar una performance de envío acorde a las más altas exigencias, el motor de campañas de WoowUp implementa una compleja arquitectura de componentes que están íntimamente interrelacionados entre sí, trabajando en forma sincronizada.
Una campaña pasa por un proceso de paralelización de trabajo donde en cada etapa existen pequeños "programitas" llamados workers que ejecutan una función específica para cada etapa de la campaña.
Los workers de la etapa final son los encargados de renderizar cada uno de los mensajes, donde en este esquema de personalización avanzada cada HTML para cada cliente es único debido a su personalización.
¿Cuál es el trabajo de los workers?
1. El acceso a los datos de los clientes
Los workers se conectan con el módulo de CRM permitiendo usar fácilmente los datos almacenados de cada cliente para personalizar cada mensaje.
Para acceder a los datos se utilizan lo que llamamos placeholders. Por ejemplo, el placeholder Customer nos permite acceder a todos los datos del cliente. Si quisiéramos el nombre del último producto que ha comprado podemos usar customer.last_purchase_products.0.name.
Cuando los workers encuentran estos placeholders, dialogan con el CRM para obtener en forma precisa y veloz los datos solicitados.
2. Personalizar el mensaje usando los algoritmos de recomendación dinámica
Los workers dialogan con el sistema de recomendación dinámica de productos. Dependiendo del placeholder utilizado, el worker sabe que algoritmo de recomendación debe solicitarle al motor de recomendación. Por ejemplo, si el worker encuentra el placeholder customer.recommended_products.0.name sabe que debe solicitar el algoritmo Collaborative Filtering para ese cliente puntual, obteniendo la lista de productos recomendados y, en este ejemplo, renderizando el nombre del primer producto recomendado para cada uno de los clientes.
3. TWIG
Twig es un language de programación de plantillas que está incorporado al motor de campañas de WoowUp y disponible para que los maquetadores HTML pueden agregar lógica avanzada a las plantillas de emails que diseñen, logrando un nivel de personalización tan complejo como se necesite.
Twig permite realizar cálculos, por ejemplo para calcular dinámicamente un descuento en base al cluster del cliente o algún otro valor.
Twig nos da la posibilidad de mostrar o esconder partes del mail usando sentencias IF. Por ejemplo, si el producto posee garantía extendida podemos mostrarle una sección o sino ocultarla. O si el cliente es socio de nuestro programa de fidelidad, podemos mostrarle sus puntos y sino ocultarlos.
Twig también nos permite realizar iteraciones con sentencias For each. Suponte que quisiéramos mostrarle al cliente los productos de su última compra en la encuesta NPS. De antemano no sabemos si ha comprado 1 producto, 2 o cuantos. El iterador entonces nos permite crear dinámicamente bloques de productos, tantos como sea necesario para cada cliente.
Los workers dialogan con el motor de Twig para renderizar la programación avanzada para cada uno de los mensajes.
4. Procesamiento 1 a 1
Los workers dialogan con cada uno de los motores anteriormente descritos y son finalmente los responsables de generar el HTML a enviar. Para esto leen la estructura de la plantilla; se conectan con el CRM para interpretar los placeholders y reemplazarlos por los datos del cliente; dialoga con el motor de personalización para reemplazar los productos a recomendar al cliente; y dialoga con el procesador de TWIG para procesar la programación avanzada que contenga la plantilla.
Dado que cada HTML es único debido a este complejo mecanismo de personalización, los workers deben conectarse al motor de envío de emails transaccional de WoowUp para enviar de a uno, uno por uno, los cientos, miles o millones de emails que haya que enviar.
5. Procesamiento distribuído
Finalmente queda entender cómo este complejo mecanismo de personalización puede enviar cientos de millones de mensajes por hora. Esto es debido a que los Workers funcionan en una arquitectura distribuida y escalable. Se aprovecha al máximo la nube de Amazon AWS y dependiendo la complejidad de la campaña y la velocidad de entrega que se necesite, los workers se van creando primero dentro de un mismo servidor y luego a lo largo de múltiples servidores distribuidos en la nube, pudiendo existir tantos cientos o miles de workers cómo sean necesarios. Este mecanismo es el que le permite a WoowUp tener una velocidad de envío de cientos de millones de mails soportando las altas cargas incluso en fechas de muy alta demanda como Hotsale o Cyber Monday.
Una maquinaria de personalización ultra veloz
El motor de campañas de WoowUp fue diseñado pensando en el procesamiento de grandes volúmenes de datos, clientes y a una velocidad de cientos de millones de mensajes por hora. Acorde a las altas exigencias que tiene el Retail para relacionarse con sus clientes en esta era de la ultra personalización.