🎯 Meta Audience Refresh (Custom Audience de compradores)
Archivo: agentes/marketing/meta-audience-refresh.ts · Plist: com.rifai.meta-audience-refresh · Horario: Cada 7 días (StartInterval 604800s)
Qué hace
Cada semana genera un CSV con los clientes que SÍ pagaron (pedidos paid + fulfilled, no cancelados, últimos 90 días) en el formato de Custom Audience de Meta. No sube nada automáticamente a Meta: deja el CSV listo en disco y notifica a Maya (bot Meta) con instrucciones paso a paso para subirlo manualmente como Custom Audience y crear desde ahí una Lookalike 1% España, que es la audiencia más rentable. Filtra fakes COD al exigir paid+fulfilled.
Cómo funciona
1. Carga .env.
2. GET /orders.json?financial_status=paid de los últimos 90 días (una página de 250).
3. Filtra buyers reales: financial_status==paid && fulfillment_status==fulfilled && !cancelled_at.
4. Deduplica por email/teléfono y extrae campos Meta (email, phone, fn, ln, city, zip, country=es).
5. Escribe data/meta-audience-paid-YYYY-MM-DD.csv con cabecera email,phone,fn,ln,ct,zip,country.
6. Notifica a Maya enviando el mensaje directamente al bot Meta (no usa notify-router): instrucciones + enlace al Business Manager.
Datos/APIs
- Shopify Admin API (
2024-10): orders. - Telegram (envío directo al bot Meta,
disable_notification). - Vars .env:
SHOPIFY_STORE,SHOPIFY_ACCESS_TOKEN,TELEGRAM_META_TOKEN(fallbackTELEGRAM_BOT_TOKEN),TELEGRAM_CHAT_ID,META_AD_ACCOUNT_ID(para el enlace).
Cómo probarlo
cd /Users/user/rifai-agents && npx tsx agentes/marketing/meta-audience-refresh.ts
Espera: conteo de pedidos 90d, "Buyers REALES (paid+fulfilled)", "CSV escrito: data/meta-audience-paid-*.csv" y "Notificado a Maya". Si no hay buyers, sale sin escribir.
Si se rompe / recuperar
launchctl unload ~/Library/LaunchAgents/com.rifai.meta-audience-refresh.plist
launchctl load ~/Library/LaunchAgents/com.rifai.meta-audience-refresh.plist
- Logs:
/Users/user/rifai-agents/logs/meta-audience-refresh.log - CSV de salida:
data/meta-audience-paid-*.csv.
Cómo replicarlo
- Lectura de pedidos paid de 90d + filtro paid+fulfilled (anti-COD).
- Dedup por email/teléfono y normalización a formato Meta Custom Audience.
- CSV en disco + mensaje Telegram con guía de subida manual + Lookalike.
- Nota: NO sube a Meta automáticamente (decisión humana, evita gasto/errores).