# Alerta de descuadres de caja en Make

Guía paso a paso para montar en Make el mismo flujo que la plantilla de n8n `n8n-cierre-de-caja-alerta.json`: cada noche lee los cierres del día en una hoja de Google y te envía un solo correo con los que superan el umbral. Si ninguno lo supera, no llega nada.

Explicación completa en el artículo «Cierre de caja: cómo automatizar el control de descuadres» de fernandorivera.es.

> Es una plantilla para adaptar. Pruébala con datos de prueba antes de fiarte de ella. Los nombres de los módulos de Make pueden cambiar un poco con las versiones: si no encuentras uno exacto, busca el más parecido dentro de la misma app.

## Lo que necesitas

- Una cuenta de Make.
- Una cuenta de Google con Google Sheets y Gmail.
- Una hoja de cálculo con los cierres (abajo tienes las columnas).

## Prepara la hoja

Crea una pestaña llamada **Cierres**. En la fila 1, estas columnas:

| Fecha | Tienda | Caja | Medio de pago | Venta TPV | Contado | Descuadre | Usuario | Comentario |
|---|---|---|---|---|---|---|---|---|

- Una fila por caja y medio de pago.
- **Fecha** como texto con el formato AAAA-MM-DD (por ejemplo, 2026-11-03).
- **Descuadre** = Contado - Venta TPV. Negativo si falta dinero. Puede venir del TPV o ser una fórmula de la hoja.

La hoja la rellena tu TPV (por API, integración o el informe que envía por correo) o la persona que cierra. Si tu TPV tiene app en Make, puedes leer los cierres directamente de ahí y saltarte la hoja.

## Los módulos, en orden

### Programación del escenario
En el reloj de abajo a la izquierda del escenario, elige que se ejecute **cada día** a la hora en que ya estén todos los cierres (por ejemplo, 23:30). Revisa en los ajustes de tu perfil u organización que la zona horaria sea la de Madrid.

### Módulo 1 · Tools › Set multiple variables
Guarda la configuración en un solo sitio:

- `umbral_euros`: tu umbral, por ejemplo `5`.
- `hoy`: `{{formatDate(now; "YYYY-MM-DD")}}`.

### Módulo 2 · Google Sheets › Search Rows
- Conecta tu cuenta de Google.
- Elige la hoja y la pestaña **Cierres**.
- Marca que la tabla tiene cabeceras.
- Filtro: columna **Fecha** igual a la variable `hoy` del módulo 1.

Este módulo devuelve una fila por cierre del día, y Make ejecuta lo siguiente una vez por cada fila.

### Filtro entre el módulo 2 y el 3
Haz clic en la línea que une los dos módulos y crea un filtro:

- Condición: `{{abs(parseNumber(Descuadre; ","))}}`
- Operador: **Numeric operators › Greater than**
- Valor: la variable `umbral_euros`.

`parseNumber` con la coma convierte «-2,00» en un número. Si tu hoja devuelve los números con punto, cambia la coma por un punto.

### Módulo 3 · Tools › Text aggregator
Junta en un solo texto todas las filas que han pasado el filtro, para que te llegue un único correo:

- Source module: el módulo 2 (Search Rows).
- Row separator: New row.
- Text: `- {{Tienda}} · caja {{Caja}} · {{Medio de pago}}: {{Descuadre}} € (cerró {{Usuario}}) · {{Comentario}}`

### Módulo 4 · Gmail › Send an email
- To: tu correo.
- Subject: `Descuadres de caja {{formatDate(now; "DD/MM")}}`
- Content: un texto corto y debajo el resultado del módulo 3. Por ejemplo:

```
Estos cierres de hoy superan el umbral:

[texto del módulo 3]

Antes de dar nada por perdido: recuento, salidas sin anotar, cobros con tarjeta marcados como efectivo, anulaciones y fondo de caja.
```

Si ninguna fila pasa el filtro, el agregador no produce nada y no se envía correo.

## Pruébalo

1. Rellena la hoja con dos o tres filas inventadas con la fecha de hoy: una con descuadre por encima del umbral y otra por debajo.
2. Pulsa **Run once** y comprueba que llega un correo solo con la fila que supera el umbral.
3. Cuando funcione, activa la programación del escenario.

## Variantes

- **Aviso por WhatsApp o Slack** en lugar de correo: cambia el módulo 4 por el de la app que uses.
- **Cierre sin comentario:** añade al texto del módulo 3 una marca cuando la columna Comentario esté vacía, con `{{if(Comentario; Comentario; "SIN COMENTARIO")}}`.
- **Varias tiendas:** no cambia nada. Cada fila lleva su tienda y el correo las junta todas.

## Datos

En este flujo no interviene ninguna IA. Aun así, la hoja tiene el nombre de quien cierra: compártela solo con quien tenga que verla.
