Aceptar invitación de cliente
Flujo paso a paso para que un usuario de cliente acepte su invitación al portal de Relo.
Aceptar invitación de cliente
Cuando un administrador de Relo te invita a ver el portal de una marca, recibes un correo con un enlace unico. Ese enlace te lleva a una pagina publica donde creas tu cuenta y defines tu contrasena. Despues entras con tu correo y contrasena como cualquier otro usuario.
Antes de empezar
- Necesitas una invitacion activa. El administrador la envia desde Users & access o desde la pestana Users del cliente.
- El enlace expira en 7 dias.
- El correo de la invitacion debe coincidir con el correo que usas para crear la cuenta.
- Si ya tienes una cuenta confirmada en Relo con ese correo, no puedes aceptar la invitacion: debes iniciar sesion directamente.
Paso 1: Recibir el correo
El email viene de Relo y tiene como asunto:
Relo has invited you to the
{Nombre del Cliente}Performance Dashboard
Dentro hay un boton Accept Invitation que apunta a:
https://portal.relo.mx/client/invite?token=UUID_DE_LA_INVITACION
No compartas el enlace El token es de un solo uso y esta ligado a tu correo. Si lo reenvias, otra persona no podra usarlo porque el email no coincidira.
Paso 2: Verificar la invitacion
Al abrir el enlace, el frontend llama a:
GET /api/client-invitations/verify?token=UUID_DE_LA_INVITACION
El backend revisa que:
- El token exista.
- La invitacion este en estado
pending. - No hayan pasado mas de 7 dias desde que se creo.
Si todo esta bien, la pagina muestra el nombre del cliente y el campo de email bloqueado con tu direccion.
Paso 3: Crear la cuenta
Completa el formulario:
| Campo | Requisito |
|---|---|
| Precargado y bloqueado. Debe coincidir con la invitacion. | |
| Full name | Obligatorio. Es el nombre que se guarda en tu perfil. |
| Password | Minimo 6 caracteres. |
| Confirm password | Debe ser igual al password. |
Despues presiona Accept & Create Account. El frontend envia:
POST /api/client-invitations/accept
{
"token": "UUID_DE_LA_INVITACION",
"email": "usuario@marca.com",
"password": "********",
"full_name": "Nombre Completo"
}
Paso 4: Que hace el backend
- Valida el token y el email.
- Crea o actualiza el usuario en Supabase Auth.
- Crea/actualiza el perfil en
user_profilescon elroleyclient_idde la invitacion. - Inserta la asignacion en
user_client_assignments. - Marca la invitacion como
accepted.
Paso 5: Iniciar sesion
Despues de aceptar, la pagina te redirige a /auth/login. Ahi entras con el correo y la contrasena que acabas de definir. Al iniciar sesion, Relo detecta tu client_id y te manda al portal de tu marca.
Roles que puedes recibir
| Rol | Que puedes hacer |
|---|---|
client_user | Ver dashboards y reportes del cliente. No ves datos de partners ni comisiones. |
client_manager | Ver dashboards del cliente y, dependiendo de la config, invitar a otros usuarios del cliente. |
Estados de una invitacion
| Estado | Significado |
|---|---|
pending | Activa, aun no se usa. |
accepted | Ya se uso para crear la cuenta. No se puede reutilizar. |
revoked | El admin cancelo la invitacion antes de que se aceptara. |
Errores comunes
| Mensaje | Causa | Solucion |
|---|---|---|
| "No invitation token provided" | El URL no trae ?token=.... | Revisa que el enlace del correo este completo. |
| "Invalid or expired invitation" | El token no existe o fue eliminado. | Pide al admin que reenvie la invitacion. |
| "This invitation has already been used" | La invitacion ya fue aceptada. | Inicia sesion con tu correo en /auth/login. |
| "This invitation has been revoked" | El admin cancelo la invitacion. | Pide una nueva invitacion. |
| "This invitation has expired" | Pasaron mas de 7 dias. | Pide al admin que reenvie la invitacion. |
| "This email already has an active account" | El correo ya tiene cuenta confirmada. | Inicia sesion directamente. |
| "Email does not match the invitation" | El email precargado fue alterado. | Usa exactamente el correo al que llego la invitacion. |
| "Password must be at least 6 characters" | La contrasena es muy corta. | Usa 6 o mas caracteres. |
Para administradores: reenviar o revocar
- Para revocar: desde Users & access o la pestana Users del cliente, busca la invitacion pendiente y presiona revocar. Esto cambia su estado a
revoked. - Para reenviar: revoca la anterior y crea una nueva. Cada invitacion tiene un token unico.
Seguridad
- Los endpoints
/verifyy/acceptson publicos porque el usuario aun no tiene sesion. - El token es un UUID aleatorio, no adivinable.
- La invitacion expira a los 7 dias para reducir la ventana de riesgo.
- Si un correo ya tiene cuenta activa, la invitacion se rechaza para evitar sobrescribir usuarios existentes.
Necesitas ayuda?
Si no te llego el correo:
- Revisa tu carpeta de spam.
- Pide al administrador que revise en la plataforma si la invitacion esta
pending. - Si el estado es
email_error, el envio fallo — pide que la reenvien.