Ecosistema LPDI — Versión 2 — 2026-06-01
30 correos · Organizados por: USUARIO → STARTUP → ICG
CATEGORÍA / DESTINATARIO / EXISTENCIA / PRIVILEGIO / TIPO MENSAJE / TYC / FUENTE| # | ID ant. | Nombre Técnico | Asunto del correo | Destino CTA | Descripci | Descripción | oacute;nTyC | Img |
|---|---|---|---|---|---|---|---|---|
| USUARIO — Correos de cuenta y autenticación (10) | ||||||||
| 01 | AUTH-001 | USUARIO/USER/NUEVO/NO-ED/Confirmación de Correo/NO-TYC/SUPA | “Confirma tu cuenta en el Ecosistema LPDI” | {{ .ConfirmationURL }} → eco.lpdi.co/ | Verificación del email al crear cuenta nueva. Enviado automáticamente por Supabase. | NO | ✓ | |
| 02 | AUTH-002 | USUARIO/USER/EXIST/NO-ED/Recuperación de Contraseña/NO-TYC/SUPA | “Restablece tu contraseña — Ecosistema LPDI” | eco.lpdi.co/auth/recuperar?token_hash=...&type=recovery | Enlace para restablecer contraseña olvidada. | NO | ✓ | |
| 03 | AUTH-003 | USUARIO/USER/NUEVO/NO-ED/Magic Link/NO-TYC/SUPA | “Tu enlace de acceso — Ecosistema LPDI” | {{ .ConfirmationURL }} → eco.lpdi.co/ | Acceso directo sin contraseña. Usado en invitaciones administrativas. | NO | ✓ | |
| 04 | AUTH-004 | USUARIO/USER/EXIST/NO-ED/Cambio de Correo/NO-TYC/SUPA | “Confirma el cambio de correo — Ecosistema LPDI” | {{ .ConfirmationURL }} → eco.lpdi.co/ | Verificación del nuevo email cuando el usuario cambia su dirección. | NO | ✓ | |
| 05 | NUEVO | USUARIO/USER/NUEVO/NO-ED/Invitación Admin/NO-TYC/SUPA | “Has sido invitado al Ecosistema LPDI” | {{ .ConfirmationURL }} → eco.lpdi.co/ | Invitación directa desde Supabase Dashboard. Reservado para uso administrativo. | NO | ✓ | |
| 06 | NUEVO | USUARIO/USER/EXIST/NO-ED/Reautenticación OTP/NO-TYC/SUPA | “Código de verificación — Ecosistema LPDI” | Código OTP (sin botón) | Código de verificación para acciones sensibles que requieren reautenticación. | NO | ✓ | |
| 07 | NUEVO | USUARIO/USER/EXIST/NO-ED/Notificación Correo Cambiado/NO-TYC/SUPA | “Tu correo electrónico ha sido cambiado — Ecosistema LPDI” | Sin CTA | Avisa al usuario que su dirección de correo fue actualizada exitosamente. | NO | ✓ | |
| 08 | NUEVO | USUARIO/USER/EXIST/NO-ED/Notificación Contraseña Cambiada/NO-TYC/SUPA | “Tu contraseña ha sido cambiada — Ecosistema LPDI” | Sin CTA | Avisa al usuario que su contraseña fue actualizada. Enviado por Supabase automáticamente. | NO | ✓ | |
| 09 | EMAIL-017 | USUARIO/USER/EXIST/NO-ED/Eliminación de Cuenta/NO-TYC/LPDI | “Tu cuenta en el Ecosistema LPDI ha sido eliminada” | eco.lpdi.co | Confirmación de eliminación voluntaria de cuenta. Para volver, debe registrarse de nuevo. | NO | ✓ | |
| 10 | NUEVO | USUARIO/USER/EXIST/NO-ED/Contraseña Actualizada/NO-TYC/LPDI | “Tu contraseña ha sido actualizada — Ecosistema LPDI” | eco.lpdi.co/auth/recuperar | Notificación del sistema LPDI cuando el usuario cambia su contraseña. | NO | — | |
| STARTUP — Registro, equipo y ciclo de vida de Startups/PyMEs (17) | ||||||||
| 11 | EMAIL-001 | STARTUP/CEO/NUEVO/SI-ED/Bienvenida Registro/SI-TYC/LPDI | “Bienvenido al Ecosistema LPDI — Confirma tu cuenta” | ${confirmUrl} (Supabase) | Bienvenida al registrante de una startup. Enlace para confirmar cuenta. TyC se aceptaron en el formulario. | SÍ | ✓ | |
| 12 | EMAIL-008 | STARTUP/CEO/NUEVO/SI-ED/Bienvenida CEO Designado/SI-TYC/LPDI | “Bienvenido al Sistema LPDI — {empresa}” | /dashboard o ${resetUrl} | CEO diferente al registrante. Recibe credenciales temporales. Debe aceptar TyC al primer acceso. | SÍ | ✓ | |
| 13 | EMAIL-009 | STARTUP/CEO/EXIST/SI-ED/Bienvenida CEO Designado/NO-TYC/LPDI | “Bienvenido al Sistema LPDI — {empresa}” | /dashboard o ${resetUrl} | CEO designado que ya tiene cuenta LPDI. Solo le informa de la nueva startup vinculada. | NO | ✓ | |
| 14 | EMAIL-002 | STARTUP/CEO/EXIST/SI-ED/Seguimiento de Score/NO-TYC/LPDI | “Aumenta el score de tu perfil en el Ecosistema LPDI” | ${profileUrl} (perfil startup) | Recordatorio automático (~2 días) para que el CEO complete el perfil y suba su score. | NO | ✓ | |
| 15 | EMAIL-003 | STARTUP/CEO/NUEVO/SI-ED/Recordatorio día 3/NO-TYC/LPDI | “Recordatorio: confirma tu cuenta en el Ecosistema LPDI” | ${confirmUrl} (Supabase) | Primer recordatorio si no ha confirmado email. Quedan 4 días antes de la expiración. | NO | ✓ | |
| 16 | EMAIL-004 | STARTUP/CEO/NUEVO/SI-ED/Recordatorio Urgente día 6/NO-TYC/LPDI | “Ultimo aviso: confirma tu cuenta en el Ecosistema LPDI” | ${confirmUrl} (Supabase) | Aviso urgente con banner amarillo. Si no confirma, la startup se elimina automáticamente. | NO | ✓ | |
| 17 | EMAIL-005 | STARTUP/CEO/NUEVO/SI-ED/Expiración de Registro/NO-TYC/LPDI | “El registro de {empresa} en el Ecosistema LPDI ha expirado” | ${registerUrl} | Startup eliminada por no confirmar en 7 días. Puede registrarse de nuevo. | NO | ✓ | |
| 18 | EMAIL-010 | STARTUP/TEAM/NUEVO/NO-ED/Invitación al Equipo/SI-TYC/LPDI | “{CEO} te ha incluido en el equipo de {empresa} — confirma tu registro” | ${confirmUrl} / ${rejectUrl} | Invitación a miembro sin cuenta LPDI. Muestra datos y requiere aceptar TyC. Privilegio varía según asignación del CEO. | SÍ | ✓ | |
| 19 | EMAIL-011 | STARTUP/TEAM/EXIST/NO-ED/Invitación al Equipo/NO-TYC/LPDI | “{CEO} te ha incluido en el equipo de {empresa} — confirma tu registro” | ${confirmUrl} / ${rejectUrl} | Invitación a miembro que ya tiene cuenta. No necesita TyC. Solo confirma o rechaza. | NO | ✓ | |
| 20 | EMAIL-012 | STARTUP/TEAM/EXIST/SI-ED/Bienvenida con Edición/NO-TYC/LPDI | “Bienvenido al equipo de {empresa} en LPDI” | ${resetUrl} (Supabase reset) | Miembro confirmó vinculación y tiene permiso de edición. Recibe credenciales. | NO | ✓ | |
| 21 | EMAIL-013 | STARTUP/TEAM/EXIST/NO-ED/Bienvenida sin Edición/NO-TYC/LPDI | “Bienvenido al equipo de {empresa} en LPDI” | ${resetUrl} (Supabase reset) | Miembro confirmó vinculación pero solo puede ver, no modificar. | NO | ✓ | |
| 22 | EMAIL-014 | STARTUP/TEAM/EXIST/NO-ED/Confirmación de Rechazo/NO-TYC/LPDI | “Confirmación: no haces parte del equipo de {empresa}” | ${confirmAgainUrl} (condicional) | Confirma al miembro que rechazó exitosamente la invitación. | NO | ✓ | |
| 23 | EMAIL-015 | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Aceptó/NO-TYC/LPDI | “{miembro} aceptó la invitación al equipo de {empresa}” | eco.lpdi.co/dashboard | Avisa al CEO que un miembro aceptó. Muestra nombre, correo y permisos. | NO | ✓ | |
| 24 | EMAIL-016 | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Rechazó/NO-TYC/LPDI | “{miembro} rechazó la invitación al equipo de {empresa}” | eco.lpdi.co/dashboard | Avisa al CEO que un miembro rechazó. Sugiere contactarlo si fue error. | NO | ✓ | |
| 25 | NUEVO | STARTUP/TEAM/EXIST/SI-ED/Cambio de Permisos/NO-TYC/LPDI | “Cambio de permisos en {empresa}” | eco.lpdi.co/dashboard | Notifica al miembro cuando el CEO modifica sus permisos de edición. | NO | — | |
| 26 | EMAIL-018 | STARTUP/USER/EXIST/NO-ED/Eliminación de Entidad/NO-TYC/LPDI | “El registro de {entidad} ha sido eliminado del Ecosistema LPDI” | ${dashboardUrl} (papelera) | Notifica a TODOS los asociados que la entidad fue eliminada. Opción de restaurar en 30 días. Aplica también a ICG. | NO | ✓ | |
| 27 | NUEVO | STARTUP/USER/EXIST/NO-ED/Restauración de Entidad/NO-TYC/LPDI | “{entidad} ha sido restaurado en el Ecosistema LPDI” | ${dashboardUrl} | Notifica que la entidad fue restaurada desde la papelera. Aplica también a ICG. | NO | — | |
| ICG — Registro y ciclo de vida de ICGs (3) | ||||||||
| 28 | EMAIL-006 | ICG/CON/NUEVO/NO-ED/Bienvenida Contacto/SI-TYC/LPDI | “{ICG} te ha asignado como contacto en el Ecosistema LPDI” | /dashboard o ${resetUrl} | Contacto designado sin cuenta LPDI. Recibe credenciales temporales. Debe aceptar TyC al primer acceso. | SÍ | ✓ | |
| 29 | EMAIL-007 | ICG/CON/EXIST/NO-ED/Bienvenida Contacto/NO-TYC/LPDI | “{ICG} te ha asignado como contacto en el Ecosistema LPDI” | /dashboard o ${resetUrl} | Contacto que ya tiene cuenta LPDI. Solo le notifica la nueva vinculación. | NO | ✓ | |
| 30 | EMAIL-019 | ICG/CON/EXIST/NO-ED/Expiración de Registro/NO-TYC/LPDI | “El registro de {organización} en el Ecosistema LPDI ha expirado” | ${registerUrl} → eco.lpdi.co | ICG eliminado automáticamente por no confirmar. Se notifica al contacto y asociados. | NO | ✓ | |
| Nombre técnico | USUARIO/USER/NUEVO/NO-ED/Confirmación de Correo/NO-TYC/SUPA |
| Función en código | Supabase Auth — Confirm signup template |
| Asunto | “Confirma tu cuenta en el Ecosistema LPDI” |
| Trigger | Supabase Auth dispara tras signup o signInWithOtp |
| Destinatario | Email del usuario nuevo |
| CTA | Botón: “Confirmar mi cuenta” Destino: {{ .ConfirmationURL }} → redirige a https://eco.lpdi.co/ (SITE_URL con token de confirmación) |
| Descripción | Correo automático de Supabase para verificar que el email es válido al crear una cuenta nueva. El diseño usa el template personalizado configurado en el dashboard de Supabase con branding LPDI. |
| TyC / Tratamiento | NO — Los TyC se aceptan en el formulario de la aplicación ANTES de que Supabase envíe este correo. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Recuperación de Contraseña/NO-TYC/SUPA |
| Función en código | Supabase Auth — Reset password template |
| Asunto | “Restablece tu contraseña — Ecosistema LPDI” |
| Trigger | Usuario solicita reset de contraseña vía /auth/reset |
| Destinatario | Email del usuario |
| CTA | Botón: “Restablecer mi contraseña” Destino: https://eco.lpdi.co/auth/recuperar?token_hash=...&type=recovery |
| Descripción | Permite al usuario restablecer su contraseña mediante un enlace seguro con expiración (por defecto 24h). Template personalizado con branding LPDI. |
| TyC / Tratamiento | NO — Acción de seguridad/recuperación. No requiere aceptación. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/NUEVO/NO-ED/Magic Link/NO-TYC/SUPA |
| Función en código | Supabase Auth — Magic link template |
| Asunto | “Tu enlace de acceso — Ecosistema LPDI” |
| Trigger | Admin invita usuario vía supabase.auth.admin.inviteUserByEmail() |
| Destinatario | Email del usuario invitado |
| CTA | Botón: “Iniciar sesión” Destino: {{ .ConfirmationURL }} → redirige a https://eco.lpdi.co/ (SITE_URL) |
| Descripción | Enlace mágico para acceso directo sin contraseña. Actualmente NO se usa en el flujo principal (las invitaciones van por correos #14/#15). Reservado para invitaciones administrativas manuales. |
| TyC / Tratamiento | NO — TyC deberían validarse en la aplicación al llegar. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Cambio de Correo/NO-TYC/SUPA |
| Función en código | Supabase Auth — Change email template |
| Asunto | “Confirma el cambio de correo — Ecosistema LPDI” |
| Trigger | Usuario cambia su email desde configuración de cuenta |
| Destinatario | Email nuevo del usuario |
| CTA | Botón: “Confirmar cambio de correo” Destino: {{ .ConfirmationURL }} → redirige a https://eco.lpdi.co/ (SITE_URL) |
| Descripción | Verificación del nuevo correo cuando el usuario actualiza su dirección de email. El email anterior sigue activo hasta que se confirme el nuevo. |
| TyC / Tratamiento | NO — Verificación de identidad. No requiere nueva aceptación. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/NUEVO/NO-ED/Invitación Admin/NO-TYC/SUPA |
| Función en código | Supabase Auth — Invite template |
| Asunto | “Has sido invitado al Ecosistema LPDI” |
| Trigger | Admin invita usuario desde Supabase Dashboard vía inviteUserByEmail() |
| Destinatario | Email del usuario invitado por admin |
| CTA | Botón: “Aceptar invitación” Destino: {{ .ConfirmationURL }} → redirige a https://eco.lpdi.co/ (SITE_URL) |
| Descripción | Template de invitación directa. Actualmente NO se usa en el flujo normal del sistema (las invitaciones de equipo van por correos #14/#15 del sistema LPDI). Disponible para invitaciones manuales desde el dashboard de Supabase. |
| TyC / Tratamiento | NO — TyC se validan en la aplicación al llegar. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Reautenticación OTP/NO-TYC/SUPA |
| Función en código | Supabase Auth — Reauthentication template |
| Asunto | “Código de verificación — Ecosistema LPDI” |
| Trigger | Usuario intenta una acción que requiere reautenticación (ej: cambio de contraseña, eliminación de cuenta) |
| Destinatario | Email del usuario |
| CTA | Sin botón CTA — muestra código OTP {{ .Token }} en el cuerpo del correo |
| Descripción | Envía un código numérico de verificación para acciones sensibles. El usuario debe ingresar el código en la aplicación para continuar. |
| TyC / Tratamiento | NO — Es verificación de identidad para seguridad. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Notificación Correo Cambiado/NO-TYC/SUPA |
| Función en código | Supabase Auth — Email changed notification |
| Asunto | “Tu correo electrónico ha sido cambiado — Ecosistema LPDI” |
| Trigger | Supabase detecta que el email del usuario fue cambiado exitosamente |
| Destinatario | Email anterior del usuario (el que se reemplazó) |
| CTA | Sin CTA — correo informativo (notificación de seguridad) |
| Descripción | Notificación automática de seguridad enviada al email ANTERIOR cuando el usuario cambia su dirección. Permite al usuario detectar cambios no autorizados. |
| TyC / Tratamiento | NO — Correo informativo de seguridad. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Notificación Contraseña Cambiada/NO-TYC/SUPA |
| Función en código | Supabase Auth — Password changed notification |
| Asunto | “Tu contraseña ha sido cambiada — Ecosistema LPDI” |
| Trigger | Supabase detecta que la contraseña del usuario fue cambiada |
| Destinatario | Email del usuario |
| CTA | Sin CTA — correo informativo (notificación de seguridad) |
| Descripción | Notificación automática de seguridad enviada por Supabase cuando se detecta un cambio de contraseña. Diferente al correo #10 que es enviado por el sistema LPDI. |
| TyC / Tratamiento | NO — Correo informativo de seguridad. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Eliminación de Cuenta/NO-TYC/LPDI |
| Función en código | sendAccountDeletedEmail |
| Asunto | “Tu cuenta en el Ecosistema LPDI ha sido eliminada” |
| Trigger | Usuario elimina su cuenta desde /api/account/delete |
| Destinatario | Email del usuario que eliminó su cuenta |
| CTA | Botón: “Registrarme de nuevo” Destino: https://eco.lpdi.co (hardcoded) |
| Descripción | Confirmación de que la cuenta fue eliminada voluntariamente. Los datos se marcan para eliminación. Si desea volver, debe registrarse de nuevo. |
| TyC / Tratamiento | NO — Correo informativo. Si se re-registra, se pedirán TyC nuevamente. |
PREVIEW DEL CORREO
| Nombre técnico | USUARIO/USER/EXIST/NO-ED/Contraseña Actualizada/NO-TYC/LPDI |
| Función en código | sendPasswordChangedEmail |
| Asunto | “Tu contraseña ha sido actualizada — Ecosistema LPDI” |
| Trigger | Usuario cambia su contraseña exitosamente desde el sistema LPDI |
| Destinatario | Email del usuario |
| CTA | Botón: “Restablecer contraseña” (emergencia) Destino: https://eco.lpdi.co/auth/recuperar (hardcoded) |
| Descripción | Notificación enviada por el sistema LPDI (no Supabase) que confirma al usuario que su contraseña fue actualizada. Complementa al correo #08 de Supabase. |
| TyC / Tratamiento | NO — Correo informativo de seguridad. |
| Nombre técnico | STARTUP/CEO/NUEVO/SI-ED/Bienvenida Registro/SI-TYC/LPDI |
| Función en código | sendStartupWelcomeEmail |
| Asunto | “Bienvenido al Ecosistema LPDI — Confirma tu cuenta” |
| Trigger | Registro de startup en /registro-startup (formulario completado) |
| Destinatario | Email del CEO que registra la startup |
| CTA | Botón: “Confirmar mi cuenta y ver mi registro” Destino: ${confirmUrl} → URL de confirmación Supabase (redirige a SITE_URL) |
| Descripción | Correo de bienvenida al registrante de una startup. La startup queda en estado “pendiente” hasta que el CEO confirme. Si no confirma en 7 días, se activan los correos #15, #16 y eventualmente #17. |
| TyC / Tratamiento | SÍ — El formulario de registro (/registro-startup) tiene checkbox obligatorio de TyC y Política de Tratamiento de Datos ANTES de enviar. El consent se graba en consent_log con flow=“FS”. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/NUEVO/SI-ED/Bienvenida CEO Designado/SI-TYC/LPDI |
| Función en código | sendCeoWelcomeEmail (userExists=false) |
| Asunto | “Bienvenido al Sistema LPDI — {empresa}” |
| Trigger | Registro de startup → el email del CEO NO existe como usuario en Supabase Auth |
| Destinatario | Email del CEO designado durante registro de startup |
| CTA | Botón: “Ver mi registro” (existente) / “Confirmar mi cuenta” (nuevo) Destino: Existente: https://eco.lpdi.co/dashboard | Nuevo: ${resetUrl} (reset Supabase) |
| Descripción | Se envía cuando el registrante de la startup designa un CEO cuyo email no tiene cuenta en LPDI. Incluye contraseña temporal visible. Solo ocurre cuando el CEO es persona distinta al registrante. |
| TyC / Tratamiento | SÍ — El flujo destino (/auth/reset-password) detecta 0 registros en consent_log y muestra checkboxes obligatorios de TyC y Tratamiento de Datos. Implementado en LAP-325. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/EXIST/SI-ED/Bienvenida CEO Designado/NO-TYC/LPDI |
| Función en código | sendCeoWelcomeEmail (userExists=true) |
| Asunto | “Bienvenido al Sistema LPDI — {empresa}” |
| Trigger | Registro de startup → el email del CEO YA existe como usuario |
| Destinatario | Email del CEO |
| CTA | Botón: “Ver mi registro” (existente) / “Establecer nueva contraseña” (nuevo) Destino: Existente: https://eco.lpdi.co/dashboard | Nuevo: ${resetUrl} (reset Supabase) |
| Descripción | Se envía cuando el CEO designado ya tiene cuenta LPDI. No se muestra contraseña. Botón directo al dashboard. |
| TyC / Tratamiento | NO — El CEO ya tiene cuenta y aceptó TyC previamente. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/EXIST/SI-ED/Seguimiento de Score/NO-TYC/LPDI |
| Función en código | sendStartupFollowupEmail |
| Asunto | “Aumenta el score de tu perfil en el Ecosistema LPDI” |
| Trigger | Cron automático /api/cron/startup-followup (~2 días después del registro, si score < 100) |
| Destinatario | Email del CEO de la startup |
| CTA | Botón: “Aumentar mi score” Destino: ${profileUrl} → perfil de la startup en dashboard |
| Descripción | Recordatorio automático para que el CEO complete el perfil de su startup y suba su score de visibilidad. Solo se envía si la startup está confirmada y su score es menor a 100. |
| TyC / Tratamiento | NO — El usuario ya aceptó TyC durante el registro. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/NUEVO/SI-ED/Recordatorio día 3/NO-TYC/LPDI |
| Función en código | sendStartupReminderEmail (isUrgent=false) |
| Asunto | “Recordatorio: confirma tu cuenta en el Ecosistema LPDI” |
| Trigger | Cron /api/cron/startup-welcome-reminders — día 3 sin confirmar email |
| Destinatario | Email del CEO de la startup |
| CTA | Botón: “Confirmar mi cuenta” Destino: ${confirmUrl} → URL de confirmación Supabase |
| Descripción | Primer recordatorio amigable si el CEO no ha confirmado su correo 3 días después del registro. Muestra días restantes (4 días). Si confirma antes del día 6, no se envía el correo #16. |
| TyC / Tratamiento | NO — TyC ya fueron aceptados en el registro. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/NUEVO/SI-ED/Recordatorio Urgente día 6/NO-TYC/LPDI |
| Función en código | sendStartupReminderEmail (isUrgent=true) |
| Asunto | “Ultimo aviso: confirma tu cuenta en el Ecosistema LPDI” |
| Trigger | Cron /api/cron/startup-welcome-reminders — día 6 sin confirmar email |
| Destinatario | Email del CEO de la startup |
| CTA | Botón: “Confirmar mi cuenta” Destino: ${confirmUrl} → URL de confirmación Supabase |
| Descripción | Aviso urgente con banner amarillo “tu cuenta expira en menos de 24 horas”. Si no confirma, al día 8 se purga automáticamente (correo #17). |
| TyC / Tratamiento | NO — TyC ya aceptados en registro. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/NUEVO/SI-ED/Expiración de Registro/NO-TYC/LPDI |
| Función en código | sendStartupPurgedEmail |
| Asunto | “El registro de {empresa} en el Ecosistema LPDI ha expirado” |
| Trigger | Cron /api/cron/startup-welcome-reminders — día 8+ sin confirmar |
| Destinatario | Email del CEO de la startup |
| CTA | Botón: “Registrarme de nuevo” Destino: ${registerUrl} → URL de registro de startups |
| Descripción | La startup fue eliminada por no confirmar en 7 días. Se marca con delete_scheduled_for = 30 días. Excepción (LAP-336): si al menos un editor del equipo ya confirmó, la startup NO se purga. |
| TyC / Tratamiento | NO — Si se re-registra, se pedirán TyC en el nuevo formulario. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/NUEVO/NO-ED/Invitación al Equipo/SI-TYC/LPDI |
| Función en código | sendTeamInvitationEmail (userExists=false, requiresTyC=true) |
| Asunto | “{CEO} te ha incluido en el equipo de {empresa} — confirma tu registro” |
| Trigger | Un miembro con privilegio de edición agrega miembro en Panel 6 → el email NO existe como usuario + NO tiene consent previo |
| Destinatario | Email del miembro invitado (ingresado por quien tiene privilegio de edición) |
| CTA | 2 botones: “Confirmar mi vinculación” (verde) / “No hago parte” (rojo) Destino: Confirmar: ${confirmUrl} | Rechazar: ${rejectUrl} (rutas /team/confirmar) |
| Descripción | Invitación a persona que aún no tiene cuenta LPDI. Muestra tabla con datos registrados (nombre, email, cargo, permiso de edición asignado). Incluye bloque de TyC que debe aceptar antes de confirmar. |
| TyC / Tratamiento | SÍ — Checkboxes obligatorios de TyC y Tratamiento de Datos. El consent se graba en consent_log con flow=“team_invitation”. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/EXIST/NO-ED/Invitación al Equipo/NO-TYC/LPDI |
| Función en código | sendTeamInvitationEmail (userExists=true) |
| Asunto | “{CEO} te ha incluido en el equipo de {empresa} — confirma tu registro” |
| Trigger | Un miembro con privilegio de edición agrega miembro en Panel 6 → el email YA existe como usuario |
| Destinatario | Email del miembro invitado al equipo |
| CTA | 2 botones: “Confirmar mi vinculación” (verde) / “No hago parte” (rojo) Destino: Confirmar: ${confirmUrl} | Rechazar: ${rejectUrl} (rutas /team/confirmar) |
| Descripción | Invitación a miembro que ya tiene cuenta LPDI. No necesita TyC (ya los aceptó). Solo confirma o rechaza la vinculación al equipo. |
| TyC / Tratamiento | NO — Ya tiene consent previo en consent_log. El sistema omite el bloque de TyC. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/EXIST/SI-ED/Bienvenida con Edición/NO-TYC/LPDI |
| Función en código | sendTeamWelcomeWithEditEmail |
| Asunto | “Bienvenido al equipo de {empresa} en LPDI” |
| Trigger | Miembro hace clic en “Confirmar mi vinculación” + tiene canEdit=true |
| Destinatario | Email del miembro que confirmó su vinculación |
| CTA | Botón: “Establecer nueva contraseña” Destino: ${resetUrl} → URL de reset Supabase |
| Descripción | Confirma al miembro que fue aceptado en el equipo CON permiso de edición. Incluye credenciales de acceso y nota “tu CEO te otorgó permisos para editar”. |
| TyC / Tratamiento | NO — TyC ya fueron aceptados en el correo de invitación (#18) o en su registro original. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/EXIST/NO-ED/Bienvenida sin Edición/NO-TYC/LPDI |
| Función en código | sendTeamWelcomeNoEditEmail |
| Asunto | “Bienvenido al equipo de {empresa} en LPDI” |
| Trigger | Miembro confirma vinculación + tiene canEdit=false |
| Destinatario | Email del miembro que confirmó su vinculación |
| CTA | Botón: “Establecer nueva contraseña” Destino: ${resetUrl} → URL de reset Supabase |
| Descripción | Confirma al miembro que fue aceptado en el equipo SIN permiso de edición. Solo puede ver información, no modificarla. |
| TyC / Tratamiento | NO — Mismo caso que correo #20. TyC ya aceptados previamente. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/EXIST/NO-ED/Confirmación de Rechazo/NO-TYC/LPDI |
| Función en código | sendTeamRejectionConfirmationEmail |
| Asunto | “Confirmación: no haces parte del equipo de {empresa}” |
| Trigger | Miembro hace clic en “No hago parte de la compañía” desde correo #18 o #19 |
| Destinatario | Email del miembro que rechazó la invitación |
| CTA | Botón condicional: “Confirmar mi vinculación” (si fue error) Destino: ${confirmAgainUrl} (condicional, puede ser null → sin CTA) |
| Descripción | Confirma al miembro que rechazó exitosamente la invitación. Si fue un error, puede contactar al CEO para que lo vuelva a invitar. |
| TyC / Tratamiento | NO — Correo informativo de confirmación de rechazo. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Aceptó/NO-TYC/LPDI |
| Función en código | sendCeoMemberConfirmationEmail |
| Asunto | “{miembro} aceptó la invitación al equipo de {empresa}” |
| Trigger | Miembro acepta invitación (hace clic en “Confirmar mi vinculación”) |
| Destinatario | Email del CEO que envió la invitación |
| CTA | Botón: “Ir al dashboard” Destino: https://eco.lpdi.co/dashboard (hardcoded) |
| Descripción | Avisa al CEO que un miembro aceptó la invitación. Muestra quién confirmó, su email y los permisos asignados. |
| TyC / Tratamiento | NO — Correo informativo al CEO. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Rechazó/NO-TYC/LPDI |
| Función en código | sendCeoMemberRejectionEmail |
| Asunto | “{miembro} rechazó la invitación al equipo de {empresa}” |
| Trigger | Miembro rechaza invitación (hace clic en “No hago parte de la compañía”) |
| Destinatario | Email del CEO que envió la invitación |
| CTA | Botón: “Ir al dashboard” Destino: https://eco.lpdi.co/dashboard (hardcoded) |
| Descripción | Avisa al CEO que un miembro rechazó la invitación. Sugiere comunicarse con la persona si fue un error. |
| TyC / Tratamiento | NO — Correo informativo al CEO. |
PREVIEW DEL CORREO
| Nombre técnico | STARTUP/TEAM/EXIST/SI-ED/Cambio de Permisos/NO-TYC/LPDI |
| Función en código | sendPermissionChangeEmail |
| Asunto | “Cambio de permisos en {empresa}” |
| Trigger | CEO modifica los permisos de edición de un miembro del equipo |
| Destinatario | Email del miembro cuyo permiso cambió |
| CTA | Botón: “Ir al dashboard” Destino: https://eco.lpdi.co/dashboard (hardcoded) |
| Descripción | Notifica al miembro cuando el CEO modifica sus permisos de edición en el equipo (por ejemplo, de solo lectura a edición o viceversa). Detectado en código, no estaba en el reporte v1. |
| TyC / Tratamiento | NO — Correo informativo. |
| Nombre técnico | STARTUP/USER/EXIST/NO-ED/Eliminación de Entidad/NO-TYC/LPDI |
| Función en código | sendEntityDeletedEmail |
| Asunto | “El registro de {entidad} ha sido eliminado del Ecosistema LPDI” |
| Trigger | Usuario elimina startup o ICG desde /api/entities/delete |
| Destinatario | TODOS los miembros asociados a la entidad (CEO, equipo, contacto) |
| CTA | Botón: “Restaurar” Destino: ${dashboardUrl} → https://eco.lpdi.co/dashboard (sección papelera) |
| Descripción | Notifica a todos los asociados que la entidad fue eliminada. Incluye quién dio la orden (deletedBy). Los datos se eliminan permanentemente en 30 días. |
| TyC / Tratamiento | NO — Correo informativo. La restauración no requiere nueva aceptación. |
sendEntityDeletedEmail es genérica.PREVIEW DEL CORREO
| Nombre técnico | STARTUP/USER/EXIST/NO-ED/Restauración de Entidad/NO-TYC/LPDI |
| Función en código | sendEntityRestoredEmail |
| Asunto | “{entidad} ha sido restaurado en el Ecosistema LPDI” |
| Trigger | Usuario restaura una entidad desde la papelera del dashboard |
| Destinatario | Miembros asociados a la entidad restaurada |
| CTA | Botón: “Ver en Dashboard” Destino: ${dashboardUrl} → https://eco.lpdi.co/dashboard |
| Descripción | Notifica a los asociados que la entidad fue restaurada exitosamente desde la papelera. Aplica tanto a Startups como a ICGs. |
| TyC / Tratamiento | NO — Correo informativo. |
| Nombre técnico | ICG/CON/NUEVO/NO-ED/Bienvenida Contacto/SI-TYC/LPDI |
| Función en código | sendContactWelcomeEmail (userExists=false) |
| Asunto | “{ICG} te ha asignado como contacto en el Ecosistema LPDI” |
| Trigger | ICG registra contacto de compañía en /registro-icg o /dashboard/icg/nuevo — el contacto NO tiene cuenta LPDI |
| Destinatario | Email del contacto designado por el ICG |
| CTA | Botón: “Ver mi registro” (existente) / “Establecer nueva contraseña” (nuevo) Destino: Existente: https://eco.lpdi.co/dashboard | Nuevo: ${resetUrl} (reset Supabase) |
| Descripción | Se envía al contacto designado por un ICG cuando NO tiene cuenta LPDI. Incluye contraseña temporal visible. Si isNewIcg=false, dice “ha actualizado su perfil” en vez de “se ha registrado”. |
| TyC / Tratamiento | SÍ — El flujo destino (/auth/reset-password) detecta 0 registros en consent_log y muestra checkboxes obligatorios. Guard en /dashboard redirige a /aceptar-terminos si no hay consent. |
PREVIEW DEL CORREO
| Nombre técnico | ICG/CON/EXIST/NO-ED/Bienvenida Contacto/NO-TYC/LPDI |
| Función en código | sendContactWelcomeEmail (userExists=true) |
| Asunto | “{ICG} te ha asignado como contacto en el Ecosistema LPDI” |
| Trigger | ICG registra contacto de compañía — el contacto YA tiene cuenta LPDI |
| Destinatario | Email del contacto designado por el ICG |
| CTA | Botón: “Ver mi registro” (existente) / “Confirmar mi cuenta” (nuevo) Destino: Existente: https://eco.lpdi.co/dashboard | Nuevo: ${resetUrl} (reset Supabase) |
| Descripción | Se envía al contacto que ya tiene cuenta LPDI. NO se muestra contraseña temporal. Solo le notifica la nueva vinculación como contacto del ICG. |
| TyC / Tratamiento | NO — Ya tiene cuenta y aceptó TyC previamente. Guard en /dashboard verifica como red de seguridad. |
PREVIEW DEL CORREO
| Nombre técnico | ICG/CON/EXIST/NO-ED/Expiración de Registro/NO-TYC/LPDI |
| Función en código | sendIcgPurgedEmail |
| Asunto | “El registro de {organización} en el Ecosistema LPDI ha expirado” |
| Trigger | Cron /api/cron/purge-entities → RPC purge_expired_entities elimina ICGs no confirmados |
| Destinatario | Email del contacto y usuarios asociados al ICG |
| CTA | Botón: “Registrarme de nuevo” Destino: ${registerUrl} → https://eco.lpdi.co |
| Descripción | El ICG fue eliminado automáticamente por no confirmar en el plazo establecido. Se notifica a todos los emails asociados (contacto principal + otros usuarios vinculados). |
| TyC / Tratamiento | NO — Si se re-registra, se pedirán TyC en el nuevo formulario de registro ICG. |
PREVIEW DEL CORREO
| ID anterior | Nuevo # | Nombre técnico |
|---|---|---|
| AUTH-001 | 01 | USUARIO/USER/NUEVO/NO-ED/Confirmación de Correo/NO-TYC/SUPA |
| AUTH-002 | 02 | USUARIO/USER/EXIST/NO-ED/Recuperación de Contraseña/NO-TYC/SUPA |
| AUTH-003 | 03 | USUARIO/USER/NUEVO/NO-ED/Magic Link/NO-TYC/SUPA |
| AUTH-004 | 04 | USUARIO/USER/EXIST/NO-ED/Cambio de Correo/NO-TYC/SUPA |
| nuevo | 05 | USUARIO/USER/NUEVO/NO-ED/Invitación Admin/NO-TYC/SUPA |
| nuevo | 06 | USUARIO/USER/EXIST/NO-ED/Reautenticación OTP/NO-TYC/SUPA |
| nuevo | 07 | USUARIO/USER/EXIST/NO-ED/Notificación Correo Cambiado/NO-TYC/SUPA |
| nuevo | 08 | USUARIO/USER/EXIST/NO-ED/Notificación Contraseña Cambiada/NO-TYC/SUPA |
| EMAIL-017 | 09 | USUARIO/USER/EXIST/NO-ED/Eliminación de Cuenta/NO-TYC/LPDI |
| nuevo | 10 | USUARIO/USER/EXIST/NO-ED/Contraseña Actualizada/NO-TYC/LPDI |
| EMAIL-001 | 11 | STARTUP/CEO/NUEVO/SI-ED/Bienvenida Registro/SI-TYC/LPDI |
| EMAIL-008 | 12 | STARTUP/CEO/NUEVO/SI-ED/Bienvenida CEO Designado/SI-TYC/LPDI |
| EMAIL-009 | 13 | STARTUP/CEO/EXIST/SI-ED/Bienvenida CEO Designado/NO-TYC/LPDI |
| EMAIL-002 | 14 | STARTUP/CEO/EXIST/SI-ED/Seguimiento de Score/NO-TYC/LPDI |
| EMAIL-003 | 15 | STARTUP/CEO/NUEVO/SI-ED/Recordatorio día 3/NO-TYC/LPDI |
| EMAIL-004 | 16 | STARTUP/CEO/NUEVO/SI-ED/Recordatorio Urgente día 6/NO-TYC/LPDI |
| EMAIL-005 | 17 | STARTUP/CEO/NUEVO/SI-ED/Expiración de Registro/NO-TYC/LPDI |
| EMAIL-010 | 18 | STARTUP/TEAM/NUEVO/NO-ED/Invitación al Equipo/SI-TYC/LPDI |
| EMAIL-011 | 19 | STARTUP/TEAM/EXIST/NO-ED/Invitación al Equipo/NO-TYC/LPDI |
| EMAIL-012 | 20 | STARTUP/TEAM/EXIST/SI-ED/Bienvenida con Edición/NO-TYC/LPDI |
| EMAIL-013 | 21 | STARTUP/TEAM/EXIST/NO-ED/Bienvenida sin Edición/NO-TYC/LPDI |
| EMAIL-014 | 22 | STARTUP/TEAM/EXIST/NO-ED/Confirmación de Rechazo/NO-TYC/LPDI |
| EMAIL-015 | 23 | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Aceptó/NO-TYC/LPDI |
| EMAIL-016 | 24 | STARTUP/CEO/EXIST/SI-ED/Notificación Miembro Rechazó/NO-TYC/LPDI |
| nuevo | 25 | STARTUP/TEAM/EXIST/SI-ED/Cambio de Permisos/NO-TYC/LPDI |
| EMAIL-018 | 26 | STARTUP/USER/EXIST/NO-ED/Eliminación de Entidad/NO-TYC/LPDI |
| nuevo | 27 | STARTUP/USER/EXIST/NO-ED/Restauración de Entidad/NO-TYC/LPDI |
| EMAIL-006 | 28 | ICG/CON/NUEVO/NO-ED/Bienvenida Contacto/SI-TYC/LPDI |
| EMAIL-007 | 29 | ICG/CON/EXIST/NO-ED/Bienvenida Contacto/NO-TYC/LPDI |
| EMAIL-019 | 30 | ICG/CON/EXIST/NO-ED/Expiración de Registro/NO-TYC/LPDI |
