🏗️ Cómo Funciona PulseHub
PulseHub es una aplicación web clásica MVC (Modelo-Vista-Controlador) con una estructura plana y legible. No hay framework — el enrutamiento, acceso a base de datos, autenticación y renderizado se implementan directamente en PHP.
Navegador / Proveedor de Canal
│
▼
index.php ← Controlador frontal
│
▼
app/router.php ← URL → [Controlador, método]
│
▼
app/Controllers/ ← Lógica de negocio
│
┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(plantillas HTML) (consultas PDO MySQL)
Los Cuatro Tipos de Solicitud
- Solicitudes de Página — GET a
/inbox,/contacts, etc. → carga HTML + JS - Solicitudes API — GET/POST/PATCH/DELETE a
/api/...→ devuelve JSON - Solicitudes de Webhook — POST de proveedores a
/webhooks/{type}/{id}→ procesa mensajes entrantes - Stream SSE — conexión persistente a
/sse→ envía eventos en tiempo real al navegador
Flujo de Datos: Mensaje Entrante
1. El cliente envía un mensaje por WhatsApp
2. Meta hace POST a /webhooks/whatsapp/{channel_id}
3. WebhookController verifica la firma, normaliza el payload
4. Busca/crea contacto, busca/crea conversación
5. Guarda el mensaje, dispara eventos SSE, encola eventos de automatización
6. Devuelve 200 a Meta
7. SSE envía a todos los navegadores de agentes conectados en 2 segundos
Flujo de Datos: Mensaje Saliente
1. El agente escribe una respuesta y hace clic en Enviar
2. El navegador hace POST a /api/conversations/{id}/messages
3. Guarda el mensaje, llama a la API del canal (WhatsApp, Twilio, etc.)
4. Envía evento SSE a otros agentes
5. Devuelve 201