Warehouse leads/deals from GHL contacts and opportunities so Métricas and CRM can use the same scorecard as Clientify.
Co-authored-by: Cursor <cursoragent@cursor.com>
El CRM solo vivía de webhooks; ahora hay pull Clientify, cron daily-sync incluye CRM, y cada módulo de Agencia tiene sync manual.
Co-authored-by: Cursor <cursoragent@cursor.com>
Comparativas WoW/MoM/YoY muestran prev/Δ además del %; sync ads admite
histórico desde 2025; tabla ads↔CRM añade cierres, ventas y ROAS.
Co-authored-by: Cursor <cursoragent@cursor.com>
Exporta el Google Doc en HTML, parte por fecha y guarda todo el bloque (listas, negritas, links) sin truncar.
Co-authored-by: Cursor <cursoragent@cursor.com>
Los docs de seguimiento son Google Docs embebidos: se exportan, se parten por fecha y se acumulan. Social renderiza VIDEO/REELS y trae vídeos de página.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bootstrap unificado post-OAuth + botón Emparejar todo. Meta discover
también intenta FB/IG pages con el token system user (API 4V2030).
Co-authored-by: Cursor <cursoragent@cursor.com>
Al guardar ID o URL en el cliente se valida con OAuth de agencia;
Drive acepta URL o folder id; Orgánico se rellena si hay acceso.
Co-authored-by: Cursor <cursoragent@cursor.com>
«Conectar» en la ficha solo guarda la referencia; last_sync queda
para syncs reales. Drive acepta URL completa → folder id.
Co-authored-by: Cursor <cursoragent@cursor.com>
El callback creía haber guardado el token y fallaba al emparejar Drive
con «no conectado». Upsert on_conflict=provider + match no bloquea OAuth.
Co-authored-by: Cursor <cursoragent@cursor.com>
El botón Sync 28d pasa a «Actualizar ahora»; la vista refresca sola
si faltan datos y hay endpoint /api/cron/organic-sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cada tenant tiene una ficha con plataformas, invitaciones por email,
logo de marca y toggles de módulos visibles en el portal cliente.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rellena ad_daily desde Meta, KPIs con fallback a daily, objetivos de presupuesto vs consecución, y simulador sin TikTok anclado a métricas del cliente.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync Superhuman Docs seguimiento/KPI pages into the portal (never passwords)
and show clients a dynamic timeline plus per-channel kpi_weekly charts.
Co-authored-by: Cursor <cursoragent@cursor.com>
While Meta review is pending, agency can match Google Ads alone and
paste the system user token later without a redeploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency panel lists accessible ad accounts and matches them to
clients by name, same pattern as Drive folders.
Co-authored-by: Cursor <cursoragent@cursor.com>
Per-client CMS/ecommerce channels in the agency hub with URL/API
placeholders; live sync can come later.
Co-authored-by: Cursor <cursoragent@cursor.com>
Matrix view of Meta/Google/Drive/Clientify, follow/archive clients,
and per-channel ON/OFF with account IDs in the client hub.
Co-authored-by: Cursor <cursoragent@cursor.com>
Connect marketing@ once, match Drive folders to tenants by name,
list Drive in Activos, and mirror portal uploads to the linked folder.
Co-authored-by: Cursor <cursoragent@cursor.com>
Admin home lists tenants, alerts, and connection health; header
selector enables superadmin context; Meta/GA4/GSC/GTM/CRM/email
slots live per tenant (manual status until OAuth).
Co-authored-by: Cursor <cursoragent@cursor.com>