featureArquitectura cloud-to-on-prem: Site Connector y Kydesk Agent cierran la brecha entre la nube y tu infra hospitalaria detrás del firewall. Solo tráfico HTTPS saliente, mTLS y enrollment token de 1 solo uso.
featureSelf-contained: cero binarios externos, cero Docker. Agentes y connector son scripts bash/PowerShell que usan herramientas estándar del SO (/proc, df, ss, snmpwalk · Get-CimInstance, Get-Counter, Get-NetAdapter).
featureCompatible cPanel: cloud-side es PHP+MySQL estándar, sin dependencias compiladas, funciona en hosting compartido típico hospitalario.
featureInstalación en 1 comando estilo Datadog/New Relic. Linux: curl -fsSL ".../install/agent?t=TOKEN" | sudo bash. Windows: iwr "URL" -UseB | iex. Token embebido en script generado dinámicamente desde la cloud.
featureInstall profesional: detecta arquitectura, instala dependencias, configura systemd/Scheduled Task, hace primer push de prueba inmediato y reporta resultado en consola con "OK Primer push exitoso (10.1 KB)".
featureUI de monitoreo con tabs Linux/Windows, copy-to-clipboard, install commands sobre fondo terminal y banner CTA clickeable para ver telemetría completa.
featureKydesk Agent v2.0: daemon ligero que recolecta 50+ data points por host cada 60s. Push directo HTTPS a la cloud, ideal para servers críticos Epic/PACS/HIS/AD.
featureLinux Agent usa /proc, df, ip, ps, systemctl, ss, who, apt/yum. Cron * * * * * dispara el push. Cero dependencias adicionales sobre la base estándar del SO.
featureWindows Agent usa Get-CimInstance (OS/Processor/ComputerSystem/BIOS/LogicalDisk), Get-Counter con fallback a Win32_PerfFormattedData en Windows Home, Get-NetAdapter, Get-Process, Get-Service, Get-NetTCPConnection, Get-HotFix, Microsoft.Update.Session COM. Scheduled Task cada minuto.
featureRecolección masiva: system (hostname, FQDN, kernel, arch, boot, manufacturer, model, BIOS) · CPU (model, cores físicos/lógicos, MHz, % por core, load) · memoria total/used/swap · todos los disks por mount · todas las NICs con MAC/IPv4/RX/TX · top 10 procesos · servicios · puertos en escucha · sesiones · updates pendientes · hotfixes.
featureBulletproof contra fallos: cada sección con try/catch helper SafeRun. Fallbacks múltiples (CIM si Get-Counter falla, Registry si CIM Processor no responde, Win32_LogonSession si query.exe no existe). El payload se arma siempre.
featureBody UTF-8 explícito: PowerShell 5.1 codifica como Windows-1252 por default rompiendo acentos. Forzamos [System.Text.Encoding]::UTF8.GetBytes con Content-Type charset=utf-8 para que la cloud reciba bytes válidos.
featureLogging estructurado en agent.log: [start], [step] config OK, [step] system probe, [step] payload X KB, push OK/FAIL con detalle, [end]. Diagnóstico fácil sin entrar al servidor.
featureSite Connector: relay self-hosted Linux que polea infra vía SNMP/WMI/SSH y empuja a la cloud. 1 sólo deployment cubre 2,000+ dispositivos. Auto-instala dependencias en apt/yum/dnf. Cron cada minuto.
featureConnector heartbeat pregunta a la cloud qué devices polear. Cloud responde con IPs + community SNMP. Soporta SNMP v2c y v3 con auth MD5/SHA/SHA256/SHA512 y priv AES128/192/256.
featureAuto-discovery: pantalla "Ejecutar scan" encola job que el connector procesa. Scan de rangos CIDR (10.0.0.0/16) usando credenciales guardadas. Descubre y popula automáticamente network devices, servers, endpoints.
featureCredenciales cifradas con AES-256-GCM derivado de app key + tenant ID. SNMP communities, passwords WMI, users SSH jamás se devuelven al frontend. Solo el connector autenticado puede usarlas.
feature6 endpoints API públicos: POST /api/v1/hospital/agent/{enroll,metrics,heartbeat} con token kyt_*, POST /api/v1/hospital/connector/{enroll,heartbeat,device-status} con enrollment_token 40-hex. Sin sesión, sin CSRF, auth puro por token.
featureAuto-enroll de hosts: si el agente envía métricas para un hostname que no existe, la cloud crea automáticamente el row hospital_servers + hospital_monitoring_agents y vincula. Cero pasos manuales.
featureBackfill de hardware automático: cada push trae cpu_cores, ram_gb, disk_total_gb derivados del payload. El row del server se enriquece sin intervención del admin.
featureAuto-detección de eventos: high_cpu (>=85% warning, >=95% critical), high_memory, disk_warn por mount, service_failed, update_available, reboot detectado por uptime reset. Dedupe 5 min por kind.
featurePantalla detalle /hospital/servers/{id} con 9 tabs: Overview (Chart.js CPU/RAM/disco 90 min), Hardware (CPU model + grid % por core), Discos (todos los mounts), Red (todas las NICs), Procesos (top 20), Servicios, Seguridad (puertos+sesiones+updates+hotfixes), Eventos, Raw payload.
featureReal-time UI: toda la página se refresca sola cada 5 segundos sin recargar. Alpine.js + endpoint JSON /live.json. Barras animan al nuevo valor, gráfico Chart.js redraws, tablas reemplazan in-place.
featureCountdown del próximo push: barra negra terminal con cuenta regresiva segundo-a-segundo, progreso color-coded (violeta→cyan→verde). "último push: hace Ns" en vivo. Botón refrescar manual con spin.
featureBanner agente desactualizado: si la cloud detecta version v1.x, muestra banner amarillo con comando exacto para upgradear. Transición transparente sin desinstalar.
featureMigration v5 (Rich telemetry): column hospital_servers.details JSON + agent_payload_kb + last_agent_seen · tablas hospital_server_processes (top 10 por push) y hospital_server_events con dedupe.
featureToken validation: agent tokens kyt_<tenantId>_<hmac32> firmados con HMAC-SHA256 derivado de app key. Connector tokens 40-hex con random_bytes(20). Validación constant-time con hash_equals. Revocable desde UI.
featureSolo tráfico saliente: firewall hospitalario no abre puertos entrantes. Agentes y connector inician todas las conexiones. TLS 1.3 entre on-prem y cloud. Zero data exposure.
featureOwnership enforcement: device-status valida que el device pertenece al tenant del connector. HTTP 403 device_not_owned si un connector intenta tocar infraestructura de otro hospital.
mejoraServer list view: click en nombre del host abre detalle directo. Ícono ↗ en agentes clickeables del Monitoring page. Botón "Ver servidores monitoreados" prominente en header.
mejoraBanner CTA en monitoring: cuando hay agentes reportando muestra "Telemetría detallada disponible · N agentes reportando · CPU per-core, procesos top, discos por mount, NICs, servicios, puertos, sesiones..."
mejoraMétricas de carga del connector: polled_devices y metrics_per_minute calculados automáticamente y mostrados en tabla de Site Connectors. KPI "métricas/minuto" en strip principal.
featureHospitalMailer · capa de notificaciones email automáticas que usa Core\Mailer (Resend → SMTP fallback) configurado en super admin · templates HTML responsivos con header gradiente rojo, body estructurado y footer del hospital
featureEmail automático en CODE TRIGGERED · al disparar cualquier código (Rojo/Azul/Amarillo/Púrpura/Blanco) se notifica al comandante + on-call activos del depto + CIO + privacy officer (si púrpura) + emergency_email del hospital · CTA directo al RCA
featureEmail automático en EMR DOWN · cuando un health check falla (manual o auto), se notifica a TODOS los on-call activos + CIO con detalles del error y timestamp · si auto_code_blue=1, también email del Código Azul disparado
featureEmail automático en PATIENT SAFETY · sentinel events y major harm notifican al safety officer + privacy officer + CIO con badge "REPORTABLE A AUTORIDADES" si aplica
featureEmail automático en BACKUP · completado o fallido notifica al usuario que disparó + CIO · incluye checksum SHA-256, tamaño, registros, encriptación · email rojo si falló con detalle del error
featureEmail automático en TRAINING · al asignar un curso, notifica al usuario con título, categoría, duración, score mínimo, fecha vencimiento, badge OBLIGATORIO si aplica · CTA directo al provider externo
featureHospitalMailer trata graciosamente las fallas · si Resend cae, fallback automático a SMTP · si ambos fallan, log a error_log y continuar sin bloquear el flujo del usuario
featureNueva categoría "Healthcare · Hospital" en el marketplace de integraciones · 7 providers nuevos exclusivos para Hospital Edition · plan_required = hospital
featureEpic FHIR · POST a /Observation, /Communication, /DiagnosticReport o /Flag con OAuth2 client credentials · funciona con Epic App Orchard · payload FHIR R4 estándar generado desde el evento Kydesk
featureCerner / Oracle Health FHIR · OAuth2 con tenant_id Cerner · soporte para SMART on FHIR scopes · POST a Communication/Observation/Flag/DiagnosticReport · compatible con Millennium R4
featureHL7 v2 MLLP outbound · genera mensajes ADT^A04, ORU^R01, MDM^T02 o SIU^S12 · framing MLLP (VT/FS/CR) sobre TCP socket · compatible con Mirth Connect, Rhapsody, Cloverleaf y otros interface engines · valida ACK (AA/CA) o NACK del receiver
featureServiceNow Healthcare ITSM · POST a tabla incident, sn_hcls_incident o change_request · auto-mapea severidad de Códigos a Urgency 1-3 y patient_impact a Impact 1-3 · soporte para assignment_group sys_id
featureRapidSOS / 911 bridge · webhook a RapidSOS para Códigos Rojos críticos (incendio, evacuación) · coordina con servicios de emergencia 911 en EE.UU. y Puerto Rico · payload con facility_id, address, severity
featureFDA Recall feed · polling diario al openFDA Device Recall API · si un recall coincide con tu inventario biomed (manufacturer + model), crea ticket urgente automático y notifica al biomedical engineer · prevención proactiva
featureMinisterio de Salud Pública (RD) · template para reporte oficial al MSP de sentinel events reportables · soporte para certificado digital firmado · webhook configurable para otros países latinoamericanos
feature47 eventos hospitalarios nuevos suscriptibles para webhooks · agrupados en 10 grupos: Códigos (4), Biomed (5), EMR/HIS (4), On-Call (3), HIPAA (4), Patient Safety (3), Backups & DR (4), Training (4), Access Reviews (3), Risk (3)
featureEventos críticos con emoji para claridad visual: 🚨 hospital.code.triggered · 🔴 hospital.emr.down · ⚠️ hospital.biomed.recall · 🚨 hospital.safety.sentinel · 🔴 hospital.hipaa.baa_expired · útil para Slack/Discord/Teams
featureTotal eventos disponibles: 121 (era 74) · cualquier integración (Slack, Webhook, PagerDuty, etc.) puede suscribirse a eventos hospital específicos · UI de marketplace muestra el grupo "Hospital · X" con eventos checkbox
featureIntegrationDispatcher con 7 nuevos handlers · sendEpicFhir, sendCernerFhir, sendHl7Mllp, sendServiceNow, sendRapidSos · oauth2Token() helper compartido para client credentials · buildFhirResource() genera Communication/Observation/Flag/DiagnosticReport canónicos
featureHL7 MLLP nativo PHP · sin dependencias externas · usa fsockopen + fread con framing VT(0x0B)/FS(0x1C) · timeout 5s · validación de ACK MSA segment · listo para producción con interface engines hospitalarios
featureServiceNow auto-mapping · mapea automáticamente: severidad 1_critical → urgency 1, patient_impact major/sentinel → impact 1 · category configurable · assignment_group opcional · compatible con HCLS (Healthcare and Life Sciences) plugin
mejoraMeetings/Agenda confirmado completo en plan Hospital · feature flag "meetings" activo · 29 rutas operacionales · 4 tablas DB · todas las vistas (calendar, list, types, availability, settings, manual booking) accesibles · igual de robusto que Enterprise
mejoraHospital Edition incluye TODOS los módulos Business+Enterprise sin restricciones · CRM, Quotes, Retainers, ITSM, Reports Builder, AI Engine, Migration Center, Microsoft Teams Omnicanal, Active Directory, Live Chat, Time Tracking, Email Inbound · sobre los 13 módulos hospitalarios exclusivos
v4.13.3MINOR2026-05-04
AI Cost Tracking en USD/DOP por tenant desde super admin
featureAiPricing core helper · cálculo USD por modelo (formula: tokens_in/1M × price_in + tokens_out/1M × price_out × markup) · soporte para 13 modelos pre-configurados (Claude 4.x family, Claude 3.x legacy, GPT-4o family) · fallback automático a precio default si modelo no listado
featureai_completions ahora trackea model y cost_usd · cada llamada IA registra al momento el costo neto en USD usando los precios configurados · backfill automático de los registros históricos al ejecutar la migration
featureConversión USD ↔ DOP en vivo · tasa de cambio configurable desde /admin/ai/pricing (default 1 USD = RD$60.50) · markup % opcional sobre precio neto Anthropic (ej. 30% margen)
featureSwitcher USD/DOP en /admin/ai · todos los costos se muestran en la moneda elegida · persiste vía query string ?cur=USD|DOP · footer informativo con la tasa aplicada
featureNueva columna "Costo (USD/DOP)" en la tabla de tenants del super admin · muestra costo del mes en curso por tenant + acumulado total + modelo activo · clickeable para drilldown
featureNuevo KPI "Costo este mes" en el dashboard de IA · color ámbar para destacar · delta % vs mes pasado con flecha trending-up/down (rojo si subió, verde si bajó)
featurePágina /admin/ai/costs · breakdown completo · KPIs hero (mes actual, mes pasado, acumulado, costo promedio/call) · gráfico de barras de tendencia 12 meses · top tenants por costo con % de contribución · breakdown por modelo
featurePágina /admin/ai/costs/tenants/{id} · drilldown por tenant · costo este mes, acumulado, calls, tokens IN/OUT · tendencia 12 meses · breakdown por modelo y por acción (con badge HOSPITAL para acciones hospital:*)
featurePágina /admin/ai/pricing · 3 secciones · (1) Moneda y tasa USD-DOP · (2) Precio default fallback · (3) Tabla editable de precios por modelo con preview de costo de muestra (100K + 100K tokens) en USD y DOP
featureSidebar super admin · nuevo item "Costos IA" en sección Sistema · acceso rápido al breakdown desde cualquier página del panel
featurePricing pre-configurado con precios oficiales Anthropic · Claude Opus 4.x (\$15/\$75 por 1M) · Sonnet 4.x (\$3/\$15) · Haiku 4.5 (\$1/\$5) · Claude 3.x legacy · GPT-4o (\$2.5/\$10) · GPT-4o-mini (\$0.15/\$0.60) · todos editables desde la UI
mejoraHospitalAi y AiController ahora persisten model + cost_usd en cada ai_completions · cero overhead operacional, todo se calcula al insertar
mejoraHelpers de AiPricing reusables · totalCost(), tenantCost(), monthlyBreakdown(), modelBreakdown(), topTenants(), formatBoth() · disponibles para reportes futuros y APIs
v4.13.2MINOR2026-05-04
Hospital Edition · IA en todos los módulos + Demo Hospital 24h
featureDemo Hospital · cuenta auto-creada, datos clínicos pre-cargados, expira y se elimina automáticamente en 24 horas (igual que demos Starter/Pro/Enterprise)
featurePicker /demo expandido a 4 columnas · nueva tarjeta "Hospital" con icono heart-pulse y color rojo institucional · botón "Probar Hospital Edition" funcional desde landing /hospital y home
featureSeed clínico incluye también · 3 rotaciones on-call con turno activo · 2 BAAs (Epic, Carestream) uno con vencimiento próximo · 6 cursos HIPAA con 10 asignaciones · 9 políticas retention · 1 risk assessment con 4 riesgos (1 critical) · 1 código azul resuelto con RCA · 1 patient safety incident
featureAuto-asignación de IA al demo Hospital · si el super admin tiene API key Anthropic configurada, el demo arranca con IA habilitada y 500K tokens de cuota mensual · si no hay API key, queda el registro en ai_settings sin asignar para que el admin lo active
featureHospitalAi service · capa unificada que envuelve la infraestructura existente (ai_settings, ai_completions, saas_settings) con prompts especializados en contexto clínico-hospitalario · sistema de cuotas de requests + tokens · audit trail completo en ai_completions con prefijo "hospital:"
featureAnti-PHI integrado · HospitalAi::redactObviousPhi() limpia automáticamente SSN, cédulas DR (13 dígitos), MRN, emails y nombres comunes antes de enviar al modelo · capa adicional sobre el redactor manual
featureBotón IA en Biomed Show · "Predecir fallas" analiza modelo, edad, historial de mantenimiento y sugiere riesgo de falla próxima con razones técnicas · "Sugerir plan PM" genera plan de mantenimiento preventivo personalizado
featureBotón IA en Code Show · "Generar RCA" produce borrador de Root Cause Analysis con 5-Whys + factores contribuyentes + action items desde el timeline · "Post-mortem" escribe documento ejecutivo para CIO/CMIO
featureBotón IA en Patient Safety · clasifica el incidente en near_miss/no_harm/minor_harm/moderate_harm/major_harm/sentinel_event al estilo Joint Commission con justificación · sugiere plan de acción correctivo a 30/60/90 días
featureBotón IA en Risk Assessment · "Sugerir amenazas" genera 5-8 amenazas relevantes según framework (HIPAA Security Rule / NIST CSF) con vulnerabilidad, likelihood e impact · "Plan de mitigación" diseña controles técnico/administrativo/físico para cada riesgo
featureBotón IA en HIPAA · "Redactor PHI" sanea texto pegado reemplazando datos identificables con [REDACTED-tipo] · "BAA Review" señala cláusulas faltantes vs HIPAA Privacy/Security Rule, ambigüedades y vencimientos
featureBotón IA en Access Reviews · "Detectar anomalías" analiza snapshot de usuarios y flag accesos sospechosos: cuentas dormidas con privilegios altos, acceso PHI excesivo vs rol, usuarios stale (>90d sin login) priorizados
featureBotón IA en Backups · "Detectar anomalías" analiza histórico de backups detectando caída repentina de tamaño, fallos consecutivos, gaps entre backups, RTO/RPO no cumplido · sugiere acciones correctivas
featureBotón IA en Training · "Recomendar cursos por rol" sugiere cursos prioritarios según el rol del usuario con justificación ligada al riesgo, urgencia y orden recomendado
featureBotón IA en EMR · "Resumen ejecutivo" genera summary 5 líneas del estado actual de Epic, Cerner, PACS, etc. para enviar al CIO · destaca sistemas críticos caídos y tendencias 7d
featureWidget IA en Command Center · botón "Preguntar a la IA" para Q&A genérico sobre HIPAA, código azul, biomed engineering, operación hospitalaria · respuesta contextualizada al hospital
featureHospitalAiController · 17 endpoints AJAX con validación de tenant + feature gate + permiso · cada uno construye prompt específico del módulo (sin PHI bruto) y delega a HospitalAi::run()
featureAI helper partial _ai_helper.php · modal universal con header gradiente púrpura, body Markdown-safe, footer con métricas de tokens · botón "Copiar" con feedback visual · CSS y JS reusable en todas las vistas hospital
featureSuper Admin AI · AdminAiController::assign() ahora acepta plan Hospital sin requerir override forzado (antes solo Enterprise) · Vista admin/ai con badge "HOSPITAL" en rojo + heart-pulse icon para identificar tenants Hospital
mejoraCada llamada IA persiste en ai_completions con tenant_id, user_id, action prefijada "hospital:*", input sanitizado, output, tokens consumidos, duración, IP y user-agent · listo para auditoría HIPAA
mejoraCuota de tokens HOSPITAL · 500,000 tokens/mes por defecto en demos auto-asignados · super admin puede ajustar token_quota_monthly por tenant · alertas y bloqueos automáticos al alcanzar el 100%
mejoraModelo por defecto Claude Sonnet 4.6 (claude-sonnet-4-6) con fallback al modelo configurado en saas_settings · cada tenant puede tener su propio modelo override en ai_settings.model
feature17 nuevas rutas POST en /t/{slug}/hospital/ai/* · todas con CSRF · cada una vinculada a su feature gate (biomed_assets, code_blue, hipaa_audit, etc.) · 60+ rutas hospital totales
featureBackups self-service · cifrado AES-256-GCM con clave derivada del tenant_id + secreto de aplicación · checksum SHA-256 por archivo · retención configurable (default 90 días) · directorio protegido con .htaccess deny-all
featureScopes de backup: todo el tenant, tickets+SLA, KB, activos biomédicos, códigos de emergencia, HIPAA (BAA + access logs), patient safety · formatos JSON / SQL / CSV / ZIP cifrado
featureDisaster Recovery drills nativos · tipo dr_drill con métricas RTO/RPO target vs actual · botón Probar restore en sandbox · restore destructivo a producción requiere confirmación I_UNDERSTAND
featureCada descarga de backup queda registrada en hospital_hipaa_access_logs como acción "export" con phi_flag, IP, user-agent y propósito · listo para auditorías HIPAA
featureHIPAA Training Records · catálogo de cursos con código, categoría (HIPAA Privacy/Security, HITECH, phishing, password, social engineering, IR, code blue, biomed safety), duración, score mínimo, periodo de renovación
featureAsignación masiva a usuarios con cálculo automático de fecha de vencimiento (default 12 meses) · estados assigned → in_progress → completed/failed/expired/overdue · score 0-100 con threshold de aprobación por curso
featureCertificados firmados con hash SHA-256 al completar (user_id|course_id|timestamp) · dashboard de compliance % calculado en vivo · 6 cursos seed para tenants demo (HIPAA-PR, HIPAA-SR, HITECH-1, PHISH-1, PWD-1, IR-1)
featureAccess Reviews · revisión periódica de accesos según HIPAA Security Rule §164.308(a)(4) "minimum-necessary" · scopes: todos los usuarios, solo PHI access, admins, departamento, vendor BAA, custom
featureSnapshot automático al iniciar review · captura rol del usuario, último login y conteo de accesos PHI de los últimos 90 días · highlight de usuarios stale (>90 días sin login) en ámbar
featureDecisiones por usuario: keep/revoke/modify/escalate con razón · revoke desactiva usuario inmediatamente · firma del privacy officer requiere 100% items decididos · contadores agregados de access_kept/revoked/modified
featureRisk Assessment · frameworks soportados: HIPAA Security Rule, NIST CSF, NIST 800-66, ISO 27001, custom · matriz likelihood × impact con score 1-25 (rare-1 a almost_certain-5 × insignificant-1 a catastrophic-5)
featureCálculo automático de risk_level: low (1-5), medium (6-11), high (12-19), critical (20-25) · 6 categorías: administrative, physical, technical, organizational, third_party, operational · plan de mitigación con owner y fecha
featureMitigation status: open → in_progress → implemented/accepted/transferred/avoided · ordenamiento por riesgo (críticos primero) · próxima revisión anual auto-programada
featureData Retention · políticas por clase de dato (PHI ticket, ticket, KB article, asset, biomed, code incident, patient safety, audit log, PHI access log, backup, training record) · base legal documentada por política
featureAcciones al vencer: archive (default), anonymize, soft_delete, hard_delete (irrecuperable) · aviso al owner X días antes · 9 políticas seed alineadas a HIPAA 6 años / Joint Commission / FDA vida útil de equipos
featureBitácora de disposición · cada ejecución registra acción, registros afectados, criterio usado, usuario que disparó y certificado del proceso · trazabilidad completa para auditorías
featureCatálogo de módulos Plan::MODULE_CATALOG expandido con hospital_backups, hospital_training, hospital_access_reviews, hospital_risk, hospital_retention · todos administrables on/off por tenant desde super admin
featureSidebar del workspace · nueva sección "Security" en rojo con 6 items: Security Center, Backups & DR, HIPAA Training, Access Reviews, Risk Assessment, Data Retention · solo visible si plan tiene los features y user tiene los permisos
featureLanding /hospital actualizada · sección oscura "Security & Compliance Pack" entre los 7 módulos clínicos y los deep dives · 5 cards con backdrop-blur sobre gradiente espacial · banner de cumplimiento
mejoraBases legales documentadas en seed de retention: HIPAA 6 años (45 CFR §164.530(j)), Joint Commission, FDA vida útil de equipos, SOC 2 audit logs · cada política con su justificación
v4.13.0MAJOR2026-05-04
Kydesk Hospital Edition · Helpdesk especializado para hospitales
featurePlan "Hospital" — nueva licencia especializada por encima de Enterprise · USD 899/mes o 9,000/año (ahorro 16%) · 21 días de prueba sin tarjeta · usuarios y tickets ilimitados · 50 GB de almacenamiento · BAA firmado · MFA obligatoria para PHI · onboarding clínico de 45 días · soporte 24/7 con SLA hospitalario
featureIncluye TODOS los módulos Enterprise (AI Engine, Migration Center, Microsoft Teams Omnicanal, Active Directory, AI Assistant, ITSM, Reports Builder, SSO/SAML, custom branding) + 7 módulos clínicos exclusivos
featureCatálogo de 7 módulos hospitalarios registrados en Plan::MODULE_CATALOG (tier "hospital") · cada uno administrable por separado desde el panel super admin con overrides on/off por tenant · feature flags propagadas a Application::registerRoutes y al sidebar layout
featureHospital Command Center — tablero unificado del depto. de TI hospitalario · KPIs en tiempo real: códigos abiertos, EMR caídos, mantenimiento próximo, BAA por vencer, patient safety abiertos, departamentos · resumen visual de códigos activos con comandante asignado · widget de on-call ahora · health summary de EMR/HIS/PACS · próximo PM de equipos biomédicos
featureDepartamentos clínicos — mapeo del impacto IT al impacto clínico real · 11 categorías predefinidas (Emergencias, UCI, Quirófano, Imagenología/PACS, Laboratorio, Farmacia, Hospitalización, Consulta externa, Admin, TI, Otro) · niveles de criticidad: rutina / importante / crítica / soporte vital · conteo de camas, edificio, piso, extensión, jefe de departamento · seed automático para tenants demo con ER, ICU-A, OR, IMG, LAB, RX, EMR
featureActivos biomédicos — inventario clínico con 21 categorías de equipos: ventiladores, monitores de signos, bombas de infusión, desfibriladores, MRI, CT, rayos X, ultrasonido, diálisis, anestesia, robot quirúrgico, endoscopios, incubadoras, electrocardiógrafos, equipo de laboratorio, robot de farmacia, esterilizadores, estaciones PACS, estaciones EMR, telemetría, camas inteligentes
featureCada activo biomédico trackea: clase FDA (I/II/III/none), clase de riesgo (low/moderate/high/life_critical), serial, modelo, fabricante, software/firmware, IP/MAC, fechas de calibración (última + próxima), fechas de PM (último + próximo), garantía, sala, departamento, flags is_networked y stores_phi
featureBitácora de mantenimiento por equipo — preventivo, correctivo, calibración, recall, inspección · resultado pasó / pasó con observaciones / falló · vendor externo · costo · técnico responsable · linkeable a ticket · auto-actualiza last_pm_date / next_pm_date / last_calibration / next_calibration en el activo
featureOn-Call Rotations 24/7 — guardias técnicas con cobertura por hospital, por departamento clínico o por especialidad · rotación semanal / diaria / custom · escalación automática configurable en X minutos · canales: SMS, llamada, WhatsApp · turnos individuales con técnico primario + backup, teléfono pager y notas de handoff
featureAsignación inteligente de tickets críticos al on-call activo · widget "On-call ahora" en el dashboard que muestra el técnico de guardia con foto, teléfono y backup · tabla de próximos turnos · resaltado del turno EN GUARDIA en tiempo real
featureCódigos de emergencia hospitalarios — protocolos formales para fallas críticas con impacto clínico · 5 tipos: Código Rojo (incendio/evacuación), Código Azul (falla crítica al paciente), Código Amarillo (degradación importante), Código Púrpura (brecha PHI), Código Blanco (mantenimiento programado)
featureDisparo de código con un clic — botón "DISPARAR CÓDIGO" en el dashboard · clasificación de severidad 1-4 (crítico/mayor/moderado/menor) · clasificación de impacto al paciente: ninguno, potencial, menor, mayor, sentinel event · asignación automática de comandante del incidente
featureBitácora minuto-a-minuto — cada cambio de estado, nota, acción tomada, notificación y escalación queda registrado con timestamp y usuario · timeline visual con iconos y colores por tipo de evento · RCA obligatorio al cerrar (resumen ejecutivo + causa raíz 5-Whys + action items con persona + fecha)
featureAuto-trigger de Código Azul — si el health check de un EMR/HIS marcado is_critical falla con auto_code_blue=1, Kydesk dispara automáticamente un Código Azul severidad 1 con impacto mayor, descripción del error y referencia al sistema afectado
featureHIPAA Compliance — registro de Business Associate Agreements (BAA) con vendors que tocan PHI · servicios prestados, categorías de PHI, fecha de firma, fecha de vencimiento, alerta de renovación configurable (default 60 días), documento PDF, contacto del vendor, nivel de riesgo (low/moderate/high)
featureAlertas de vencimiento de BAA — dashboard muestra cuántos están por vencer en 60 días · resaltado visual ámbar para BAAs próximos a vencer y rojo para vencidos · KPI agregado en super admin para ver el riesgo de cumplimiento del hospital
featureePHI Access Logs — bitácora inmutable de quién vio cada ticket / activo / BAA / código / patient safety con flag PHI · acción (view/export/update/print/delete), propósito, IP, user-agent · contadores 24h / 7d en el dashboard · base para auditorías HIPAA
featureEMR / HIS / PACS Health — monitoreo nativo de los sistemas clínicos críticos · 11 vendors soportados (Epic, Cerner/Oracle, Meditech, Allscripts, athenahealth, NextGen, eClinicalWorks, Greenway, Infor, custom, other) · 10 tipos de sistema (EMR, HIS, LIS, RIS, PACS, Interface Engine, Pharmacy, Billing, Scheduling, Otro)
feature6 métodos de health check: GET, POST, HEAD, TCP, HL7 MLLP, FHIR · intervalo configurable por sistema (default 5 min) · timeout configurable (default 10s) · ambientes production/staging/training/dr · flags is_critical y auto_code_blue · contacto del vendor + teléfono de soporte 24/7 · histórico completo en hospital_emr_health_checks con HTTP code, latencia y error
featureEstado consolidado en el dashboard — semáforo verde/ámbar/rojo por sistema · latencia última en ms · botón "Probar ahora" para health check manual · degradación detectada (HTTP 4xx) vs caído (5xx, timeout, error de red)
featurePatient Safety Incidents — reporte estilo Joint Commission con 6 niveles de severidad: near miss, sin daño, daño menor, daño moderado, daño mayor, sentinel event · 10 categorías: medicación, falla de equipo, pérdida de datos, registro errado, IT outage, privacidad, workflow, infección, caída, otra
featureCada incidente captura: factores contribuyentes, acción inmediata, plan de acción a largo plazo, flag de reportable a autoridades, confidencialidad por defecto · linkeable a departamento, equipo biomédico, sistema EMR, ticket y código de emergencia · workflow: reportado → en revisión → acción planeada → cerrado
featureRoles dedicados — patient safety officer asignado por incidente · permisos granulares hospital.safety.view / report / officer · solo el safety officer puede cambiar estados o agregar plan de acción a largo plazo
feature13 tablas nuevas: hospital_clinical_departments, hospital_biomed_assets, hospital_biomed_maintenance, hospital_oncall_rotations, hospital_oncall_shifts, hospital_code_incidents, hospital_code_timeline, hospital_hipaa_baa, hospital_hipaa_access_logs, hospital_emr_systems, hospital_emr_health_checks, hospital_patient_safety, hospital_settings · todas con FKs, índices y aislamiento multi-tenant via tenant_id
featuredatabase/migrate_hospital.php — migrador idempotente con token KYDESK_HOSPITAL · crea las 13 tablas, inserta el plan "hospital" en plans, registra 20 permisos hospitalarios y los asigna al rol owner · seed automático de 7 departamentos clínicos para tenants demo (ER, ICU-A, OR, IMG, LAB, RX, EMR)
feature20 permisos granulares: hospital.view, hospital.settings, hospital.dept.view/manage, hospital.biomed.view/manage/maintenance, hospital.oncall.view/manage, hospital.code.view/trigger/command/review, hospital.hipaa.view/manage, hospital.emr.view/manage, hospital.safety.view/report/officer · todos asignados al rol owner por defecto
featureSuper Admin · Hospital Edition — nueva sección /admin/hospital con vista agregada de todos los hospitales · KPIs cross-tenant: códigos abiertos en toda la red, EMR caídos, BAA por vencer, equipos biomédicos totales, patient safety pendientes · drill-down a /admin/hospital/{id} con stats por hospital · botón impersonar y enlace al panel del tenant
featureSección "Hospital Edition" en el home — banner con gradiente rojo-naranja, badges de cumplimiento (HIPAA, HITECH, Joint Commission, ePHI, BAA, MFA), grid de los 8 módulos clínicos con hover effect, CTA a /hospital · página dedicada /hospital con hero, showcase de 7 módulos, banda oscura de cumplimiento, lista de 12 vendors EMR compatibles, pricing card destacada con CTA dual
feature40+ rutas nuevas en Application::registerRoutes — /t/{slug}/hospital/* (dashboard, departments, biomed, oncall, codes, hipaa, emr, safety, settings) + /admin/hospital/* (overview + show por hospital) + /hospital (landing pública)
mejoraSidebar del workspace — nueva sección "Hospital" en rojo con icono heart-pulse · 8 items navegables: Command Center, Departamentos, Activos biomédicos, On-Call 24/7, Códigos, HIPAA, EMR/HIS, Patient Safety · solo visible si el plan tiene los features y el usuario tiene los permisos correspondientes
mejoraSidebar del super admin — nueva categoría "Hospital Edition" con el item "Hospitales" para acceso rápido al overview cross-tenant
mejoraColor institucional rojo #dc2626 para Hospital Edition · diferenciado visualmente del púrpura Enterprise para que los administradores identifiquen al instante en qué módulo están
v4.12.0MAJOR2026-05-04
Integraciones x3, eventos para todo el stack y API REST completa para los módulos nuevos
featureCatálogo de integraciones expandido de 13 a 38 proveedores · 8 categorías limpiamente separadas en la UI · cada uno con icon, color, descripción larga, docs_url y campos de config tipados
featureChat & mensajería: Slack, Discord, Telegram, Microsoft Teams (webhook), Mattermost, Rocket.Chat · NUEVOS Google Chat (cards V2), Cisco Webex, WhatsApp Business (Cloud API · Meta Graph), Twilio SMS, Intercom (mensajes inApp)
featureProductividad & calendario: NUEVOS Google Calendar (service account JWT · OAuth con scopes calendar), Outlook 365 (Microsoft Graph client_credentials), Calendly (webhook reverse), Zoom (server-to-server OAuth con creación de meetings)
featureProductividad: NUEVOS Notion (pages en database con title + paragraph blocks), Airtable (records con todos los fields del evento), Asana (tasks con notes), Trello (cards en list), ClickUp (tasks), monday.com (items via GraphQL), Linear (issues via GraphQL mutation)
featureDevOps: NUEVOS GitHub (issues con labels), GitLab (issues self-hosted o cloud), Bitbucket Cloud (issues con basic auth), Jira Software/Service Management (issues con ADF + project_key + issue_type)
featureAlerting/observability: NUEVOS PagerDuty (Events API v2 trigger con severity), Opsgenie (alertas con priority mapeada P1-P4 desde nuestra prioridad), Sentry (eventos via DSN parsing), Datadog (events API con multi-site), New Relic (custom events), Statuspage.io (incidentes públicos)
featureCRM/sales: NUEVOS Salesforce (Cases/Leads/Tasks vía REST API), HubSpot (tickets/deals/contacts), Pipedrive (activities con multi-domain), Zoho CRM (Leads/Deals/Contacts con multi-data-center US/EU/IN/AU)
featureEmail/push: existentes Email forwarding + Pushover · NUEVOS SendGrid Mail API, Mailgun Messages API (multi-region US/EU), Postmark, ntfy.sh con priority mapeada y self-host friendly
featureBilling/finanzas: NUEVOS Stripe (customers + metadata), QuickBooks Online (notes con prod/sandbox switch), Xero (contacts con tenant ID), PayPal (webhook receiver)
featureAutomation: existentes Webhook genérico, Zapier, n8n, Make · NUEVOS IFTTT Maker Webhooks con event_name, AWS SNS (publish a topic ARN)
featureSistema de eventos expandido de 12 a 70+ eventos suscriptibles · agrupados en 18 dominios funcionales (tickets, kb, people, tasks, meetings, chat, crm, quotes, retainers, itsm, csat, email, ai_engine, migration, teams, ad, status, automation, billing)
featureCotizaciones (6 eventos): quote.created, quote.sent, quote.viewed, quote.accepted, quote.rejected, quote.expired · disparados desde QuoteController y desde el portal público de aceptación
mejoraCrmController emite crm.lead.created al crear leads · crm.deal.created/won/lost al crear deals · crm.deal.moved al cambiar etapa via drag&drop
mejoraAiEngineController emite ai_engine.article_generated al cluster + ai_engine.duplicate_detected al escanear duplicados
mejoraMigrationCenterController emite migration.completed al finalizar import + migration.rolled_back al revertir · TeamsOmnichannelController emite teams.message_received en cada inbound + teams.ticket_created al auto-crear ticket
mejoraActiveDirectoryController emite ad.sync_completed con usuarios creados/actualizados + ad.sync_failed con mensaje de error en el catch
mejoraIntegrationDispatcher::titleFor() expandido con prefijos emoji para los 70+ eventos · ej. 📅 meeting.scheduled, 🎯 crm.lead.created, 💰 crm.deal.created, 🏆 crm.deal.won
mejoraIntegrationDispatcher::eventColor() con mapeo semántico extendido · rojo para .failed/.lost/.exhausted, verde para .won/.accepted/.completed, ámbar para .warning/.starting_soon, azul para .created
mejoraIntegrationDispatcher::fieldsFor() con 30+ campos típicos mapeados · meeting (starts_at, attendee, duration), crm (deal_value, currency, stage), quotes (quote_total, valid_until), AI (confidence, similarity), AD (users_created, ad_source), Teams (team_name, channel_name)
mejoraOAuth helpers reutilizables: googleServiceAccountToken (JWT firmado RS256 → access token), msAppToken (Azure client_credentials → Graph token) · usados por handlers de Google Calendar y Outlook respectivamente
featureREST API v1 expandida · 8 controllers nuevos en app/Controllers/Api/ · 60+ endpoints adicionales · todos respetan el contrato existente: Bearer auth, scopes, idempotency-key, paginación cursor+offset, expand, fields, ETag, request-id
featureAPI Meetings: GET /meetings (filtros status/from/to/host_user_id/attendee_email) · POST /meetings (crea + emite evento) · GET /meetings/{id} · PATCH (con cambio de status que dispara meeting.cancelled/completed/no_show) · DELETE · GET /meetings/availability · GET /meetings/types
featureAPI Quotes: GET /quotes (filtros status/company_id/q) · GET /quotes/{id} con ?expand=items,events · GET /quotes/{id}/items y /events · POST /quotes/{id}/status para cambio de status programático
featureAPI AI Engine: GET /ai-engine/settings · /metrics (rangos from/to + summary con deflection_pct calculado) · /conversations · /predictions · /duplicates · /articles · /rag/search?q= con FULLTEXT MySQL
featureAPI Migration Center: GET /migration/jobs (filtros status/source/entity) · /jobs/{id} con ?expand=mapping,logs · /jobs/{id}/records (filtro por status) · /jobs/{id}/logs
featureAPI Teams Omnichannel: /teams/settings (sin password) · /teams/channels · /teams/conversations (filtros ticket_id/is_personal) · /teams/conversations/{id}/messages · POST /teams/conversations/{id}/send para responder bidireccionalmente vía API
featureAPI Active Directory: /ad/settings (campos seguros sin secrets) · /ad/users (filtros source/is_active/q) · /ad/groups · /ad/sync/logs · POST /ad/sync para disparar sync Azure o LDAP desde script externo + emite ad.sync_completed/failed
featureAPI Integrations: GET /integrations/providers (catálogo público sin secrets para mostrar marketplace en apps) · /integrations/events (eventos + grupos para el UI de suscripción) · /integrations (instalaciones del tenant) · /integrations/{id}/logs
mejoraOpenAPI 3.1 spec actualizado · 9 nuevos tags (Integrations, Meetings, CRM, Quotes, AI Engine, Migration, Teams, Active Directory) · 50+ paths con summary, parameters y responses tipados
mejoraPostman 2.1 collection expandida · 9 carpetas nuevas con todos los endpoints listos para importar · variables {{ticket_id}}, {{lead_id}}, {{deal_id}}, {{quote_id}}, {{meeting_id}}, {{job_id}}, {{conv_id}}
mejoraGET /api/v1/integrations/events expone los grupos (tickets/kb/people/tasks/meetings/chat/crm/quotes/retainers/itsm/csat/ai_engine/migration/teams/ad/status/automation/billing) · útil para builders de webhooks que quieren mostrar checkboxes agrupados
mejoraConstantes de eventos centralizadas en App\Core\Events · todos los modules nuevos exponen constantes (Events::MEETING_SCHEDULED, Events::CRM_DEAL_WON, etc.) para evitar typos en strings
mejoraIntegrationRegistry::categories() expandido a 8 categorías ordenadas con label e icon · UI de marketplace puede agruparlos automáticamente
mejoraIntegrationRegistry::eventGroups() · helper nuevo que devuelve los eventos agrupados por dominio funcional · usado en la API y en el form de suscripción
v4.11.0MAJOR2026-05-03
Migration Center · AI Support Engine · Microsoft Teams Omnicanal · Active Directory
featureMigration Center (Enterprise) · 4 conectores nativos: Zendesk (API v2), Freshdesk (API v2), Jira Service Management (REST v3) y CSV guiado · soporta tickets, KB, usuarios y empresas
featureAsistente paso a paso: elegís origen → configurás credenciales/CSV → mapeás campos con auto-sugerencia → validación previa con sample → ejecución con bitácora 1:1
featureMapeo inteligente de campos con aliases multi-idioma (subject/title/asunto/summary, etc.) · transforms incorporados: lower/upper/trim/priority/status/date/strip_html
featureValidación previa que cuenta registros, detecta campos requeridos sin mapear, muestra sample de los primeros 5 mapeos y bloquea ejecución si hay observaciones críticas
featureRollback total con un click · cada registro importado guarda source_id↔target_id en migration_records · revertir borra exactamente lo que ese job creó, ni más ni menos
featureAnti-duplicados por job · si un source_id ya tiene target_id, se omite y queda como "skipped" · podés re-ejecutar el mismo job sin crear duplicados
featureBitácora completa por job: estado, total origen, importados, omitidos, fallidos, tiempo de ejecución y log línea-por-línea con nivel info/warn/error
featureConector Zendesk: pagina hasta 50 páginas de 100 tickets (5,000 tickets por job) · trae subject, description, priority, status, requester, tags, fechas
featureConector Freshdesk: pagina hasta 50 páginas con per_page=100 · descripción HTML normalizada con strip_html · auto-mapeo de description_text
featureConector Jira Service Management: hasta 5,000 issues por job · aplana ADF (Atlassian Document Format) a texto plano · normaliza priority/status del Jira hacia los enums Kydesk
featureCSV guiado: subida hasta 25MB · UTF-8 · primera fila con headers · sample y headers detectados automáticamente para usar en el mapper
mejora4 tablas (migration_jobs, migration_field_maps, migration_records, migration_logs) con indexes por tenant/source/status para listar miles de jobs sin penalty
featureAI Support Engine (Enterprise) · agente IA autónomo 24/7 con cuatro niveles: off, suggest, assist, auto · cambio de modo al instante sin redeploy
featureCopiloto para agentes con 4 acciones desde el ticket: clasificar (categoría + prioridad + sentiment + confianza), sugerir respuesta con RAG, buscar duplicados, sugerir escalamiento
featureRAG sobre KB con full-text MySQL · reindex parte cada artículo publicado en chunks de ~800 chars con keywords extraídas · busca por NATURAL LANGUAGE MODE
featureGeneración automática de artículos KB · agrupa tickets resueltos por similitud Jaccard ≥ 0.4, propone título + body + excerpt con confianza · flujo de aprobación humano antes de publicar
featureClasificación predictiva en batch sobre tickets abiertos · predice categoría (login/billing/bug/feature/api), prioridad (low→urgent), sentiment (positive/neutral/negative)
featureDetección de duplicados con similaridad Jaccard ≥ 0.65 sobre tickets abiertos · panel de revisión con Confirmar / Mergear (cierra el duplicado) / Descartar
featureDashboard con gráfico Chart.js de 30 días (conversaciones · deflectadas · escaladas), tarjetas de estado, deflexión vs meta y tokens del mes
featureConfiguración: nivel de autonomía, umbral de confianza (0-100%), meta de deflexión (%), canales habilitados (chat/email/portal/ticket/api), idiomas, persona del bot
featureIntegración con tickets: predicciones quedan en ai_engine_predictions con kb_ids relacionados · al aprobar un artículo IA se publica en kb_articles como borrador
mejora8 tablas (ai_engine_settings, conversations, messages, kb_chunks con FULLTEXT, predictions, duplicates, metrics_daily, articles) · índices por tenant_id
featureMicrosoft Teams Omnicanal (Enterprise) · totalmente integrado · NO es un simple webhook one-way: es un puente bidireccional ticket↔Teams
featureBot Framework webhook con validación HMAC-SHA256 (header X-Kydesk-Signature) · cada tenant tiene su secret rotable · zero spoofing
featureTres triggers de auto-creación de tickets: mensaje 1:1 al bot, @mención al bot en un canal, post en un canal enlazado con auto_route activo
featureRouting por canal: cada team-channel se enlaza a una categoría, departamento, empresa cliente y prioridad por defecto · soporta routing mixto
featureRespuesta bidireccional real: comentario en ticket → mensaje en Teams (vía Bot Framework /v3/conversations/{id}/activities) · mensaje en Teams → comentario en ticket
featureOAuth 2.0 client credentials con login.microsoftonline.com · token cache implícito por request · panel de "Probar credenciales" sin tener que enviar mensaje
featureMapeo automático de usuarios Teams ↔ usuarios Kydesk · histórico unificado por persona · conversaciones marcadas como personales (DM) o de canal
featureVista de conversación con timeline de mensajes inbound/outbound, formulario de respuesta inline (envía a Teams + agrega comentario al ticket en una sola acción)
featureMensaje de bienvenida configurable que se envía a Teams al abrir el ticket · indica el código del ticket para que el usuario lo referencie
featureActive Directory (Enterprise) · soporte completo para Azure AD / Entra ID y LDAP / LDAPS on-prem · tres modos: azure, ldap o hybrid
featureAzure AD: OAuth 2.0 con login.microsoftonline.com · scopes openid+profile+email+User.Read · auto-provision al primer login con rol por defecto configurable
featureSync Azure vía Microsoft Graph: lista usuarios paginados (top=999, sigue @odata.nextLink) · campos id/displayName/userPrincipalName/mail/accountEnabled/jobTitle/mobilePhone
featureSync grupos Azure (opcional) · cada grupo importado puede mapearse a un rol interno de Kydesk · al login el usuario hereda el rol del grupo principal
featureLDAP / Active Directory on-prem: ldap_connect con StartTLS o LDAPS · timeout 10s · search por filtro configurable (default: objectCategory=person+objectClass=user)
featureAtributos LDAP configurables: login_attribute (sAMAccountName), email_attribute (mail), name_attribute (displayName), group_filter · usás los que tu schema corporativo dicte
featureBind con cuenta de servicio · objectGUID se hexea a external_id estable · hash del DN se guarda como attributes JSON para auditoría
featureSincronización: manual / horaria / diaria / semanal · cada corrida queda en ad_sync_logs con users_created, users_updated, groups_synced, errors y mensaje completo
featureAuto-provisioning: si un usuario AD no existe en Kydesk, se crea automáticamente con el rol por defecto · si ya existe, se actualiza name si era genérico
featureTest de conexión sin guardar: botón "Probar Azure AD" verifica el client_credentials grant · "Probar LDAP" hace bind y desconecta sin alterar nada
featureLogin URL pública por tenant: /auth/azure/login?slug={tenant} · el state OAuth y tenant_id quedan en sesión hasta el callback /auth/azure/callback
mejora5 tablas (ad_settings, ad_users, ad_groups, ad_sync_logs, ad_sessions) con UNIQUE por (tenant_id, source, external_id) para idempotencia entre sincronizaciones
mejoraCuatro nuevos modules registrados en MODULE_CATALOG: ai_engine, migration_center, ms_teams_omni, active_directory · todos enterprise-only · super admin puede activar/desactivar por tenant
mejoraSidebar actualizado: nuevas entradas Bot (AI Engine), Database-Zap (Migration), Message-Circle (Teams) y Building (AD) · aparecen bloqueadas con candado en planes inferiores
mejoraPermisos granulares: ai_engine.{view,config,use} · migration.{view,run,rollback} · teams.{view,config,use} · ad.{view,config,sync} · todos asignados al rol owner por la migration
mejora4 nuevas entradas en LandingController::FEATURES con steps, benefits, hero_kpis y FAQs · accesibles desde /features y desde /features/{key}
mejoraSoporte i18n completo: traducciones nav.ai_engine, nav.migration, nav.teams_omni, nav.ad en español e inglés
v4.10.0MAJOR2026-05-02
Cotizaciones profesionales con PDF, ITBIS configurable y portal de aceptación
featureMódulo de Cotizaciones (Business / Enterprise) · cabecera + N líneas de items · cálculo en vivo de subtotal, descuentos, ITBIS, envío y otros cargos en JS sin recargar
featureNumeración automática configurable (prefijo + año + secuencial · ej: COT-2026-0001) · contador por tenant · próximo número editable desde la UI
featureItems con cantidad decimal (0.001), unidad (hora/unidad/licencia/servicio/proyecto/mes/custom), precio unitario, descuento por línea (%) y flag taxable individual
featureDescuento global (%) que se aplica proporcionalmente a la base imponible · sin afectar items exentos · cálculo igual al PDF para evitar discrepancias
featureImpuestos 100% configurables desde la UI · seed inicial con ITBIS 18% (RD), IVA 21% (ES/AR), IVA 16% (MX), VAT 7% y Exento 0% · podés crear los que necesites con tasa decimal de hasta 3 dígitos
featureSwitch rápido de impuesto desde el formulario · uno marcado como default se carga automáticamente · soporte para tax_rate personalizado fuera de los presets
featureItems con flag is_taxable independiente · útil para mezclar productos exentos (servicios profesionales, exportación) con productos gravados en la misma cotización
featurePDF profesional con mPDF (mejor soporte CSS que dompdf) · header de cada página con tu logo, razón social, RNC, dirección, teléfono y email
featureBranding total: color primario y de acento configurables · aparecen en el badge de estado, eyebrow, total destacado y línea separadora del header
featureSubida de logo con validación (JPG/PNG/WebP/SVG) · se guarda en /public/uploads/quote_logos · path absoluto resuelto en runtime para que mPDF lo embeba correctamente
featureTabla de items con número, descripción + descripción larga, cantidad con unidad, precio unitario, descuento %, marca de "exento de impuestos" y subtotal por línea con zebra rows
featureBloque de totales con subtotal, descuento (rojo), impuesto con tasa, envío, otros cargos, y el GRAN TOTAL destacado en una caja color brand con tipografía monoespaciada
featureSección de "Datos de pago" opcional (banco, cuenta, RNC) · "Notas internas" opcional · ambos como cards con borde lateral de color
featureTérminos y condiciones al final · línea de firma con nombre y cargo configurables · si la cotización está aceptada, badge verde con quién y cuándo aceptó reemplaza la firma
featureFooter con texto personalizable y paginación "Página X de Y" · tipografía DejaVu Sans con soporte completo de UTF-8 (acentos, ñ, símbolos de moneda)
featureLink público único por cotización (token de 32 hex chars · UNIQUE KEY) · cliente abre /q/{token} sin login · branding completo del tenant en la página
featureCliente puede descargar el PDF, aceptar la cotización con su nombre + email firmado, o rechazarla con motivo opcional · todo se registra en quote_events
featureAuto-marcado de "vista" al primer load del cliente · timestamp en viewed_at · tracking de actor (agent/client/system) para cada evento
featureEmail automático al equipo cuando el cliente acepta (configurable) · CTA al panel para arrancar la entrega · destinatario configurable por separado del support_email
featurePlantillas de cotización con items prearmados, intro, términos y validez por defecto · cargá una plantilla y la cotización queda lista para enviar en segundos
featureConexión con CRM: desde el detalle del lead, ?lead_id= prefija nombre, email, teléfono y dirección · conexión con Companies para autocompletar al elegir empresa registrada
featureConexión con Service Catalog: botones de "cargar desde catálogo" agregan items con título y descripción del catálogo de servicios ITSM existente
featureEstados completos: borrador, enviada, vista, aceptada, rechazada, expirada, revisada, convertida · transiciones automáticas + cambio manual desde el panel
featureAuto-marcado de "expirada" cuando valid_until < hoy · al editar una expirada vuelve a "revisada" para indicar que se actualizó · ciclo limpio de re-envío
featureDuplicar cotización con un click · clona items, totales, intro y términos · genera código nuevo, token nuevo y arranca como borrador
featureTimeline de eventos (created, sent, viewed, accepted, rejected, pdf_downloaded, etc.) con actor_name, actor_email y meta JSON para auditoría completa
mejoraPermisos granulares quotes.view / create / edit / delete / send / config · auto-asignados a owner y admin · agentes con view+create+edit+send
mejoraMódulo gateado por plan Business / Enterprise · super admin puede activar/desactivar quotes por tenant desde /admin/tenants/{id}/modules sin tocar el plan
mejora7 tablas nuevas (quote_settings, quote_taxes, quotes, quote_items, quote_templates, quote_template_items, quote_events) · migración idempotente con seed de impuestos y settings por tenant
mejoraCálculo de totales centralizado en QuoteController::computeTotals · misma fórmula en backend (PHP) y frontend (JS) · garantiza paridad entre lo que el agente ve y lo que se guarda
mejoraValidación de status para edición (no se puede editar accepted/rejected/converted) · re-cálculo automático al actualizar items · borrado y re-inserción transaccional
v4.9.0MAJOR2026-04-29
CRM avanzado · gestión de leads, oportunidades y conversión de clientes
featureMódulo CRM completo (Business / Enterprise) · gestión integral del ciclo comercial · leads, oportunidades, actividades, notas y conversión a clientes en una sola pantalla
featurePipeline kanban con drag & drop · arrastrá tarjetas entre etapas y la probabilidad / estado se actualiza automáticamente · etapas marcadas Won/Lost cierran la oportunidad
featureMúltiples pipelines por tenant · seed automático de 3 pipelines (Ventas, Onboarding, Renovaciones) con 17 etapas pre-configuradas y probabilidades calibradas
featureLead scoring 0-100 + rating Frío/Tibio/Caliente · estados (Nuevo, Contactado, Calificado, Propuesta, Negociación, Cliente, Perdido, Archivado) con badges de color en toda la UI
featureActividades del lead (llamadas, emails, reuniones, tareas, WhatsApp, SMS) con scheduled_at · marcado completed/no_answer/rescheduled · alerta visual de actividades vencidas
featureNotas internas con autor, timestamp y opción de "fijar arriba" · timeline cronológico por lead · independiente del campo Notas del perfil
featurePróximo follow-up por lead con datetime · dashboard muestra leads con follow-ups vencidos y top hot leads del momento
featureOrígenes de lead configurables (Web, Referido, Ads, LinkedIn, Cold call, Cold email, Evento, Partner, Formulario web, WhatsApp) · seed de 10 orígenes por tenant
featureTags multi-color por lead · seed de 6 tags útiles (Enterprise, SMB, VIP, Riesgo de fuga, Upsell, Hot lead) · filtros de listado por tag
featureOportunidades por lead con título, monto, moneda, probabilidad heredada de la etapa, fecha esperada de cierre y descripción · razón de pérdida cuando se cae
featureEdición inline de oportunidad desde el detalle del lead · cambio de etapa propaga la probabilidad · won_at/lost_at/actual_close_on se setean automáticamente
featureConvertí lead a cliente con un click · checkbox opcional para crear automáticamente la empresa en el módulo Companies y el usuario en Portal Cliente con contraseña temporal
featureVinculación con tickets existentes por email del lead · histórico cruzado en la ficha · base para reportes 360 del cliente
featurePermisos granulares crm.view / create / edit / delete / config / assign / convert · auto-asignados a roles owner y admin · agentes con view+edit+create por defecto
featureMódulo gateado por plan Business/Enterprise · super admin puede activar/desactivar CRM por tenant desde /admin/tenants/{id}/modules sin tocar el plan
featureDashboard del CRM con 4 KPIs (leads totales, abiertos, clientes, valor del pipeline), distribución por estado, top orígenes, próximas actividades y hot leads del día
featureListado de leads con filtros combinados (búsqueda, estado, rating, origen, owner, tag) · pills coloreados para tags · ordenamiento por creación con cap de 300 resultados
mejoraCódigos de lead auto-generados con formato LD-00001 secuencial por tenant · únicos a nivel UNIQUE KEY (tenant_id, code) sin colisión bajo carga
mejoraEndpoint POST /crm/deals/{id}/move responde JSON · soporta drag & drop sin recargar (con auto-reload tras éxito) · CSRF validado
v4.8.0MAJOR2026-04-29
Video conferencia y audio integrados en la agenda
featureVideo conferencia integrada en el panel · auto-genera un room por reunión virtual o llamada de audio · cliente y host se conectan desde el mismo lugar sin instalar nada
featureProvider Jitsi Meet por defecto (gratis · meet.jit.si para testing) · auto-fallback a "abrir en pestaña nueva" cuando el embed gratuito tiene restricciones
featureSoporte completo para Jitsi as a Service (8x8.vc) · firma RS256 con clave RSA · header kid (appId/keyId) · sin restricciones de embed · tier gratuito hasta 25 usuarios/mes
featureSoporte para Jitsi self-hosted con shared secret HS256 · pegás tu dominio + secret en ajustes y listo
featureLiveKit en BETA · access tokens RS256 firmados ya implementados · cambio de provider con un toggle cuando se quiera activar SDK + grabación
featureCapa de abstracción Provider con factory pattern · Jitsi/LiveKit/futuros providers detrás de la misma interfaz · cero cambios en controllers/vistas al migrar
featureCard oscura con CTA "Iniciar conferencia" en el detalle de la reunión (panel host) · embed inline 600px alto · botón "Salir y minimizar" deja la reunión sin recargar
featureBotón "Entrar a la reunión" en la página de gestión pública del cliente · habilitado solo entre 15 min antes y 30 min después · disabled gracefully fuera de ese rango
featureEmail de confirmación con CTA gigante "Entrar a la videoconferencia" · gradient violeta-oscuro · click directo desde el inbox del cliente
featureICS calendar invite descargable · funciona con Google Calendar / Outlook / Apple Calendar · incluye el meeting URL en el campo location
featureDetección automática de modo audio-only · location_type=phone inicia con cámara apagada y oculta toggle de cámara
featureWizard guiado de 4 pasos para configurar 8x8.vc · enlace directo a jaas.8x8.vc/start-guide · auto-detección de App ID JaaS (vpaas-magic-cookie-) → switch automático del dominio a 8x8.vc
featureBotón "Probar configuración" sin guardar · firma un JWT de test con las credenciales pegadas · valida algoritmo (HS256/RS256), kid, embed mode · preview del token resultante
featureValidación server-side: si el App ID es JaaS pero falta el kid o la private key, bloquea el guardado con mensaje explicativo · evita "Authentication failed" en producción
featureRefresh automático de meeting_url para reservas futuras cuando cambia el dominio o provider · sin re-crear las reuniones
featureBooking público auto-genera el room al confirmar la reserva (location_type virtual o phone) · room_id determinístico desde el public_token (cripto-seguro · sin colisiones)
featureManual booking desde el panel también auto-genera room cuando el host crea reuniones virtuales/audio sin URL custom
mejoraMigración idempotente con 5 columnas en meetings (conference_provider, conference_room_id, conference_meta, conference_started_at, conference_ended_at) + 9 columnas en meeting_settings
mejorajitsi_app_secret y livekit_api_secret extendidos a TEXT (eran VARCHAR 255) · soporte para claves RSA 2048-bit que ocupan ~1700 chars
mejoraHelper Jwt::signRS256 con openssl_sign · Jwt::looksLikePem para auto-detección de formato · header kid configurable
mejoraCache en memoria del provider por tenant en ConferenceFactory · clearCache automático al guardar settings
fixmeet.jit.si gratis tenía corte de embed a los 5 min · ahora se detecta el dominio y forzamos "abrir en pestaña nueva" cuando no hay JWT configurado
v4.7.0MAJOR2026-04-29
Agenda de reuniones · Página pública estilo Calendly
featurePágina pública /book/{slug} estilo Calendly · branding propio (logo, color, mensajes) · multi-tipo de reunión
featureSelector de fecha/hora con calendario mensual responsive · slots calculados en tiempo real respetando disponibilidad, buffers, bloqueos y reuniones existentes
featureCliente ve histórico autenticado de SUS tickets (filtra por portal_user_id o requester_email)
featureVinculación opcional con company al crear cuenta
featureSuper tenant: gestión /t/{slug}/portal-users con activar/desactivar/eliminar usuarios del portal
featureReports Builder con 10 widgets pre-construidos · disponible en Business+
featureWidgets: tickets por estado/prioridad/categoría/agente/día, tiempo medio resolución, cumplimiento SLA, tickets abiertos, CSAT score, top 10 empresas
featureBuilder Alpine.js con add/remove/reorder de widgets
featureFiltros guardados (rango de fechas) por reporte
featureMarcar como favorito, compartir con el equipo, scheduled emails (config inicial)
featureCustom Fields por categoría · disponible en todos los planes
mejoraMigración v5 idempotente con 16 tablas nuevas + columnas extra en tickets
mejoraMigración ai_centralized convierte ai_settings a modelo de asignación super-admin-controlado
mejoraAI quota cascade: kill switch global → asignación tenant → enabled tenant → API key disponible → cuota no agotada
v4.5.0MINOR2026-04-27
Igualas configurables · Soporte TI, Dev, Sistemas y más
featureNuevo módulo Igualas (Retainers) en /t/{slug}/retainers · disponible en Business y Enterprise
featureSoporta empresas y clientes individuales (persona física) en el mismo módulo
featureCategorías de servicio configurables desde la UI: Soporte TI, Desarrollo de software, Sistemas, Cloud & DevOps, Ciberseguridad, Consultoría, Marketing, Legal, Contable, Mantenimiento web, Licencias SaaS
featureCada categoría con icono + color + unidad por defecto (horas, tickets, usuarios, licencias, proyectos, meses, custom)
featureItems por línea en cada iguala con título, categoría, cantidad, unidad, tarifa, importe, recurrente/único y facturable/no
featureCálculo automático de importe por línea (qty × tarifa) y total recurrente facturable en tiempo real
featurePlantillas reutilizables con items pre-cargados — 10 plantillas seed: Soporte TI Básico/Premium, Dev Sprint/Maintenance, Cloud Ops 24/7, Pentest mensual, Consultoría Senior, Marketing 360, Legal Corp, Contable
featureBuilder de plantilla "1-click": crear iguala desde plantilla pre-llena formulario + items
featureFiltro de igualas por categoría con pills de color, búsqueda por código/nombre/cliente y filtro por estado
featureCiclos de facturación: mensual, trimestral, anual
featureHoras y tickets incluidos por período, tarifa de excedente configurable
featureImpuesto (%) y términos de pago configurables por iguala
featureSLA opcional por contrato (tiempo de respuesta + resolución en minutos)
featureApertura automática del primer período al activar la iguala
featureCierre manual de período con avance automático al siguiente si auto_renew=1
featureRegistro de consumos asociado a tickets · cálculo automático de horas consumidas y excedente
featureVisualización de progreso del período actual con barra y alerta si supera horas incluidas
featureCódigos auto-generados IGL-XXXXX únicos por tenant
featureControl de módulos por tenant en /admin/tenants/{id}/modules · super admin habilita/deshabilita features individualmente
featureTres estados por módulo: Heredar (del plan), Activar (override on), Desactivar (override off) · con campo de motivo para auditoría
featureOverride de módulos respeta plan base pero permite excepciones — ej: dar Igualas a un Pro específico, quitar Integraciones a un Business
featureCatálogo de 17 módulos clasificados por nivel: core, pro, business, enterprise
featureEntregas firmadas con HMAC-SHA256 (X-Kydesk-Signature) + retries con backoff
featureAuto-deshabilitar webhook tras 10 fallos consecutivos · email automático al developer
featureActivity events stream: GET /api/v1/events/recent + Server-Sent Events /events/stream
featureAI Chat (/developers/ai/chat): chatea con tu workspace usando OpenAI/Anthropic/Google · tool calling con Kydesk · BYO key directo desde el browser
featureMCP config download para Claude Desktop, Continue, Cline
featureAPI Console: persistencia de token, historial de 25 requests, favoritos en DB, tabs Respuesta/Headers/Historial/Favoritos
featureEmail verification + password reset flow completo con token de un solo uso
featureToken IP allowlist (CIDR soportado), expiración configurable, descripción de propósito
feature10 emails transaccionales centralizados vía Resend con branding consistente
featureWelcome email tras registro · invoice/payment notifications · token security alert · webhook disabled · subscription change · quota warnings (80% y 100%, una vez por mes)