Meta/Google con las mismas métricas que Resumen y solo campañas/ads con actividad en el periodo; Social con insights FB/IG y preview de posts (likes/comentarios/shares); Orgánico con paneles distintos por ítem del menú y prioridades/notas solo en visión general.
Co-authored-by: Cursor <cursoragent@cursor.com>
Calendario editorial anidado en Social; Orgánico con queries/páginas GSC y landings GA4 + dashboard GEO; Biblioteca enlazada a la carpeta real del cliente bajo 03-Clientes (no carpetas homónimas); previews Ads solo en Meta/Google.
Co-authored-by: Cursor <cursoragent@cursor.com>
Selector de fechas en header (con Personalizado) compartido en el dashboard; Métricas con Ventas/CAC/ROAS CRM, cruce canal y gráficas diarias; Seguimiento solo notas + sync Superhuman; Activos con navegación Drive; Social con métricas IG/FB; Orgánico con prioridades SEO/GEO expertas.
Co-authored-by: Cursor <cursoragent@cursor.com>
Renombra Ad Tracker a Ads, añade módulo Social (perfiles RRSS)
y abre Biblioteca en pestaña Drive. Aclara histórico GSC en Orgánico.
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>
Navegación por visión general, competencia, prompts, percepción,
auditoría, keywords, backlinks y prioridades accionables por cliente.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nueva sección con métricas Search Console/GA4, cimientos SEO y
Share of Model por motor (ChatGPT/Gemini/AI Overviews).
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>
Los totales de Métricas usaban solo ad_daily (cohort a 0). Ahora suman
deals won; selectores y tipografía ganan contraste sobre fondo blanco.
Co-authored-by: Cursor <cursoragent@cursor.com>
URL pública por tenant (?tenant=slug) para contactos y oportunidades;
middleware permite POST sin sesión.
Co-authored-by: Cursor <cursoragent@cursor.com>
KPIs filtraba por inicio de semana (omitía días de Sep en la semana
del 31-ago); ahora Mes/7d/30d suman ad_daily día a día como Ad Tracker.
Co-authored-by: Cursor <cursoragent@cursor.com>
kpi_weekly es una MV de solo lectura sin canales paid; canal/seguimiento
ahora hacen fallback a ad_daily. Bump Google Ads API a v21 en sync.
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>
Permite subir media sin URL; previews Google PMax por ratio; calendario anual estilo Miia con filtros IG/FB y LinkedIn; seguimiento con selector de fechas, KPIs y cuadro de notas.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cada pieza muestra mock Meta/Google Ads o RRSS (feed, Stories, LinkedIn) como el Ad Tracker, con copy, media y canal editables.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replica agua-miia/rrss (hub, archivo, octubre 2026 con 27 piezas) y añade Ad Tracker por tenant al estilo Brava (periodos, Meta+Google, CPL/clics, campañas).
Co-authored-by: Cursor <cursoragent@cursor.com>
Private RRSS calendar with unified + per-network tabs, comments, and
double-check OK. Assets get review drawer with preview/comments. KPIs
gain date presets, North Star strip, channel matrix and per-channel dash.
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>
Rebuild KPIs as a real dashboard (period deltas, tenant zoom), clarify
objetivos/calendario/activos sources, and turn creatives into a status
pipeline with delete.
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>