# Puntos de fidelidad y campañas

## Paso a paso

Las tareas más comunes, resumidas. El detalle de cada una está en las secciones numeradas.

### Que un cliente gane puntos en su compra

1. En el **Punto de Venta**, arma el carrito y elige **💵 Efectivo** o **💳 Tarjeta**.
2. Abre **"¿Cliente registrado? (opcional, para puntos de fidelidad)"** y elige al cliente. Si no está registrado, pulsa **➕ Nuevo** y escribe su nombre y teléfono.
3. Si tiene puntos y los quiere usar, escribe cuántos canjear.
4. Pulsa **Cobrar**. Los puntos se suman solos.

Ver secciones 3 y 4.

### Invitar a regresar a los clientes que ya no vienen

1. En el menú lateral abre **👥 Clientes → Seguimiento**.
2. Pulsa **💬 Contactar** en el cliente y envía el mensaje desde WhatsApp.

Ver sección 5.

### Mandar una promoción por WhatsApp

1. Abre **👥 Clientes → Campañas**. Si eres administrador, pulsa **➕ Nueva Campaña**, elige a quién va dirigida, escribe el mensaje y pulsa **Crear Campaña**.
2. En la campaña, pulsa **👁️ Ver / Enviar** y luego **🔄 Generar/Actualizar Destinatarios**.
3. Pulsa **💬 Enviar** en cada cliente y manda el mensaje desde WhatsApp.

Ver sección 6.

## 1. ¿Qué es el CRM y Fidelidad?

Es el módulo para administrar la relación con los clientes registrados en la tienda (los mismos clientes de [El Fiado](./el-fiado.md), no una lista aparte). Reúne tres cosas:

- **Puntos de fidelidad**: los clientes acumulan puntos por cada compra ligada a su nombre, y esos puntos se pueden canjear después como descuento.
- **Seguimiento por inactividad**: detecta automáticamente qué clientes no han comprado en un tiempo, para poder contactarlos.
- **Campañas y promociones**: mensajes masivos por WhatsApp dirigidos a un grupo de clientes (todos, inactivos, con etiqueta, con saldo pendiente).

**Quién puede usarlo:** igual que El Fiado, el día a día (ver clientes inactivos, canjear puntos, generar y enviar una campaña) está abierto a **cualquier empleado**. Solo un **administrador** puede:

- Cambiar la configuración de puntos (razón de acumulación, valor del punto, días para considerar "inactivo").
- Crear, desactivar o reactivar campañas.
- Hacer ajustes manuales de puntos (correcciones que no vienen de una venta o canje).

## 2. Cómo llegar al módulo

En el menú lateral abre el grupo **👥 Clientes**. Además de El Fiado, ahí están las tres secciones del CRM, cada una como opción propia del menú:

- **Seguimiento** (📞 clientes inactivos)
- **Puntos de fidelidad** (⭐)
- **Campañas** (💌)

En el menú de navegación aparece un **badge** (número) sobre "Seguimiento" (y sobre el grupo Clientes cuando está cerrado) indicando cuántos clientes están inactivos en este momento. En la pantalla de Inicio también hay una tarjeta **"Clientes Inactivos"** que lleva directo a esta pantalla.

