Admin / Syncs
CRM full baseline
pending Allowed, but never run
Requires CRM_ALLOW_FULL_BASELINE=true and --confirm-full-baseline together (npm run sync:crm:full-baseline). The ~8,000-record baseline is intentionally not run automatically by anything on this page.
Google Sheets configuration
Fuente activa: la pestaña "Trabajo diario" de la hoja unificada actual. Esta reemplazó a la hoja anterior (con sus múltiples pestañas históricas) a partir del corte de 2026-09 - esa hoja anterior ya no se usa como fuente en vivo.
configured Live access is enabled and credentials are present - this does not by itself mean a sync has succeeded.
| GOOGLE_SHEETS_LIVE_ENABLED | true |
|---|---|
| Spreadsheet ID | 1XZqT2g_a2V-tSPkQENCgwLTX7VGSk3rKVuC8faT0gGo |
| Tab | Trabajo diario |
| Service account configured | yes |
The freshness and sync-run tables below are the source of truth for whether Google Sheets is actually live - this panel only reports configuration, never an assumed status.
Cohorte operativa 2026
Clasificación por registro actual (source_records.is_current), a partir de la fecha confirmada de cada fuente (CRM "Fecha", Sheets "Fecha ingreso") - ver src/server/domain/cohort.ts. Ningún registro histórico se elimina ni se sobrescribe; esta tabla solo cuenta cómo está clasificado hoy.
| Fuente | Incluidos 2026 | Históricos excluidos | Requieren revisión de fecha | Sin clasificar | Total actual |
|---|---|---|---|---|---|
| crm | 0 | 0 | 0 | 0 | 0 |
| google_sheets | 0 | 0 | 0 | 0 | 0 |
Refresh status - lo que sabemos hoy sobre cada fuente
Estos tres indicadores contestan preguntas distintas y no se deben confundir: que hubo actividad reciente no significa que haya una reconciliación completa, y una reconciliación completa pasada no significa que el conteo actual de la fuente siga siendo consistente hoy.
crm
| Actividad reciente verificada | never_synced último éxito: — · último intento: — |
|---|---|
| Reconciliación completa de la fuente | nunca completada |
| Cobertura vs. fuente | unknown actual: 0 · último reportado por la fuente: — · en última reconciliación: — |
google_sheets
| Actividad reciente verificada | never_synced último éxito: — · último intento: — |
|---|---|
| Reconciliación completa de la fuente | nunca completada |
| Cobertura vs. fuente | unknown actual: 0 · último reportado por la fuente: — · en última reconciliación: — |
Source freshness
| Source | Status | Last success | Last attempt | Consecutive failures | Last error (redacted) |
|---|---|---|---|---|---|
| crm | never_synced | — | — | 0 | — |
| google_sheets | never_synced | — | — | 0 | — |
| meta_leads | never_synced | — | — | 0 | — |
CRM field coverage
Computed from currently-ingested CRM source records - not a claim about the CRM, a read of what Guardian actually has. The confirmed listing endpoint doesn't expose phone/email/owner/origin/medium at all (see CRM_CONNECTOR.md), so those are expected to show 0% here - see the CRM detail hydration panel below for those fields, cached separately from a per-contact detail fetch.
No CRM source records ingested yet.
CRM detail hydration
Separate from the CRM list above: npm run hydrate:crm-details progressively fetches each contact's detail page (teléfono, email, domicilio, asesora, origen, medio, observaciones, fecha de creación - see CRM_CONNECTOR.md "CRM detail hydration") and caches the latest successful result separately from the list snapshot. Disabled by default (HYDRATE_CRM_DETAILS_ENABLED=false); nothing here implies it is scheduled to run automatically.
| Elegibles (con detail_path conocido) | 0 |
|---|---|
| Hidratados al menos una vez | 0 |
| Nunca hidratados | 0 |
| Fallando actualmente (último intento) | 0 |
| Última hidratación exitosa | — |
Ningún contacto fue hidratado todavía - no hay cobertura de campos de detalle que mostrar.
Procedencia por campo: nombre / estado / localidad / provincia / tipo vienen del listado CRM (arriba); teléfono / email / domicilio / asesora / origen / medio / observaciones / fecha de creación vienen de esta hidratación de detalle, cuando está disponible; CT 1-7 / fuente / situación CRM vienen de Google Sheets. Ningún campo se sobrescribe entre fuentes - se combinan con esta precedencia.
Recent sync runs
| Started | Source | Origin | Trigger | Status | Read | Created | Updated | Unchanged | Failed | Cursor / progress | Latest error (redacted) |
|---|---|---|---|---|---|---|---|---|---|---|---|
No sync runs yet. Run npm run seed:demo for demo data, or npm run sync:crm for a live (dry-run by default) CRM sync. | |||||||||||