Aquí no hablamos de “cómo crear un workflow”, sino de cómo orquestar todo el sistema de loyalty.
El problema habitual
Cuando el sistema crece, es habitual encontrarse con escenarios como:
-
Campañas activas + workflows aplicando puntos
-
Multiplicadores duplicados
-
Bonificaciones que se pisan entre sí
-
Dificultad para entender por qué un cliente ha recibido X puntos
Esto no es un fallo del sistema, sino un problema de diseño de la lógica.
Los tres niveles de lógica en Omniwallet
Omniwallet trabaja con tres capas de decisión, que pueden coexistir si se usan correctamente:
1. Reglas estándar de puntos
-
Equivalencia euro ↔ puntos
-
Cashback básico
-
Reglas simples por producto o categoría
👉 Son la base del sistema.
2. Campañas automatizadas
-
Bonus por día de la semana
-
Hitos por compras
-
Rachas
-
Campañas estacionales
👉 Añaden incentivos claros, repetibles y fáciles de entender.
3. Workflows avanzados
-
Lógicas personalizadas
-
Reglas condicionales complejas
-
Combinaciones de datos
-
Casos no cubiertos por campañas estándar
👉 Son el nivel experto y deben usarse con criterio.
Orden de ejecución (concepto clave)
Cuando ocurre una transacción:
-
Se generan los puntos base
-
Se aplican reglas estándar
-
Se ejecutan campañas automatizadas
-
Se ejecutan los workflows activos, en el orden definido
⚠️ Esto es fundamental para:
-
Evitar multiplicadores en cascada
-
Controlar el impacto económico
-
Entender el resultado final
Estrategias recomendadas de combinación
Estrategia A – Campañas para lo habitual, workflows para excepciones
Usa:
-
Campañas automatizadas para el 80% de los casos
-
Workflows solo para:
-
Excepciones
-
Casos premium
-
Reglas muy específicas
-
👉 Es el enfoque más limpio y escalable.
Estrategia B – Workflows como capa de corrección
Ejemplo:
-
Campaña general: bonus por importe
-
Workflow:
-
Limita el bonus a ciertas categorías
-
Excluye productos con bajo margen
-
Ajusta multiplicadores según cliente
-
👉 El workflow actúa como “filtro inteligente”.
Estrategia C – Workflows como capa prioritaria
Solo recomendable en entornos muy controlados.
-
Puntos base mínimos
-
Lógica casi toda en workflows
-
Mucho testeo y documentación
👉 Potente, pero más compleja de mantener.
Evitar solapamientos (muy importante)
Problema típico
-
Campaña multiplica x2
-
Workflow multiplica x3
👉 Resultado: x6 (no deseado)
Soluciones habituales
Opción 1 – Variables de control
-
Detectar si ya se ha aplicado un bonus
-
Evitar aplicar otro
Opción 2 – Condiciones en workflows
-
Si la campaña X está activa → no aplicar workflow
-
Si el cliente ya cumple condición → salir
Opción 3 – Orden de workflows
-
Colocar workflows “limitadores” antes que los “expansivos”
Uso de flags y control interno
Un patrón muy recomendable es usar variables de control, por ejemplo:
-
bonus_aplicado = true -
campaign_detected = true
Esto permite:
-
Saber qué ha pasado antes
-
Decidir si seguir o no
-
Mantener trazabilidad lógica
Cómo diseñar una estrategia limpia
Antes de crear un workflow, pregúntate:
-
¿Esto se puede resolver con una campaña estándar?
-
¿Es una excepción o un caso general?
-
¿Puede entrar en conflicto con otra lógica?
-
¿Puedo limitarlo por condiciones claras?
-
¿He documentado el objetivo?
Si no puedes responder a estas preguntas, probablemente el workflow aún no está bien definido.
Testing y validación
Cuando combines campañas y workflows:
✔ Testea siempre con transacciones reales
✔ Usa importes y productos mixtos
✔ Revisa los logs
✔ Simula varios escenarios
✔ Activa primero en entornos controlados
Caso práctico resumido
Escenario
-
Campaña: bonus por día de la semana (x2)
-
Workflow: multiplicador x3 solo en categoría Premium
Solución correcta
-
Workflow:
-
Si categoría Premium
-
Y no hay bonus de campaña aplicado
-
Entonces x3
-
-
Si no, dejar que actúe solo la campaña
Resultado:
👉 Incentivo claro, controlado y sin duplicidades.
Errores comunes
❌ Usar workflows para todo
❌ No documentar la lógica
❌ Apilar multiplicadores sin control
❌ No revisar el orden de ejecución
Conclusión
Los workflows no sustituyen a las campañas ni a las reglas estándar:
las complementan.
Un buen diseño combina:
-
Simplicidad donde se puede
-
Complejidad solo donde aporta valor