Flexibilizando el flujo de onboarding en Brenia
En el proyecto Brenia, hemos implementado cambios significativos en el flujo de onboarding inicial para mejorar la experiencia de usuario y evitar bloqueos innecesarios al acceder a la plataforma.
El desafío: evitar el "muro" de onboarding
Anteriormente, la pantalla de "Construyamos tu marca" actuaba como un requisito estricto, impidiendo el acceso a usuarios que aún no deseaban conectar sus fuentes de datos (Instagram o sitio web). Esto causaba problemas especialmente a usuarios que ya poseían una marca en su tenant o que simplemente querían explorar la herramienta antes de configurarla.
Implementación del patrón Middleware
Para solucionar esto, ajustamos el middleware de autenticación del panel /admin, permitiendo salidas hacia el panel principal sin forzar la creación inmediata de la marca. Utilizamos un nuevo método hasAnyBrand() para verificar el estado del tenant y una columna onboarding_postponed_at para gestionar el estado de los usuarios que deciden configurar su marca más tarde.
namespace App\Http\Middleware;
use Closure;
class EnsureBrandExists
{
public function handle($request, Closure $next)
{
$user = $request->user();
if ($user->hasCompletedOnboarding() || $user->hasPostponedOnboarding()) {
return $next($request);
}
return redirect()->route('brand-onboarding');
}
}
Resultados y Testing
Con esta mejora, hemos validado mediante PHPUnit que los usuarios nuevos mantienen su flujo guiado, mientras que los equipos existentes o aquellos que desean posponer la configuración pueden acceder directamente a la aplicación. Estos cambios aseguran que la plataforma sea más flexible y menos intrusiva, mejorando la retención desde el primer inicio de sesión.