← Volver al catálogo

💰 Balance Monitor Meta

Archivo: /Users/user/rifai-agents/agentes/migrated/balance-monitor-meta.ts · Plist: com.rifai.balance-monitor · Horario: cada hora (StartInterval 3600 s)

Qué hace

Vigila el saldo disponible de la cuenta publicitaria de Meta Ads para que las campañas no se queden sin fondos. Cada hora consulta el balance a la Graph API de Facebook. Si el saldo baja del umbral de 30 € lanza una alerta crítica. La alerta sale por el router de notificaciones hacia Maya (Meta), CEOSEC y Fernando (finanzas). Si el saldo está bien, solo lo registra en el log sin molestar a nadie.

Cómo funciona

1. Parsea .env con el snippet estándar de la flota (sin dotenv).

2. Hace GET a https://graph.facebook.com/v21.0/<META_AD_ACCOUNT_ID>?fields=balance,amount_spent,currency con el access token.

3. Convierte balance y amount_spent de céntimos a euros.

4. Compara el balance contra THRESHOLD = 30 €.

5. Si está por debajo, importa tools/notify-router.js y llama a notify({ event: 'meta_balance_low', level: 'critical', ... }) con un mensaje HTML que incluye saldo, umbral, gasto acumulado y enlace al billing hub de Meta. El level: 'critical' añade automáticamente copia a CEOSEC.

6. Si el balance es ≥ 30 €, solo imprime "Balance OK" y termina.

Datos/APIs

  • Meta Graph API (graph.facebook.com/v21.0) — lectura de balance de la ad account.
  • Router de notificaciones (tools/notify-router.ts) → Telegram (Maya/Meta + CEOSEC + Fernando vía evento meta_balance_low nivel critical).
  • Variables .env: META_ACCESS_TOKEN, META_AD_ACCOUNT_ID, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID (el router usa además los tokens de Maya y Fernando).

Cómo probarlo

cd /Users/user/rifai-agents && npx tsx agentes/migrated/balance-monitor-meta.ts

No tiene ventana horaria ni flag FORCE: cada ejecución consulta el balance real. Para no disparar la alerta de Telegram en pruebas, ejecútalo cuando el saldo esté por encima de 30 €, o revisa solo la salida del log (consulta la API igualmente).

Si se rompe / recuperar

launchctl unload ~/Library/LaunchAgents/com.rifai.balance-monitor.plist
launchctl load   ~/Library/LaunchAgents/com.rifai.balance-monitor.plist

Logs en /Users/user/rifai-agents/logs/balance-monitor.log. Errores típicos: token Meta caducado (status != 200 → process.exit(1)) o META_AD_ACCOUNT_ID mal formado (debe llevar prefijo act_).

Cómo replicarlo

Origen n8n: workflow snE1yS28Qf4uqLNb "Balance Monitor Meta" (carpeta Secretario). Backup en /Users/user/rifai-agents/backups/n8n-export/. Piezas para rehacerlo:

1. Trigger cron horario (launchd StartInterval 3600).

2. Nodo HTTP GET a la Graph API pidiendo balance,amount_spent,currency.

3. Conversión céntimos→euros y comparación contra umbral (30 €).

4. Rama condicional: si < umbral → notificación crítica vía router (meta_balance_low); si no, no-op.