Volver a proyectos
SaaS Full Stack IA

PurplyBot

Plataforma SaaS conversacional multi-tenant con IA, handoff humano en tiempo real y arquitectura extensible por adapters.

No es solo "una app con IA" — es una plataforma operable y defendible técnicamente.

Visitar Web
Credenciales de Prueba
testing@gmail.com test1234
This is fine

Aviso Importante: Si te logueas y no carga nada, es porque no pagué el servidor.

Flujo de Operación
Sin código complejo

Problema

Negocios pierden leads por respuestas lentas. No hay continuidad entre canales y falta trazabilidad de conversaciones.

Solución

IA 24/7 con RAG + handoff humano inteligente. Widget embebible, dashboard operativo y soporte WhatsApp. Todo multi-tenant con control por planes.

Resultados de Diseño

Objetivos operativos y benchmarks en entorno demo para validar la arquitectura.

Tiempo a primera respuesta

Sub-2s

Streaming visible desde el primer token cuando hay contexto.

Handoff humano

1 clic

Escalado inmediato cuando hay agentes online.

Onboarding

3 pasos

Script + token + listo para producir leads.

Escala multi-tenant

Rooms + RLS

Aislamiento por tenant en sockets y datos.

Arquitectura

3 aplicaciones desacopladas que se comunican por REST + WebSocket.

Backend

API REST, WebSocket realtime, orquestación IA con RAG, function calling y persistencia Supabase.

Express 5 Socket.io TypeScript Gemini

Dashboard

Panel operativo para agentes con chats en tiempo real, RBAC, knowledge base y configuración de integraciones.

Next.js 16 React 19 Supabase SSR Zustand

Widget

Chat embebible en sitios de terceros vía loader.js + iframe. Streaming de respuestas y transición a humano.

Preact Vite Socket.io

Diagrama Interactivo

Navega, haz zoom y arrastra los nodos para explorar cómo se conectan los componentes del sistema.

Las flechas animadas representan flujo de datos en tiempo real
Mini Map

Flujo End-to-End

Desde que un visitante envía un mensaje hasta que recibe respuesta de la IA o un agente humano.

1

Carga del Widget

El sitio cliente carga loader.js que inserta un iframe con la configuración del tenant.

2

Conexión WebSocket

El widget se conecta al namespace /widget con sessionId y datos del visitante.

3

RAG + IA Streaming

El backend busca contexto relevante (embeddings), lo inyecta a Gemini junto con el historial y responde en streaming en tiempo real.

4

Function Calling

Si Gemini detecta que necesita una herramienta (ej. calendario), emite un function call → Factory enruta al Adapter activo → resultado se inyecta de vuelta.

5

Handoff Humano

Trigger explícito o por heurística de frustración. Se valida horario, cambia status a human, notifica dashboard con push y un agente toma el chat.

Experiencia Operativa

Diseñado para que el equipo responda rápido y el cliente sienta continuidad.

Inbox accionable

  • Asignación y transferencia de chats en tiempo real.
  • Atajos de respuesta para resolver en segundos.
  • Push al equipo cuando hay handoff.

Widget que convierte

  • Pre-chat configurable por tenant (nombre, email, motivo).
  • Streaming para evitar tiempos muertos.
  • Branding dinámico desde la configuración.

WhatsApp listo

  • Webhook firmado y validación HMAC.
  • Handoff humano con notificación al dashboard.
  • Continuidad de conversación por número.

Patrones de Diseño

Decisiones arquitectónicas que hacen la plataforma extensible y mantenible.

Factory + Adapter

Agregar integraciones (Calendar, WhatsApp) sin tocar el core de IA. Contrato común para APIs heterogéneas.

Event-Driven / Pub-Sub

Realtime desacoplado con Socket.io: namespaces /widget y /dashboard, rooms por tenant y chat.

Middleware Chain

Auth, CORS, rate-limit y tenant context aplicados transversalmente antes de cada request.

Graceful Degradation

Si falla push, calendar o un subsistema externo, la conversación continúa. Backoff aplicado en ingesta RAG (embeddings).

Escalabilidad y Seguridad

Decisiones de operación que permiten crecer sin reescribir.

Escalabilidad

  • Multi-tenancy por tenant_id en datos y auth contextual
  • Rate limiting: 100 req / 15 min por IP
  • Rooms por tenant y chat para fanout selectivo
  • Hard limits por plan en conversaciones

Seguridad

  • Helmet + CORS con patrones permitidos
  • Bearer token auth + RBAC por rol
  • Verificación de webhook (HMAC + timingSafeEqual)
  • Cron de autocierre de chats inactivos cada 5 min

Operación y Observabilidad

Controles operativos para mantener servicio estable y predecible.

Operación segura

  • Health check público para monitoreo básico.
  • Autocierre de chats inactivos cada 5 min.
  • Rate limiting aplicado a la API publica.

Gobierno de costos

  • Límites por plan con hard stop en Free.
  • Overages calculados para transparencia.
  • Integraciones pausadas al bajar de plan.

Posibles Mejoras

Siguientes iteraciones para elevar la calidad del agente y su operación en producción.

Orquestación IA con LangChain

  • Routing por intención (FAQ, RAG, handoff humano).
  • Memoria por tenant para continuidad entre sesiones.
  • Tools/chains versionadas para evolución controlada.

Calidad de Respuesta

  • Evaluaciones automáticas (groundedness y relevancia).
  • Guardrails para respuestas seguras y consistentes.
  • Feedback loop desde agentes humanos al prompt base.

Escala y Confiabilidad

  • Queue para tareas pesadas (embeddings y webhooks).
  • Observabilidad con trazas end-to-end por conversación.
  • Fallback de modelo por costo, latencia o disponibilidad.