El logo que cierra la cadena
Después de hacer que el servicio de auth reconociera el producto y de construir el catálogo de productos, el flujo era técnicamente correcto. El tenant correcto enviaba el email. La redirección correcta llevaba al usuario a la app correcta.
Pero la cabecera del email estaba en blanco. La página de setup de contraseña no tenía logo. El usuario estaba en el sitio correcto por razones equivocadas — tenía que confiar en la URL, no en la identidad visual.
La brecha entre "técnicamente correcto" y "visualmente coherente" es donde vive la confianza del usuario.
El eslabón que faltaba
El catálogo tenía el logo. El servicio de auth tenía los metadatos del producto. El servicio de notificaciones renderizaba el email. Ninguno de ellos estaba conectado por el lado visual.
El logo necesitaba recorrer el mismo camino que el código de producto:
Dos superficies, la misma fuente. Cuando el admin sube el logo una vez, ambas superficies lo recogen sin cableado adicional por superficie.
Qué cambió en el email
El layout del email ya tenía un espacio para el logo. No se usaba porque la configuración del tenant no llevaba una URL de logo. En cuanto el catálogo de productos empezó a incluir logoUrl en la referencia del tenant, el servicio de notificaciones lo renderizó.
Una restricción que importa en el HTML de email: el logo debe degradar bien. No todos los clientes de email renderizan imágenes. El atributo alt debe decir el nombre real del producto, no "logo" ni una cadena vacía. Si la imagen no carga, el usuario sigue leyendo el nombre de la marca.
Qué cambió en la página de auth
El token de acción ya llevaba metadatos del producto para la redirección. Añadir logoUrl a esos metadatos significó que la página de setup de contraseña pudiera renderizar el logo correcto sin ninguna llamada adicional a la API.
La página lee el token, obtiene el logo, lo renderiza encima del formulario. El usuario ve una marca familiar antes de escribir nada. Ese es el momento en que la confianza está presente o ausente.
Por qué fue la última pieza
El logo no fue lo primero que había que arreglar. Estaba bien dejarlo para el final.
Conseguir que el enrutamiento funcione — qué producto, qué tenant, qué redirección — es estructural. Conseguir que el logo funcione es la confirmación. Añadir pulido visual antes de que el enrutamiento funcione crea un flujo roto que parece coherente. Añadirlo después crea uno coherente que funciona.
El orden fue: contexto del producto primero, luego enrutamiento, luego identidad visual. Cada capa asumía que la anterior era estable.
Parte de mis notas de plataforma. Sigue el blog o escríbeme.