{{ error }}
Dashboard
Estado de la plataforma en tiempo real
MRR estimado
{{ stats.mrr_estimate_eur }} €
{{ stats.paying_total }} de pago · precios mensuales
Owners
{{ stats.owners_total }}
{{ stats.suspended_total }} suspendidos
Trials activos
{{ stats.trials_active }}
{{ stats.trials_expiring_7d }} expiran en 7 días
Escuelas
{{ stats.schools_total }}
{{ stats.classes_total }} clases · {{ stats.sessions_total }} sesiones
Alumnos activos
{{ stats.students_active_total }}
en toda la plataforma
🎯 Oportunidades de conversión — escuelas free cerca del límite
🎯 Sin oportunidades de conversión ahora mismo — ninguna escuela free supera el 80% del límite de alumnos.
Funnel de conversión (total · últimos 30 días)
{{ funnelLabels[f.event] || f.event }}
{{ f.total }} · {{ f.last_30d }}
Conversión a pago: {{ conversionRate }}
(upgraded / registered)
Owners por plan
{{ stats.owners_by_plan.free }}
Free
{{ stats.owners_by_plan.professional }}
Pro
{{ stats.owners_by_plan.business }}
Business
⚠ {{ stats.trials_expiring_7d }} trial(s) expiran esta semana — momento de contactarlos. Ver owners →
Owners
{{ filteredOwners.length }} de {{ owners.length }} cuentas
◎
{{ owners.length ? 'Sin resultados con estos filtros.' : 'Aún no hay owners registrados.' }}| Owner {{ sort.owners.dir>0?'▲':'▼' }} | Plan {{ sort.owners.dir>0?'▲':'▼' }} | Estado | Alumnos {{ sort.owners.dir>0?'▲':'▼' }} | Escuelas | Alta {{ sort.owners.dir>0?'▲':'▼' }} |
|---|---|---|---|---|---|
{{ o.name }} {{ o.last_name }} {{ o.email }} |
{{ o.plan }} trial→{{ o.effective_plan }} | {{ o.subscription_status || 'sin suscripción' }} |
{{ o.active_students }}/{{ o.student_limit }}
{{ o.active_students }}
|
{{ o.school_count }} |
{{ fmtDate(o.created_at) }}
💤 sin datos
✉ D+2 {{ fmtDate(o.activation_email_sent_at) }}
|
Escuelas
{{ filteredSchools.length }} de {{ schools.length }} centros
⌂
{{ schools.length ? 'Sin resultados con estos filtros.' : 'Aún no hay escuelas creadas.' }}| Centro {{ sort.schools.dir>0?'▲':'▼' }} | Owner | Plan | Alumnos {{ sort.schools.dir>0?'▲':'▼' }} | Clases | Sesiones | |
|---|---|---|---|---|---|---|
|
{{ s.name }} sin acceso
{{ fmtDate(s.created_at) }}
|
{{ s.owner_name || '—' }} {{ s.owner_email }} |
{{ s.plan }} | {{ s.active_students }} | {{ s.classes }} | {{ s.sessions }} |
Plantillas de email
Edita los emails de conversión que envías desde Oportunidades
Editor (personalizada — {{ tplCurrent.updated_by }}, {{ fmtRel(tplCurrent.updated_at) }})
Variables:
y condicional
La prueba usa datos de ejemplo (Academia Ejemplo, 38/40) y llega a MailHog en dev: localhost:8025
Vista previa — {{ tplPreview.subject }}
✉
Pulsa "Vista previa" para renderizar con datos de ejemplo.Tickets de soporte
{{ ticketTotal }} tickets ({{ ticketFilter === 'all' ? 'todos' : ticketStatusLabels[ticketFilter] }})
⚑
Sin tickets en este estado.| Cuándo | Escuela | Usuario | Tipo | Asunto | Estado |
|---|---|---|---|---|---|
| {{ fmtRel(t.created_at) }} | {{ schoolNameById(t.school_id) }} | {{ t.user_name || t.user_email }} | {{ t.type === 'bug' ? '🐛 ' : '' }}{{ ticketTypeLabels[t.type] || t.type }} | {{ t.subject }} | {{ ticketStatusLabels[t.status] || t.status }} |
Emails enviados
{{ notifTotal }} registros ({{ notifFilter === 'all' ? 'todos' : (notifStatusLabels[notifFilter] || notifFilter) }})
⌲
Sin envíos registrados todavía.| Cuándo | Servicio | Tipo | Destinatario | Asunto | Estado | |
|---|---|---|---|---|---|---|
| {{ fmtRel(n.sent_at) }} | {{ n.service }} | {{ n.type || '—' }} | {{ n.to }} | {{ n.subject }} {{ n.error }} |
{{ notifStatusLabels[n.status] || n.status }} | ↻ reenviado |
Auditoría
{{ auditTotal }} acciones del backoffice
≡
Sin actividad registrada todavía.| Cuándo | Admin | Acción | Detalles |
|---|---|---|---|
| {{ fmtRel(a.at) }} | {{ a.admin_email }} | {{ auditLabels[a.action] || a.action }} | {{ a.details }} |