PROMO 7.8 - Circuito para Uso de Programas de Objetivos
Definición de Programa de Objetivos
Un Programa de Objetivos, es la nueva funcionalidad de Promo que permitirá ofrecer beneficios monetarios y/o no monetarios a los clientes, al pertenecer a un determinado segmento, lo que incrementará la fidelidad hacia el comercio.
PRECONDICIONES
- Previo a iniciar la definición de programas de objetivos en la consola de Promo, deberán existir Segmentos registrados, para dicho programa.
- Para dar de alta un programa de objetivos es obligatorio contemplar las secciones: Vigencia, Tipo de Programa, Frecuencia y Segmento, siendo la sección Promociones un dato opcional.
- Con respecto a la vigencia por Fecha del programa de objetivos, esta no podrá empezar en una fecha menor al día actual, así mismo, la fecha desde indicada no podrá ser mayor a la fecha hasta.
- Los segmentos dentro del programa de objetivos contemplan lo siguiente:
- El segmento (código) debe ser único dentro del programa.
- No se puede agregar mas de 5 segmentos por programa.
- El rango desde y hasta asociado al segmento a configurar debe tener valores numéricos mayores a cero (0).
- El rango desde debe ser un numero menor o igual a hasta.
- El valor Desde de cada segmento a incorporado debe ser igual al rango Hasta del segmento agregado anteriormente.
- Los segmentos al ser removidos del programa recalcularan de forma automática su valor Desde en base al valor Hasta del segmento anterior a el.
- Con respecto a la sección de Promociones:
- La promoción debe ser única en el programa.
- No hay limite de promociones a configurar en el programa.
- Los permisos a esta funcionalidad, serán otorgados por defecto a usuarios con rol ADMIN Y SUPERVISOR.
Casos de Uso
Programa de Objetivos por Cantidad de Productos (Descuento Progresivo)
1.Se definen los segmentos para el programa de Objetivos a crear:
2. Se crea el nuevo Programa de Objetivos:
Para la parte de promociones:
3. Primeramente se crean las promociones que tendrá asociadas el programa:
- Promoción para el segmento 1:
- Promoción para el segmento 2:
- Promoción para el segmento 3:
También se debe crear la Promoción que contendrá el beneficio acumulador; necesario para que el proceso pueda ir moviendo a los clientes por los distintos segmentos:
Se arma el mapa:
Se asocian las promociones al programa de objetivos:
Con el botón
almacenamos el nuevo programa creado, el cual se detallará en la vista:4. Procedimiento:
Se hace la primer venta a un cliente que no pertenece al programa de objetivos:
Primeramente se hace un loyaltyvalidation:
Se puede observar que el cliente no se encuentra en ningún segmento. Ahora se hace la venta del producto con SKU = "1":
Se observa que se le dio la promo 0 porque compró el producto con SKU = 1 e ingresa al programa de objetivos.
Se finaliza la transacción:
En la consola:
en el reporte Transaccional de clientes, se observa:
Luego de ejecutarse el job de programas de objetivos:
El cliente pasa al segmento sd1
Se hace la segunda venta:
Se observa que además de la ProgFideFarm0, se le aplicó la promoción ProgFideFarm1, porque el cliente pertenece al segmento 1 y recibió un 20% de descuento en su compra.
Al ejecutar el "finish" el POS enviará un detalle con el contenido del contador; que en este caso es = 1.
En la consola:
Luego de ejecutarse el job de programa de objetivos:
Se hace la tercer venta:
Se observa que le dio el beneficio correspondiente a la promoción ProgFideFarm2 porque el cliente se encontraba en el segmento 2 y si bien compró 2 productos; el beneficio sólo alcanzó a uno porque así estaba definido en la promoción en concordancia con el programa de objetivos.
Al ejecutar el "finish" el pos informa el valor del contador, que en este caso es = 2
En la consola:
Se ejecuta el job de programas de objetivos:
Se observa que el cliente ahora se encuentra en el segmento 3
Ahora se va a hacer una compra el mismo día, para verificar que no cumple el período mínimo:
Se observa que no se le ha dado ningún beneficio al cliente.
Se observa que el contador sigue en el valor 3.
En la consola:
y el cliente sigue en el mismo segmento:
Por último se hará una compra en una fecha mayor a la frecuencia máxima:
El cliente no recibe ningún beneficio; porque ya no se encuentra en ningún segmento.
Y al hacer el finish se observa que el contador ha vuelto a cero.
En la consola:
El cliente ya no pertenece a ningún segmento; pero sigue perteneciendo al Programa de Objetivos.
Programa de Objetivos Basado en Monto de Compra
Se detallará la creación y funcionamiento del tipo de programa de objetivos basado en monto de compra
El primer paso consiste en crear los segmentos:
Luego se crea el programa de objetivos
Se crea la Promo cero, que tendrá un beneficio contador:
Y luego las promociones que tendrán como beneficiados a los clientes pertenecientes a los distintos segmentos del programa de objetivos,
- Con Precio Beneficiado
Se distribuye; para ello se crea una promoción común:
El mapa es:
- Ventas
Se realiza una primer venta, del producto 11020 al cliente id = 1
Se observa que la promoción 0 se aplicó sobre el precio beneficiado= 3060.00
Se ejecuta el Job Procesos de programas de objetivos, con fecha 17/03; en el Informe Transaccional de Cliente se observa:
El día 17/03 se realiza otra venta y se observa que se le aplicó al cliente el beneficio de la promoción "Promo Monto 1"
En el finish muestra el valor del contador
Se ejecuta el Job de Procesos de programas de objetivos; en el Informe Transaccional de Cliente se observa:
Se realiza otra venta:
En el finish:
Se ejecuta el Job de Procesos de programas de objetivos; en el Informe Transaccional de Cliente se observa:
En el detalle del cliente:
Se realiza otra venta y se observa que el cliente se benefició con la promoción "Promo Monto 3":
Se ejecuta el job Procesos de programas de objetivos, en el informe Transaccional de Cliente:
En el detalle del cliente:
Ahora se realiza una venta con fecha mayor a la frecuencia máxima:
En el finish se observa el valor del contador:
Se ejecuta el Job de Programa de Objetivos y en el transaccional de cliente, se refleja que se alcanzó la frecuencia máxima.
- Con Precio Original
Se crean las promociones
Se distribuye:
Se realiza la primer venta:
Se ejecuta el job de programa de objetivo:
En el detalle del cliente:
Se realiza la siguiente venta:
Luego de ejecutarse el job de Programa de objetivos:
en el detalle del cliente:
Se realiza otra venta:
Luego de ejecutarse el Job de Programa de Objetivos, en el reporte Transaccional de Cliente:
En el detalle del cliente:
Se realiza otra venta:
En el finish:
Luego de ejecutar el job de Programa de Objetivos, el reporte transaccional de cliente:
El detalle del cliente:
Al ejecutar el job de Programa de Objetivos, en una fecha superior a la frecuencia máxima, el reporte Transaccional del Cliente:
En el detalle del cliente:
Programa de Objetivos Basado en Puntos de Fidelidad
Se detallará la creación y funcionamiento del tipo de programa de objetivos basado en puntos de fidelidad
1.Creación de los segmentos:
Primeramente se deben crear los segmentos que formarán parte de este programa de objetivos.
2. Creación de las promociones:
Luego se deben crear las promociones que otorgarán beneficios a estos segmentos; además de la Promo 0 que es la que permitirá ingresar al cliente al programa de objetivos.
Promo 0:
Promo Seg 1:
Promo Seg 2:
Promo Seg 3:
Se distribuyen:
3. Creación del programa de objetivos:
Se crea el programa de objetivos basado en puntos de fidelidad:
a. Se completa el código, nombre y vigencia del nuevo programa
b. Se selecciona como tipo de programa "Basado en puntos de fidelidad", completamos con el tipo de elemento de fidelidad en el que se acumularán dichos puntos y por último informamos la máxima cantidad de puntos que se acumularán en este programa:
c. Se completa el tipo de frecuencia, la frecuencia mínima y la máxima:
d. Se agregan los segmentos
e. Por último se agregan las promociones que darán beneficios a los clientes que formen parte de los segmentos insertados en el paso anterior:
Al guardar el nuevo programa; éste se reflejará en la vista Gestión de Programas de Objetivos:
Se realiza una venta:
<message companyId="2" store="3" terminal="1" date-time="2023-06-29 16:00:00" init-tck="false" messageId="1" void-trx="false" response="true" status="sale" evaluate="true" suggest="false"> <loyaltycard-add seq="1" id="2010000014" type="3"/> <customer-add seq="1" id="6" age="0" birthday="false" code="6" email="[email protected]" identifier="444444" incompleteData="false" lastName="Maciel" limitedBenefits="" name="ANA" segment="" type="EMPLEADO"/> <item-add seq="1" unitprice="2000" xprice="2000" qty="1" code="283"/> <item-add seq="2" unitprice="2000" xprice="2000" qty="1" code="360"/> <item-add seq="3" unitprice="1000" xprice="1000" qty="1" code="520"/> </message>
---- message ------ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1"> <optional> <promo id="Promo 0 Puntos" nro="649d9b4a63ca194ebc8dbf13"> <benefit TLOGMessage="Promo 0 Puntos" account="" applicationMethod="resume" baseAmount="5000.00" benefitType="LoyaltyBenefit" displayMessage="Promo 0 Puntos" name="649d9b4a63ca194ebc8dbf13" nro="649d9bae63ca194ebc8dbf1e" order="1" printerMessage="Promo 0 Puntos" totalpoints="300.00" type="3" unit="qty" value="100.00"> <apply> <item magnitude="0.000" points="100.00" qty="1.000" seq="1" value="0.00" valueWithTaxes="0.00" xprice="2000.00"/> <item magnitude="0.000" points="100.00" qty="1.000" seq="2" value="0.00" valueWithTaxes="0.00" xprice="2000.00"/> <item magnitude="0.000" points="100.00" qty="1.000" seq="3" value="0.00" valueWithTaxes="0.00" xprice="1000.00"/> </apply> </benefit> </promo> </optional> </message>
Se observa que se aplicó la Prom 0 puntos, de tal manera que el cliente 6 ingresará al programa de objetivos.
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1" transaction="2_3_1_20230629160000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="300.00" id="2010000014" seq="1" type="3"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> <goalsPrograms/> </loyalty> </message>
Al realizar el finish se observa que se acumularon 300 puntos de los productos de la venta.
<loyaltycard ack="0" amount="300.00" id="2010000014" seq="1" type="3"/>
Luego de ejecutado el job sts.console.job.GoalsProgramJob, en la consola:
Se observa que el cliente se encuentra ahora en el segmento 9. En el detalle del cliente:
Al día siguiente se hace otra venta:
<message companyId="2" store="3" terminal="1" date-time="2023-06-30 16:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="sale" evaluate="true" suggest="false"> <loyaltycard-add seq="1" id="2010000014" type="3"/> <customer-add seq="1" id="6" age="0" birthday="false" code="6" email="[email protected]" identifier="444444" incompleteData="false" lastName="Maciel" limitedBenefits="" name="ANA" segment="9" type="EMPLEADO"/> <item-add seq="1" unitprice="200" xprice="200" qty="1" code="283"/> <item-add seq="2" unitprice="150" xprice="150" qty="1" code="360"/> <item-add seq="3" unitprice="100" xprice="100" qty="1" code="520"/> </message>
<message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1"> <optional> <promo id="Promo 0 Puntos" nro="649d9b4a63ca194ebc8dbf13"> <benefit TLOGMessage="Promo 0 Puntos" account="" applicationMethod="resume" baseAmount="450.00" benefitType="LoyaltyBenefit" displayMessage="Promo 0 Puntos" name="649d9b4a63ca194ebc8dbf13" nro="649d9bae63ca194ebc8dbf1e" order="1" printerMessage="Promo 0 Puntos" totalpoints="300.00" type="3" unit="qty" value="100.00"> <apply> <item magnitude="0.000" points="100.00" qty="1.000" seq="1" value="0.00" valueWithTaxes="0.00" xprice="200.00"/> <item magnitude="0.000" points="100.00" qty="1.000" seq="2" value="0.00" valueWithTaxes="0.00" xprice="150.00"/> <item magnitude="0.000" points="100.00" qty="1.000" seq="3" value="0.00" valueWithTaxes="0.00" xprice="100.00"/> </apply> </benefit> </promo> <promo id="Promo 1 Puntos" nro="649d9c1163ca194ebc8dbf20"> <benefit TLOGMessage="Promo 1 Puntos" account="" applicationMethod="resume" baseAmount="450.00" benefitType="PercentageDiscount" discountPercentage="50.00" displayMessage="Promo 1 Puntos" name="649d9c1163ca194ebc8dbf20" nro="649d9c3963ca194ebc8dbf2b" order="2" printerMessage="Promo 1 Puntos" prorationMethod="PROPORTIONAL" unit="qty"> <apply> <item magnitude="0.000" qty="1.000" seq="1" value="100.00" valueWithTaxes="100.00" xprice="200.00"/> <item magnitude="0.000" qty="1.000" seq="2" value="75.00" valueWithTaxes="75.00" xprice="150.00"/> <item magnitude="0.000" qty="1.000" seq="3" value="50.00" valueWithTaxes="50.00" xprice="100.00"/> </apply> </benefit> </promo> </optional> </message>
Se observa que se aplica la promoción "Promo 1 Puntos" porque el cliente se encuentra en el SegPuntos1
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1" transaction="2_3_1_20230630160000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="2300.00" id="2010000014" seq="1" type="3"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> <goalsPrograms> <goalsProgram id="3" lastIncrement="20230629" lastPurchase="20230629" segment="9" value="525.00"/> </goalsPrograms> </loyalty> </message>
En el finish se observa la cantidad de puntos acumulados en el programa de objetivos
<goalsProgram id="3" lastIncrement="20230629" lastPurchase="20230629" segment="9" value="525.00"/>
Luego de ejecutar el Job de Programas de objetivos:
Se realiza otra venta:
<message companyId="2" store="3" terminal="1" date-time="2023-07-01 16:00:00" init-tck="false" messageId="1" void-trx="false" response="true" status="finish" evaluate="true" suggest="false"> <loyaltycard-add seq="1" id="2010000014" type="3"/> <customer-add seq="1" id="6" age="0" birthday="false" code="6" email="[email protected]" identifier="444444" incompleteData="false" lastName="Maciel" limitedBenefits="" name="ANA" segment="9" type="EMPLEADO"/> <item-add seq="1" unitprice="2000" xprice="2000" qty="10" code="283"/> <item-add seq="2" unitprice="150" xprice="750" qty="5" code="360"/> <item-add seq="3" unitprice="100" xprice="500" qty="5" code="520"/> </message>
----- message ------ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1"> <optional> <promo id="Promo 0 Puntos" nro="649d9b4a63ca194ebc8dbf13"> <benefit TLOGMessage="Promo 0 Puntos" account="" applicationMethod="resume" baseAmount="3250.00" benefitType="LoyaltyBenefit" displayMessage="Promo 0 Puntos" name="649d9b4a63ca194ebc8dbf13" nro="649d9bae63ca194ebc8dbf1e" order="1" printerMessage="Promo 0 Puntos" totalpoints="2000.00" type="3" unit="qty" value="100.00"> <apply> <item magnitude="0.000" points="1000.00" qty="10.000" seq="1" value="0.00" valueWithTaxes="0.00" xprice="2000.00"/> <item magnitude="0.000" points="500.00" qty="5.000" seq="2" value="0.00" valueWithTaxes="0.00" xprice="750.00"/> <item magnitude="0.000" points="500.00" qty="5.000" seq="3" value="0.00" valueWithTaxes="0.00" xprice="500.00"/> </apply> </benefit> </promo> <promo id="Promo 1 Puntos" nro="649d9c1163ca194ebc8dbf20"> <benefit TLOGMessage="Promo 1 Puntos" account="" applicationMethod="resume" baseAmount="3250.00" benefitType="PercentageDiscount" discountPercentage="50.00" displayMessage="Promo 1 Puntos" name="649d9c1163ca194ebc8dbf20" nro="649d9c3963ca194ebc8dbf2b" order="2" printerMessage="Promo 1 Puntos" prorationMethod="PROPORTIONAL" unit="qty"> <apply> <item magnitude="0.000" qty="10.000" seq="1" value="1000.00" valueWithTaxes="1000.00" xprice="2000.00"/> <item magnitude="0.000" qty="5.000" seq="2" value="375.00" valueWithTaxes="375.00" xprice="750.00"/> <item magnitude="0.000" qty="5.000" seq="3" value="250.00" valueWithTaxes="250.00" xprice="500.00"/> </apply> </benefit> </promo> </optional> </message>
---- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1" transaction="2_3_1_20230701160000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="4300.00" id="2010000014" seq="1" type="3"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> <goalsPrograms> <goalsProgram id="3" lastIncrement="20230629" lastPurchase="20230630" segment="9" value="2300.00"/> </goalsPrograms> </loyalty> </message>
El finish muestra la cantidad de puntos del cliente:2300
<goalsProgram id="3" lastIncrement="20230629" lastPurchase="20230630" segment="9" value="2300.00"/>
Luego de ejecutar el job de programas de objetivos:
El cliente ha pasado al segmento SegPuntos2
Se realiza otra venta:
<message companyId="2" store="3" terminal="1" date-time="2023-07-03 11:05:00" init-tck="false" messageId="1" void-trx="false" response="true" status="sale" evaluate="true" suggest="false"> <loyaltycard-add seq="1" contract="" id="2010000014" type="3"/> <customer-add seq="1" id="6" age="0" birthday="false" code="6" email="[email protected]" identifier="444444" incompleteData="false" lastName="Maciel" limitedBenefits="" name="ANA" segment="10" type="EMPLEADO"/> <item-add seq="1" unitprice="400" xprice="8000" qty="20" code="Coca-Cola"/> <item-add seq="1" unitprice="100" xprice="20000" qty="20" code="Papas-Fritas"/> </message>
----- message ------ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1"> <optional> <promo id="Promo 0 Puntos" nro="649d9b4a63ca194ebc8dbf13"> <benefit TLOGMessage="Promo 0 Puntos" account="" applicationMethod="resume" baseAmount="20000.00" benefitType="LoyaltyBenefit" displayMessage="Promo 0 Puntos" name="649d9b4a63ca194ebc8dbf13" nro="649d9bae63ca194ebc8dbf1e" order="1" printerMessage="Promo 0 Puntos" totalpoints="2000.00" type="3" unit="qty" value="100.00"> <apply> <item magnitude="0.000" points="2000.00" qty="20.000" seq="1" value="0.00" valueWithTaxes="0.00" xprice="20000.00"/> </apply> </benefit> </promo> <promo id="Promo 2 Puntos" nro="649d9c9663ca194ebc8dbf2e"> <benefit TLOGMessage="Promo 2 Puntos" account="" applicationMethod="resume" baseAmount="20000.00" benefitType="PercentageDiscount" discountPercentage="100.00" displayMessage="Promo 2 Puntos" name="649d9c9663ca194ebc8dbf2e" nro="649d9cd763ca194ebc8dbf3e" order="2" printerMessage="Promo 2 Puntos" prorationMethod="PROPORTIONAL" unit="qty"> <apply> <item magnitude="0.000" qty="20.000" seq="1" value="20000.00" valueWithTaxes="20000.00" xprice="20000.00"/> </apply> </benefit> </promo> </optional> </message>
En el Finish:
---- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1" transaction="2_3_1_20230703110500"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="69300.00" id="2010000014" seq="1" type="3"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> <goalsPrograms> <goalsProgram id="3" lastIncrement="20230704" lastPurchase="20230704" segment="10" value="17300.00"/> </goalsPrograms> </loyalty> </message>
El finish muestra la cantidad de puntos del cliente: 17300
Luego de ejecutar el job de programas de objetivos:
Y en el detalle del cliente:
Se hace otra venta:
<message companyId="2" store="3" terminal="1" date-time="2023-07-04 11:05:00" init-tck="false" messageId="1" void-trx="false" response="true" status="sale" evaluate="true" suggest="false"> <loyaltycard-add seq="1" contract="" id="2010000014" type="3"/> <customer-add seq="1" id="6" age="0" birthday="false" code="6" email="[email protected]" identifier="444444" incompleteData="false" lastName="Maciel" limitedBenefits="" name="ANA" segment="11" type="EMPLEADO"/> <item-add seq="1" unitprice="500" xprice="500" qty="1" code="Servilletas"/> </message>
---- message ------ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1"> <optional> <promo id="Promo 0 Puntos" nro="649d9b4a63ca194ebc8dbf13"> <benefit TLOGMessage="Promo 0 Puntos" account="" applicationMethod="resume" baseAmount="500.00" benefitType="LoyaltyBenefit" displayMessage="Promo 0 Puntos" name="649d9b4a63ca194ebc8dbf13" nro="649d9bae63ca194ebc8dbf1e" order="1" printerMessage="Promo 0 Puntos" totalpoints="100.00" type="3" unit="qty" value="100.00"> <apply> <item magnitude="0.000" points="100.00" qty="1.000" seq="1" value="0.00" valueWithTaxes="0.00" xprice="500.00"/> </apply> </benefit> </promo> <promo id="Promo 3 Puntos" nro="649d9d3163ca194ebc8dbf40"> <benefit TLOGMessage="Promo 3 Puntos" account="" applicationMethod="resume" baseAmount="500.00" benefitType="FixedDiscount" discountAmount="2000.00" displayMessage="Promo 3 Puntos" name="649d9d3163ca194ebc8dbf40" nro="649d9d5763ca194ebc8dbf4b" order="2" printerMessage="Promo 3 Puntos" prorationMethod="PROPORTIONAL" unit="qty"> <apply> <item magnitude="0.000" qty="1.000" seq="1" value="2000.00" valueWithTaxes="2000.00" xprice="500.00"/> </apply> </benefit> </promo> </optional> </message>
Se observa que se aplicó la promoción "Promo 3 Puntos", porque el cliente se encuentra en el segmento SegPuntos 3.
Luego de ejecutarse el Job de Programas de Objetivos:
Si el cliente no realiza ninguna compra en un período superior a la frecuencia máxima:
En el detalle del cliente:
Asignación de segmento ante inactividad del cliente
UPDATE 7.8
📌 Esta lógica de reubicación automática al primer segmento en casos de inactividad se encuentra disponible a partir de la versión Promo 7.8.2.
Cuando un cliente no realiza compras dentro del período de tolerancia establecido por el Programa de Objetivos, el sistema reinicia automáticamente su contador de progreso. Este comportamiento permite que el cliente retome el programa desde cero si vuelve a consumir, respetando los ciclos definidos en la campaña.
En este contexto, el sistema aplica una lógica de reposicionamiento que evita que el cliente quede sin beneficios: si al finalizar el período de tolerancia no se detectan compras, el sistema asigna al cliente el primer segmento configurado en la campaña, en lugar de dejarlo sin segmento. Esta asignación automática permite que el cliente conserve acceso a beneficios básicos mientras no realice nuevas compras.
La lógica del sistema asegura así una continuidad en la relación con el cliente, permitiendo su reinicio en el programa desde el segmento inicial, sin necesidad de cumplir nuevamente un objetivo de ingreso. Este comportamiento aplica siempre que la estructura del programa incluya un segmento base accesible desde contador cero.
El primer segmento debe estar habilitado con condiciones que permitan asociar clientes con contador en cero, ya que el sistema no mantiene al cliente fuera del programa sino que lo reubica.
Cuando un cliente no realiza compras durante el período máximo de tolerancia definido en el Programa de Objetivos, el sistema resetea su contador de progreso. A partir de esta lógica, si el cliente no registra movimientos durante ese período, el sistema lo reubica automáticamente en el primer segmento definido en la campaña.
Este comportamiento garantiza que el cliente no quede sin segmento ni beneficios, sino que retome su participación desde el nivel inicial, siempre que la lógica del programa esté correctamente parametrizada con segmentos escalonados.
¿Qué cambia?
Antes, si un cliente no realizaba compras durante el período de tolerancia, quedaba sin segmento y por lo tanto, sin beneficios.
Ahora, si un cliente no compra, el sistema lo asigna automáticamente al primer segmento del programa, garantizando que siga accediendo a beneficios básicos.
Caso de uso práctico:
María suele cargar combustible en una estación todos los meses. Durante marzo no realizó compras. En la versión anterior del sistema, al no tener actividad, María perdía los beneficios del programa.
Con este cambio, en abril, María será automáticamente ubicada en el segmento inicial, manteniendo acceso a los beneficios básicos hasta que retome sus compras.
🧾 Escenario:
María es una clienta habitual del programa de fidelidad y forma parte del Segmento 2, que ofrece descuentos exclusivos por volumen de compra mensual. Durante el mes de marzo, por motivos personales, María no realizó ninguna carga de combustible.
⚙️ Comportamiento del sistema:
Al llegar al final del período de marzo, el sistema detecta que María no cumplió con el objetivo mínimo de compras definido para su segmento. Como han pasado más días que el máximo de tolerancia configurado en la campaña, el contador de María se reinicia automáticamente.
En lugar de dejarla sin segmento (lo que implicaría quedar fuera de los beneficios), el sistema la reubica automáticamente en el Segmento 1, que representa el nivel inicial del programa.
✅ Resultado para el usuario:
En abril, María podrá volver a acumular compras desde cero y seguir participando del programa, accediendo a los beneficios básicos del Segmento 1 sin interrupciones ni pérdida de continuidad.
Cómputo correcto de las compras en el contador del programa
UPDATE 7.8
📌 La corrección en el cómputo de compras válidas en el contador del Programa de Objetivos se encuentra disponible a partir de la versión Promo 7.8.2.
El Programa de Objetivos está diseñado para contabilizar las compras realizadas por cada cliente durante los períodos activos, acumulando los importes válidos en un contador asociado a su progreso. Esta lógica de acumulación permite determinar si el cliente avanza, se mantiene o desciende de segmento según su comportamiento de consumo.
Para que esta lógica funcione correctamente, el sistema evalúa cada venta y determina si debe ser sumada al contador. Las condiciones que rigen esta evaluación pueden incluir tipo de artículo, medio de pago, promociones asociadas, entre otros factores. El funcionamiento esperado es que toda compra que cumpla con los criterios establecidos por la campaña se sume automáticamente al contador del cliente.
Con esta lógica, el sistema garantiza una medición justa del comportamiento del cliente, evitando omisiones que puedan afectar su participación en el programa. El cálculo se realiza de forma automática, sin intervención manual, y se actualiza con cada nueva compra registrada dentro del período activo del programa.
✅ Recomendación:
Verificar que las condiciones del programa no limiten por error ciertos medios de pago o artículos, y que las integraciones estén generando correctamente los registros de venta.
El contador del Programa de Objetivos considera todas las compras realizadas por el cliente dentro del período vigente siempre que cumplan con los criterios de validez definidos (como medio de pago, tipo de artículo, condiciones de la campaña, etc.).
La operatoria ajustada garantiza que no se excluyan automáticamente compras válidas por errores de evaluación, problemas de redondeo, registros parciales o condiciones no previstas en la configuración.
Esta lógica asegura que el avance del cliente dentro del programa se base en todos los consumos efectivamente registrados y válidos, reflejando su comportamiento real sin pérdida de progresos.
¿Qué cambia?
El sistema ahora reconoce y suma todas las compras válidas del cliente al contador del Programa de Objetivos, incluso aquellas que antes podían quedar excluidas por errores de interpretación o condiciones no previstas.
Caso de uso práctico:
Luis realizó varias compras en un supermercado en distintos días, pero el sistema solo contabilizaba una parte. Esto impedía que avance de segmento.
Con esta mejora, todas sus compras dentro del período válido se contabilizan correctamente, permitiendo que su progreso refleje realmente su nivel de consumo.
🧾 Escenario:
Luis participa del Programa de Objetivos de un supermercado. Durante la primera quincena de abril, realiza varias compras de productos variados: artículos de almacén, bebidas y productos de limpieza. Las compras se efectúan tanto con tarjeta de débito como con QR, en distintos días y horarios. Según las reglas del programa, todas estas compras son válidas para sumar al contador.
⚙️ Comportamiento del sistema:
Anteriormente, algunas de estas compras no se sumaban al contador debido a fallos en la validación de condiciones internas, como pequeñas diferencias en los montos, artículos mal clasificados o medios de pago no correctamente interpretados.
Con la lógica ajustada, el sistema verifica de forma más precisa y confiable cada operación, y asegura que todas las compras que cumplen con las condiciones establecidas por la campaña (tipo de producto, monto mínimo, medio de pago válido, etc.) se contabilicen correctamente.
✅ Resultado para el usuario:
Luis puede comprobar que su progreso en el Programa de Objetivos refleja correctamente todas sus compras. Esto le permite avanzar de forma justa y efectiva hacia el cumplimiento de los objetivos definidos, accediendo a mejores beneficios según su nivel de consumo.
Actualización del segmento al finalizar cada período
UPDATE 7.8
📌 La actualización automática del segmento al cierre del período se encuentra disponible a partir de la versión Promo 7.8.2.
El Programa de Objetivos se organiza en períodos definidos, al término de los cuales el sistema evalúa el desempeño de cada cliente para determinar su ubicación en el segmento correspondiente. Esta evaluación se basa en los objetivos establecidos para cada nivel y el volumen de compras efectivamente realizado por el cliente.
Al finalizar cada período, el sistema compara el consumo del cliente con los objetivos establecidos para su segmento actual. Según esta comparación, se decide si el cliente mantiene, asciende o desciende de segmento. Esta lógica permite reflejar con precisión la evolución del comportamiento del cliente y ajustar los beneficios que recibe en función de su compromiso con el programa.
El proceso de evaluación y actualización se ejecuta de forma automática al cierre del período. De esta manera, el sistema garantiza que cada cliente se encuentre siempre en el segmento que le corresponde de acuerdo a sus consumos reales, manteniendo la coherencia y equidad del programa de fidelización.
🔄 Operación cíclica:
Esta lógica se ejecuta en cada cierre de período, asegurando una actualización constante y transparente del estado del cliente dentro del programa.
Al finalizar un período del Programa de Objetivos, el sistema evalúa si el cliente cumplió o no con el objetivo de consumo asociado a su segmento actual.
Con base en ese análisis, el sistema realiza una reubicación automática del cliente en el segmento correspondiente de acuerdo a su desempeño.
Esto evita que un cliente mantenga un segmento que ya no le corresponde por falta de actualización, y garantiza que la asignación de beneficios sea coherente con el comportamiento de consumo real.
¿Qué cambia?
Al finalizar un período del Programa de Objetivos, el sistema revisa si el cliente cumplió o no con el objetivo correspondiente y actualiza su segmento en forma automática, corrigiendo un error anterior donde algunos clientes permanecían en un segmento que ya no les correspondía.
Caso de uso práctico:
Javier tenía asignado el Segmento 2 por su nivel de compras anterior. Durante el nuevo período, no logró alcanzar el objetivo necesario para mantenerse.
Con esta mejora, al cerrar el período, el sistema lo reubica automáticamente al Segmento 1, reflejando su nuevo nivel de consumo y ajustando los beneficios que recibe.
🧾 Escenario:
Javier es un cliente habitual de una cadena de farmacias y perfumerías. Forma parte del Segmento 3 del Programa de Objetivos gracias a sus compras mensuales de productos de cuidado personal, suplementos y cosmética. Sin embargo, durante mayo realiza muy pocas compras, por debajo del objetivo requerido para mantenerse en ese segmento.
⚙️ Comportamiento del sistema:
Al concluir el período de mayo, el sistema analiza el total de compras acumuladas por Javier y detecta que no alcanzó el objetivo correspondiente a su segmento actual. De acuerdo con la configuración del programa, debería ser reubicado en el Segmento 2, que exige un menor nivel de consumo.
La lógica del sistema ahora ejecuta automáticamente esta reubicación, sin necesidad de intervención manual ni errores que mantengan al cliente en un segmento incorrecto.
✅ Resultado para el usuario:
En junio, Javier aparece correctamente ubicado en el Segmento 2. Esto garantiza que los beneficios que recibe sean consistentes con su nivel de participación en el programa y que el resto del sistema (por ejemplo, descuentos, condiciones especiales) se comporte en forma coherente con su nuevo segmento.