Sistema de Tickets y Soporte ============================ NoxPanel incluye un sistema de **helpdesk** completo para gestionar solicitudes de soporte. Los tickets pueden crearse desde el panel web, por email o vía API. El sistema soporta **IMAP**, **OAuth2 Microsoft 365** y **OAuth2 Google/Gmail** para la recepción automática de tickets por correo electrónico. .. note:: Para acceder al módulo de tickets necesitas el permiso ``can_access_ticketing``. Si no ves la sección de soporte, contacta con tu administrador. .. image:: /_static/screenshots/06_helpdesk.jpg :alt: Dashboard del helpdesk :width: 100% :align: center | Acceso ------ El dashboard de tickets se encuentra en ``/tickets/``. Desde allí puedes: - Ver todos tus **tickets abiertos y cerrados** - **Crear** nuevos tickets de soporte - **Responder** en el hilo de conversación de cada ticket - Filtrar por **estado**, **prioridad** y **departamento** - Adjuntar archivos a tus mensajes Descripción General ------------------- El sistema de tickets se estructura en los siguientes elementos: **Departamentos** Cada ticket se asigna a un departamento (Soporte Técnico, Ventas, Administración, etc.). Los departamentos permiten enrutar las solicitudes al equipo correcto. **Prioridades** Los tickets tienen una prioridad que determina los tiempos de respuesta según la política SLA configurada: .. list-table:: :header-rows: 1 :widths: 20 30 30 * - Prioridad - Primera Respuesta - Resolución * - **Crítica** - 1 hora - 4 horas * - **Urgente** - 2 horas - 8 horas * - **Alta** - 4 horas - 24 horas * - **Media** - 8 horas - 48 horas * - **Baja** - 24 horas - 72 horas .. note:: Los tiempos de SLA son configurables por el administrador y pueden variar según tu plan contratado. **Estados del Ticket:** .. list-table:: :header-rows: 1 :widths: 20 50 * - Estado - Significado * - **Nuevo** - Recién creado, sin asignar * - **Abierto** - Asignado a un agente, en proceso * - **Pendiente Cliente** - Se espera respuesta del usuario * - **En Espera** - Pausado temporalmente * - **Resuelto** - Solución proporcionada, pendiente de confirmación * - **Cerrado** - Ticket finalizado Funcionalidades --------------- Crear un Ticket ~~~~~~~~~~~~~~~ **Desde el panel web:** 1. Accede a ``/tickets/new/``. 2. Rellena el formulario: - **Asunto** — Descripción breve del problema - **Departamento** — Selecciona el departamento adecuado - **Prioridad** — Según la urgencia de tu solicitud - **Mensaje** — Descripción detallada del problema o solicitud - **Adjuntos** — Archivos opcionales (capturas de pantalla, logs, etc.) 3. Pulsa **"Enviar Ticket"**. .. code-block:: bash # Ejemplo — crear un ticket vía API curl -X POST https://tu-dominio.com/tickets/api/tickets/ \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "subject": "Error al crear sitio web", "department": 1, "priority": "high", "messages": [ { "body": "Al intentar crear un nuevo sitio web desde el panel de hosting, recibo un error 500. Adjunto captura de pantalla del error. El dominio es ejemplo.com y el error ocurre al pulsar el botón Crear.", "message_type": "reply" } ] }' # Respuesta: # { # "id": "e4f5a6b7-...", # "number": "TK-000042", # "subject": "Error al crear sitio web", # "status": "new", # "priority": "high", # "department": {"name": "Soporte Técnico"}, # "created_at": "2026-02-08T10:30:00Z" # } **Por email:** Si el sistema tiene una cuenta de correo configurada, puedes enviar un email directamente al departamento correspondiente. El ticket se creará automáticamente con el asunto y cuerpo del email. .. tip:: Incluye toda la información relevante en el primer mensaje: URL del recurso afectado, mensajes de error, pasos para reproducir el problema. Esto acelera significativamente la resolución. Ver Hilo del Ticket ~~~~~~~~~~~~~~~~~~~ Cada ticket tiene un **hilo de conversación** con todos los mensajes intercambiados entre el usuario y los agentes de soporte. Accede al detalle del ticket en ``/tickets//``. El hilo muestra: * **Mensajes del usuario** — Tus mensajes y respuestas * **Respuestas de agentes** — Mensajes del equipo de soporte * **Notas del sistema** — Cambios de estado, asignaciones, etc. * **Adjuntos** — Archivos compartidos en cada mensaje .. code-block:: bash # Ver detalle de un ticket curl -X GET https://tu-dominio.com/tickets/api/tickets// \ -H "Authorization: Bearer " # Responder a un ticket (añadir mensaje) curl -X POST https://tu-dominio.com/tickets/api/tickets//reply/ \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "body": "He probado los pasos que indicas y el problema persiste. Adjunto los logs del servidor.", "message_type": "reply" }' Adjuntar Archivos ~~~~~~~~~~~~~~~~~ Puedes adjuntar archivos a cualquier mensaje del ticket. Los formatos comunes soportados incluyen: * Imágenes: PNG, JPG, GIF * Documentos: PDF, TXT, DOC, DOCX * Logs: LOG, TXT * Comprimidos: ZIP, TAR.GZ .. code-block:: bash # Adjuntar un archivo a un mensaje curl -X POST https://tu-dominio.com/tickets/api/tickets//reply/ \ -H "Authorization: Bearer " \ -F "body=Adjunto los logs del servidor" \ -F "attachments=@/ruta/al/archivo/error.log" Filtrar y Buscar Tickets ~~~~~~~~~~~~~~~~~~~~~~~~ Desde el dashboard de tickets puedes filtrar por: * **Estado** — Nuevo, Abierto, Pendiente, Resuelto, Cerrado * **Prioridad** — Baja, Media, Alta, Urgente, Crítica * **Departamento** — Soporte, Ventas, etc. .. code-block:: bash # Filtrar tickets por estado y prioridad curl -X GET "https://tu-dominio.com/tickets/api/tickets/?status=open&priority=high" \ -H "Authorization: Bearer " # Buscar tickets por número curl -X GET "https://tu-dominio.com/tickets/api/tickets/?search=TK-000042" \ -H "Authorization: Bearer " Departamentos Disponibles ~~~~~~~~~~~~~~~~~~~~~~~~~ Los departamentos más comunes son: * **Soporte Técnico** — Problemas con hosting, VPS, DNS, etc. * **Ventas** — Consultas sobre planes, precios y contratación * **Facturación** — Dudas sobre facturas, pagos y suscripciones * **Administración** — Solicitudes administrativas generales .. code-block:: bash # Listar departamentos disponibles curl -X GET https://tu-dominio.com/tickets/api/departments/ \ -H "Authorization: Bearer " # Respuesta: # [ # {"id": 1, "name": "Soporte Técnico", "slug": "soporte-tecnico"}, # {"id": 2, "name": "Ventas", "slug": "ventas"}, # {"id": 3, "name": "Facturación", "slug": "facturacion"} # ] Etiquetas (Tags) ~~~~~~~~~~~~~~~~~ Los tickets pueden tener **etiquetas** para facilitar su clasificación. Las etiquetas son asignadas por los agentes de soporte y permiten categorizar tickets por tema: * ``dns`` — Problemas de DNS * ``ssl`` — Certificados SSL * ``email`` — Correo electrónico * ``backup`` — Copias de seguridad * ``facturación`` — Temas de facturación .. code-block:: bash # Listar etiquetas disponibles curl -X GET https://tu-dominio.com/tickets/api/tags/ \ -H "Authorization: Bearer " Recepción de Tickets por Email ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ El sistema de tickets puede estar configurado para recibir solicitudes por correo electrónico de forma automática. Soporta: * **IMAP** — Protocolo estándar de correo entrante * **POP3** — Protocolo alternativo * **OAuth2 Microsoft 365** — Integración con cuentas corporativas Microsoft * **OAuth2 Google / Gmail** — Integración con cuentas de Google Cuando se recibe un email en la dirección del departamento, se crea automáticamente un ticket con: - El **asunto** del email como título del ticket - El **cuerpo** del email como primer mensaje - Los **adjuntos** del email como archivos del ticket - El **remitente** como solicitante Las respuestas al email del ticket se añaden automáticamente como mensajes en el hilo. Notas ----- * El dashboard de tickets está accesible en ``/tickets/``. * Los tickets se numeran automáticamente con formato ``TK-NNNNNN`` (por ejemplo, ``TK-000001``). * La autenticación para la API se realiza mediante tokens JWT. * Los archivos adjuntos se almacenan de forma segura y aislada por tenant. * Las políticas de SLA se aplican automáticamente según la prioridad del ticket. Si un ticket supera los tiempos definidos, el sistema genera alertas. * Los tickets creados por email respetan el hilo de conversación mediante las cabeceras ``Message-ID`` y ``In-Reply-To``. * Puedes recibir notificaciones por email cuando tu ticket reciba una respuesta. * Para cerrar un ticket resuelto, confirma la solución respondiendo en el hilo o cambiando el estado desde el panel. .. seealso:: - :doc:`quickstart` — Guía de inicio rápido - :doc:`hosting` — Gestión de hosting compartido - :doc:`vps` — Gestión de servidores VPS - :doc:`billing` — Facturación y suscripciones