En el encabezado de la pantalla hay un botón **➕ Nuevo Cliente** para registrar a un cliente sin necesidad de hacer una venta (usa el mismo formulario de [El Fiado](./el-fiado.md#41-nuevo-cliente)). Es útil, por ejemplo, para capturar a un cliente frecuente de una sola vez y luego poder ligarlo a sus compras, en vez de tener que esperar a su siguiente visita en el POS. Un cliente registrado aquí con límite $0 (solo puntos) no aparece en El Fiado; si después pide crédito, no lo registres otra vez: en El Fiado usa **👥 Agregar cliente existente** (ver [sección 4.2 del manual de El Fiado](./el-fiado.md#42-agregar-a-el-fiado-un-cliente-que-ya-está-registrado)).

## 3. Cómo se liga un cliente a una venta

A diferencia de antes (donde solo las ventas a **Crédito** quedaban ligadas a un cliente de El Fiado), ahora **cualquier venta puede ligarse opcionalmente a un cliente registrado**, sin importar el método de pago:

- Si el método de pago es **Efectivo** o **Tarjeta**, en el Punto de Venta aparece un selector opcional **"¿Cliente registrado? (opcional, para puntos de fidelidad)"**, colapsado y sin afectar el flujo normal si no se usa — una venta anónima sigue funcionando exactamente igual que siempre.
- Si el método de pago es **Crédito**, el cliente que ya se selecciona para El Fiado (ver [manual de El Fiado](./el-fiado.md#5-vender-a-crédito-desde-el-punto-de-venta-pos)) es el mismo que se usa para puntos — no hay que elegirlo dos veces.

Ligar un cliente a la venta es lo que permite que gane puntos y que su fecha de "última compra" se actualice (para el seguimiento de inactividad).

### 3.1 Registrar un cliente nuevo sin salir de la venta

Si el cliente todavía no está registrado, no hace falta salir del POS ni interrumpir la venta: junto al selector opcional hay un botón **➕ Nuevo**, que abre un formulario mínimo (**nombre** y **teléfono**, ambos obligatorios). Al guardar, el cliente queda registrado y **seleccionado automáticamente** para esa venta, lista para ganar puntos. Sus demás datos (dirección, notas, etc.) se pueden completar después desde [El Fiado](./el-fiado.md).

**Este registro rápido no le otorga fiado al cliente**: su límite de crédito queda en $0, porque registrarlo para ganar puntos no significa que la tienda decidió fiarle. Si más adelante el negocio quiere darle crédito, un administrador debe asignarle un límite editándolo desde El Fiado — lo mismo aplica al botón **➕ Nuevo Cliente** de esta pantalla de CRM. Solo el botón "Nuevo Cliente" dentro de la propia pantalla de El Fiado asigna el límite por defecto de $500, porque ahí el registro es explícitamente para fiarle.

**El teléfono es obligatorio para registrar cualquier cliente nuevo** (aquí, en El Fiado o desde el botón ➕ Nuevo Cliente de esta misma pantalla), porque sin él el cliente no puede recibir recordatorios ni campañas por WhatsApp. Solo se pide un teléfono con 10 dígitos válidos. Esto no afecta a clientes que ya existían antes de este requisito: pueden seguir sin teléfono hasta que alguien lo agregue editándolos.

## 4. Puntos de fidelidad

### 4.1 Cómo se ganan

Cada venta ligada a un cliente gana puntos según la configuración: por defecto, **1 punto por cada $10** de venta (después de aplicar cualquier descuento por canje de puntos en esa misma venta). Los puntos se acreditan automáticamente al cerrar la venta, sin ninguna acción extra del cajero.

### 4.2 Cómo se canjean

Hay dos formas de canjear los puntos de un cliente:

1. **Durante una venta, desde el POS**: al seleccionar un cliente (con Crédito o con el selector opcional de Efectivo/Tarjeta) que tenga puntos disponibles, aparece un recuadro **"⭐ Puntos disponibles"** con un campo para indicar cuántos puntos canjear. El descuento correspondiente se resta del total a cobrar en esa misma venta.
2. **Desde "Puntos de fidelidad" (menú Clientes)**: la tabla lista a **todos los clientes registrados** (no solo a los de El Fiado) ordenados de más a menos puntos; usa el buscador para filtrarla por nombre, apodo o teléfono, y el botón **💵 Canjear** para aplicar un canje manual (por ejemplo, si el cliente quiere su descuento sin hacer una compra nueva). Pide confirmación antes de aplicarlo.

El valor de cada punto (cuántos pesos de descuento representa) se define en **⚙️ Configuración → Programa de fidelidad** (sección 4.4).

### 4.3 Devoluciones y puntos

Si se devuelve una venta que había generado puntos, el sistema **revierte la parte proporcional de esos puntos** (nunca deja el saldo de puntos del cliente en negativo). Esto es automático, no requiere ninguna acción del cajero al procesar la devolución.

### 4.4 Configuración (solo administrador)

En el menú lateral, **⚙️ Configuración → Programa de fidelidad**, un administrador puede ajustar:

| Campo | Qué controla |
|---|---|
| Pesos por 1 punto ganado | Cuántos pesos de venta se necesitan para ganar 1 punto (por defecto 10). |
| Valor de 1 punto ($) | A cuántos pesos de descuento equivale 1 punto al canjearlo (por defecto $1). |
| Días para "inactivo" | Cuántos días sin comprar hacen que un cliente aparezca en Seguimiento (por defecto 60). |

Esta sección es solo para administradores; un cajero no la ve.

### 4.5 Consultar el historial de puntos de un cliente

En la tabla de **Puntos de fidelidad**, usa **📜 Historial** en la fila del cliente para ver sus movimientos de puntos (acumulaciones, canjes, ajustes y reversiones) con fecha y saldo resultante de cada uno.

## 5. Seguimiento de clientes inactivos

La sección **Seguimiento** muestra la lista de clientes activos que no han comprado (con un cliente ligado) en los últimos N días configurados (60 por defecto). Un cliente que nunca ha comprado también aparece aquí.

Para cada cliente inactivo se muestra su nombre, teléfono (como `(999) 329-5690`; en la base de datos se guarda solo con dígitos) y fecha de última compra (o "Nunca ha comprado"). Si tiene un teléfono con 10 dígitos, hay un botón **💬 Contactar** que abre WhatsApp con un mensaje genérico invitándolo a regresar a la tienda.

## 6. Campañas y promociones

La sección **Campañas** permite crear mensajes masivos por WhatsApp dirigidos a un grupo de clientes. **No se envían automáticamente**: el sistema genera el mensaje y el enlace de WhatsApp por cliente, y cada empleado los abre y los envía desde su propio WhatsApp (el mismo mecanismo que ya se usa para el ticket de venta y los recordatorios de El Fiado).

### 6.1 Crear una campaña (solo administrador)

1. Clic en **➕ Nueva Campaña**.
2. Llena:
   - **Nombre** (obligatorio, solo para identificarla en la lista).
   - **Dirigida a**: todos los clientes, clientes inactivos, clientes con saldo pendiente (El Fiado), o clientes con una etiqueta específica.
   - **Etiqueta** (solo si eliges "con una etiqueta").
   - **Mensaje** (obligatorio) — puedes usar `{nombre}` o `{apodo}` dentro del texto y el sistema los sustituye por los datos reales de cada cliente al generar los destinatarios.
3. Clic en **Crear Campaña**.

### 6.2 Generar destinatarios y enviar

1. En la lista de campañas, clic en **👁️ Ver / Enviar**.
2. Clic en **🔄 Generar/Actualizar Destinatarios**: el sistema evalúa el segmento de la campaña en ese momento y crea la lista de clientes que cumplen la condición, con el mensaje ya personalizado para cada uno.
3. Para cada destinatario con teléfono válido, hay un botón **💬 Enviar** que abre WhatsApp con el mensaje ya escrito. Al usarlo, el destinatario se marca automáticamente como **✅ Enviado**.
4. Los clientes sin teléfono válido se muestran en la lista pero sin botón de envío ("Sin WhatsApp").
5. Si vuelves a generar destinatarios más adelante (por ejemplo, para volver a evaluar quién sigue inactivo), los que ya se marcaron como enviados **se conservan tal cual** — no se pierden ni se vuelven a enviar por accidente.

**Importante:** el estado "Enviado" se marca cuando el empleado abre el enlace de WhatsApp, no cuando el mensaje realmente llega — el sistema no tiene forma de confirmar que el mensaje se envió de verdad, así que esta marca depende de que el empleado use el botón en vez de saltarse el paso.

### 6.3 Desactivar o reactivar una campaña (solo administrador)

Las campañas **no se eliminan**. En la lista, **🚫 Desactivar** (con confirmación) la deja atenuada e inactiva, conservando su historial y destinatarios. **✅ Reactivar** la vuelve a poner en uso.

## 7. Datos y clientes que respalda el CRM

Los puntos de fidelidad, las etiquetas, la fecha de última compra y las campañas/promociones se tratan igual que los clientes y abonos de El Fiado: son **datos reales del negocio**, no catálogo de demostración. Por eso:

- **Restaurar un respaldo** anterior no revierte los puntos ni las campañas al estado de ese respaldo — se conservan los datos actuales, igual que pasa con El Fiado.

## 8. Preguntas frecuentes

**¿Tengo que seleccionar siempre un cliente al cobrar en Efectivo o Tarjeta?**
No. El selector de cliente es opcional y está colapsado por defecto — una venta anónima sigue funcionando exactamente igual que antes. Solo lo usas si quieres que ese cliente acumule puntos.

**¿Puedo canjear más puntos de los que tiene el cliente?**
No, el sistema lo bloquea tanto en el POS como en el canje manual desde Puntos de fidelidad.

**¿Qué pasa si devuelvo una venta que ya generó puntos?**
Los puntos ganados por esa venta se revierten proporcionalmente a lo devuelto, sin dejar el saldo de puntos en negativo.

**¿Las campañas se envían solas?**
No. El sistema solo genera el mensaje y el enlace de WhatsApp por cliente; cada envío lo hace un empleado manualmente, uno por uno (o en lote revisando la lista).

**¿Un cajero puede crear campañas?**
No, solo un administrador puede crear o archivar campañas. Un cajero sí puede generar destinatarios y enviarlas una vez creadas.
