Skip to main content

Panel de soporte

El panel de soporte es la interfaz principal del módulo de Chat en el frontend (/app/chat/). Funciona como hub central de operaciones, integrando chat, tickets, encuestas, usuarios, propiedades y analytics. La navegación lateral organiza las herramientas por frecuencia de uso diario:
#IDLabelIconoRuta
1chatsChatsMessageSquare/app/chat
2ticketsTicketsTicket/app/chat/tickets
3usersUsuariosUsers/app/chat/users
4propertiesPropiedadesBuilding2/app/chat/properties
5surveysEncuestasClipboardList/app/chat/surveys
6analyticsAnalíticaBarChart3/app/chat/analytics
7newsNovedadesMegaphone/app/chat/news
8settingsConfiguraciónSettings/app/chat/settings
Usuarios y Propiedades están promovidos desde Settings al sidebar principal para facilitar flujos diarios de soporte (buscar casa → copiar enlace encuesta → enviar por chat).

Vistas principales

Lista de canales

Ruta: /app/chat/ Panel lateral redimensionable (320px por defecto, rango 240-600px) que muestra la lista de canales con:
  • Scroll virtualizado con paginación infinita (50 canales por página)
  • Filtros: por propiedad, agente, tipo de canal
  • Búsqueda de mensajes a través de canales
  • Conteo de no leídos en tiempo real por canal
  • Marcar como no leído: menú contextual (kebab, visible al pasar el cursor) en cada canal que lo devuelve al estado no leído (badge = 1), persistente tras refrescar y solo para la agente que lo marca. Usa markUnread nativo de Stream vía PATCH /chat/channels/:channelId/mark-unread. Solo disponible para agentes con identidad de chat propia (no para viewers, que comparten la identidad vivla-admin).
  • Pestañas para diferentes vistas de canales
  • Asistente de creación de canales (wizard multi-paso)

Conversación

Ruta: /app/chat/$channelId Vista principal de la conversación con:
  • Lista de mensajes con scroll virtualizado
  • Búsqueda en conversación con navegación entre resultados
  • Sidebar de respuestas rápidas (quick replies)
  • Modo de selección de mensajes para crear tickets o agregar a tickets existentes
  • Sidebar lateral con metadata del canal (propiedad, booking, información del huésped)
    • En canales asociados a una propiedad o reserva se muestra esa casa con el desplegable Información de la casa (WiFi, acceso, alarma, parking).
    • En canales sin propiedad propia (novedades, feedback, incidencias), si el usuario principal tiene casas se listan todas bajo Propiedades de nombre, cada una con su mismo desplegable de información, para conservar contexto en cualquier canal.
  • Seguimiento de estado de lectura, con acción Marcar como no leído en la cabecera (junto a Archivar): deselecciona el canal para que stream-chat-react no lo vuelva a marcar leído y el badge reaparezca en la lista.
  • Salto a mensaje (jump-to-message)

Tickets

Ruta: /app/chat/tickets/ Panel de administración de tickets con:
  • Filtros por estado, prioridad, propiedad y agente
  • Paginación (100 tickets por página)
  • Búsqueda rápida por ID o título
  • Badges de prioridad y estado
  • Vista detallada por ticket (/app/chat/tickets/$ticketId) con comentarios

Usuarios

Ruta: /app/chat/users/ Vista de usuarios promovida desde Settings al sidebar principal. Incluye lista de usuarios con vista detallada por usuario (/app/chat/users/$userId).

Propiedades

Ruta: /app/chat/properties/ Vista de propiedades promovida desde Settings al sidebar principal. Muestra un grid de tarjetas con imagen de portada, nombre, ubicación, selector de agente asignado y botón “Ver NPS” que navega a /app/chat/surveys/results?property={id}. Soporta modo batch para asignaciones masivas.

Encuestas

Ruta: /app/chat/surveys/ Hub de encuestas integrado en el panel de soporte. Incluye 5 sub-secciones con navegación propia:
#IDLabelIconoRutaExact
1activityActividadActivity/app/chat/surveystrue
2adminAdministrarPenTool/app/chat/surveys/adminfalse
3resultsResultadosBarChart3/app/chat/surveys/resultsfalse
4action-plansPlanes de AcciónFileCheck/app/chat/surveys/action-plansfalse
5rewardsRewardsTrophy/app/chat/surveys/rewardsfalse
/app/chat/surveysTabla de respuestas con filtros (búsqueda, tipo encuesta, destino, rango de fechas con DateRangePicker), quick actions (generador inline de deep links, resumen de rewards) y exportación CSV.

Configuración (Settings)

Todas las rutas bajo /app/chat/settings/. Reducido a 4 secciones (Usuarios y Propiedades promovidos al sidebar principal):
/app/chat/settings/agentsGestión de agentes de soporte: crear, editar, quitar y asignar a canales.
  • Crear / convertir: el modal permite crear un agente nuevo (con invitación por email) o convertir a un usuario existente. El buscador del picker consulta todos los usuarios por nombre o email (con debounce), sin filtrar por tipo, de modo que también aparece el personal de Vivla que solo tiene usuario client (creado por el login de la app). Las opciones de tipo client se marcan con un badge Cliente. Solo se ofrecen los roles Moderador y Administrador: el rol viewer se retiró de esta superficie porque el CHECK de la tabla users solo admite admin/moderator/user y guardarlo fallaba.
  • Quitar agente: baja el rol de la persona a user, así deja de ser asignable a canales y tickets y pierde los permisos de agente CX. Conserva su usuario y su historial de chat (no se borra el usuario en Stream ni Auth0) y se le puede volver a convertir en agente más adelante. No puedes quitarte a ti mismo, ni quitar al último administrador de chat. El diálogo incluye “Quitar también de todos los canales” (activado por defecto): al confirmarlo se le saca como moderador de todos los canales no archivados que atendía (DELETE /chat/users/agents/:id?removeFromChannels=true). Los canales donde es el agente activo o por defecto se respetan y se listan en el aviso: reasígnalos primero y vuelve a quitarlo. El toast de éxito informa de cuántos canales se limpiaron y cuántos se saltaron.

News (Notificaciones embebidas)

Sección de broadcast y notificaciones integrada en el módulo de chat, bajo /app/chat/news/:
RutaDescripción
/app/chat/news/Hub principal de noticias
/app/chat/news/dashboardDashboard de analytics
/app/chat/news/templatesTemplates de mensajes
/app/chat/news/sendEnvío manual de notificaciones
/app/chat/news/historyHistorial de mensajes enviados
/app/chat/news/deep-linksConfiguración de deep links
/app/chat/news/automationsReglas de automatización
/app/chat/news/settingsConfiguración general de news

Analytics

Ruta: /app/chat/analytics Métricas de uso del chat: actividad por canal, por usuario y estadísticas generales.
El acceso a las secciones está controlado por el sistema de permisos. Los agentes con rol editor en tool-chat pueden gestionar canales, tickets y encuestas. Las operaciones de configuración avanzada (tipos de canal, sync) requieren rol admin.