Reenviar Invitación
Exportar contenido
Regenera el enlace de invitación para asesores que no han aceptado.
- Ve a Configuración → Asesores → Enviadas.
- Localiza la invitación con estado “Pendiente”.
- Clic en el icono de “Enviar” (flecha) — se reenvía automáticamente.
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- Toast de confirmación: “Invitación reenviada a [email]”.
- Fecha de envío actualizada en la lista.
- Fecha de expiración renovada (+7 días desde ahora).
- Asesor recibe nuevo email con enlace actualizado.
Cuándo usar esta función
Sección titulada «Cuándo usar esta función»- Asesor perdió el email original
- Invitación próxima a expirar (menos de 2 días)
- Asesor reporta enlace no funcional
- Email original fue a spam
Nota: El enlace anterior queda invalidado automáticamente al reenviar.
Detalles técnicos — Reenviar Invitación
Sección titulada «Detalles técnicos — Reenviar Invitación»Ver implementación técnica
Edge Function: send-advisor-invitation (con isResend: true)
Lógica:
if (existingInvitation.status === 'pending') { if (!isResend) { throw new Error('Ya existe una invitación pendiente...'); }
// Regenerar token y fechas const newToken = crypto.randomUUID(); const expiresAt = new Date(); expiresAt.setDate(expiresAt.getDate() + 7);
const { data: updatedInvitation } = await supabase .from('advisor_invitations') .update({ token: newToken, expires_at: expiresAt.toISOString(), sent_at: new Date().toISOString(), updated_at: new Date().toISOString(), permissions: permissions || existingInvitation.permissions, is_existing_user: isExistingUser, }) .eq('id', existingInvitation.id) .select() .single();}Cambios en la invitación:
| Campo | Valor anterior | Valor nuevo |
|---|---|---|
token | UUID antiguo | UUID nuevo (regenerado) |
sent_at | Fecha original | NOW() |
expires_at | Fecha antigua | NOW() + 7 días |
updated_at | — | NOW() |
Query de diagnóstico:
-- Historial de reenvíos (via updated_at)SELECT id, email, sent_at, updated_at, CASE WHEN updated_at > sent_at + INTERVAL '1 minute' THEN 'Reenviada' ELSE 'Original' END as tipoFROM advisor_invitationsWHERE status = 'pending'ORDER BY updated_at DESC;