Introducción
El módulo SpendAlerts gestiona las alertas de gasto de WhatsApp: Plazbot revisa el gasto en Meta cada 2 horas y avisa por correo al llegar a un porcentaje del tope, si la proyección del período lo va a superar o ante un día con gasto inusual. Son las mismas alertas de Reportes > WhatsApp > Alertas de gasto. Disponible desde la versión 2.4.0.
Inicialización
Plazbot (recomendado)·ts
01import { Plazbot } from 'plazbot';0203const plazbot = new Plazbot({04 workspaceId: "YOUR_WORKSPACE_ID",05 apiKey: "YOUR_API_KEY",06 zone: "LA"07});0809// Usar: plazbot.spendAlerts.summary()
Gasto del mes
ts
01const summary = await plazbot.spendAlerts.summary();02console.log(summary.monthSpend, summary.forecast, summary.currency);
Crear una alerta
ts
01// Avisar al 80 % y al 100 % de 200 por mes02const alert = await plazbot.spendAlerts.create({03 name: "Tope mensual",04 period: "monthly",05 amount: 200,06 thresholds: [80, 100],07 recipients: ["finanzas@empresa.com"]08});0910// Avisar si un día se gasta 3 veces el promedio11await plazbot.spendAlerts.create({12 name: "Gasto inusual",13 period: "anomaly",14 anomalyMultiplier: 3,15 recipients: ["operaciones@empresa.com"]16});
| Campo | Descripción |
|---|---|
name | Nombre de la alerta. |
period | daily, weekly, monthly, custom (con customStart y customEnd, yyyy-MM-dd) o anomaly. |
amount | Tope en la moneda de la cuenta de Meta. No aplica a anomaly. |
recipients | Correos que reciben los avisos (máximo 20). |
phoneNumber | Solo este número. Si lo omites, todos los números del workspace. |
categories | Solo estas categorías: MARKETING, UTILITY, AUTHENTICATION, SERVICE. Vacío = todas. |
thresholds | Porcentajes del tope en los que se avisa. Por defecto [50, 80, 100]. |
forecastEnabled | Avisar si la proyección del período supera el tope. Por defecto true. |
anomalyMultiplier / anomalyMinAmount | anomaly: veces el promedio de 7 días (por defecto 2) y monto mínimo para avisar (por defecto 5). |
Gestionar
ts
01const alerts = await plazbot.spendAlerts.list();02await plazbot.spendAlerts.update(alert.id, { amount: 300 }); // lo que no pases se mantiene03await plazbot.spendAlerts.update(alert.id, { enabled: false });04const { sentNotifications } = await plazbot.spendAlerts.check(alert.id); // revisar ahora05await plazbot.spendAlerts.sendTest(alert.id, "yo@empresa.com"); // correo de prueba06const history = await plazbot.spendAlerts.history(); // avisos de los últimos 30 días07await plazbot.spendAlerts.delete(alert.id);
Cambiar el tope, el período, el número, las categorías o los umbrales reinicia los avisos del período en curso.