Implementación de un flujo conversacional inteligente en Brenia
En Brenia, hemos trabajado en mejorar la experiencia de nuestros nuevos usuarios a través de una nueva funcionalidad en la plataforma: un flujo de onboarding conversacional diseñado para aquellos que aún no cuentan con una identidad de marca definida. El objetivo es guiar al usuario mediante preguntas adaptativas que permitan construir su ADN de marca (tono, estilo y paleta de colores) de forma intuitiva.
Arquitectura de flujo adaptativo
El sistema utiliza una lógica de estados dentro de nuestros componentes de Livewire para gestionar la conversación. Cuando un usuario indica que no está seguro de alguna respuesta, el sistema reformula la consulta de manera simplificada sin interrumpir el progreso.
namespace App\Services;
class BrandConversationHandler
{
public function processResponse(array $userInput): array
{
if ($this->isUncertain($userInput)) {
return $this->simplifyQuestion($userInput);
}
return $this->generateBrandIdentity($userInput);
}
}
Persistencia y escalabilidad
Para asegurar una integración fluida con nuestro sistema actual, el ADN de marca resultante se almacena en la sesión del invitado (analysis_result). Una vez que el usuario decide registrarse, esta información se traslada al nuevo tenant, garantizando que el trabajo realizado durante la conversación se mantenga persistente.
Esta implementación sigue principios de Domain-Driven Design, separando la lógica de síntesis de ADN de la capa de presentación. Hemos reforzado la estabilidad del sistema mediante una suite de pruebas en PHPUnit, asegurando que las transiciones de estado y la generación de paletas de colores deterministas funcionen correctamente incluso en casos de entrada nula.
El uso de Alpine.js en el frontend permite que la interfaz sea reactiva, proporcionando una experiencia de usuario fluida sin recargas innecesarias durante el proceso de generación de previews.