Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/banredco/helpdesk/llms.txt

Use this file to discover all available pages before exploring further.

Una vez creado, un ticket concentra toda la conversación entre el cliente y el equipo de soporte en una sola vista (/admin/ticket-view.php?id=...). Desde esta pantalla los agentes pueden redactar respuestas que se envían por correo, añadir notas internas visibles para el equipo, agregar notas privadas solo para uso personal, modificar las propiedades del ticket desde el panel lateral y realizar acciones avanzadas como fusionar o eliminar tickets.

Respuesta al cliente

La pestaña Respuesta es la acción principal del agente. Al enviar una respuesta, el sistema la entrega al cliente por correo electrónico y actualiza el campo last_reply_at del ticket.
1

Abrir el ticket

Desde la lista de tickets, haz doble clic en la tarjeta o usa el ícono de ojo para abrir la vista del ticket en /admin/ticket-view.php?id={id}.
2

Seleccionar la pestaña Respuesta

En la parte inferior de la conversación encontrarás tres pestañas: Respuesta, Comentario y Nota privada. La pestaña Respuesta viene activa por defecto.
3

Redactar el mensaje

El editor muestra una previsualización del correo con el logo de Banred, la apertura “Hola [nombre del cliente],” y un área editable. Haz clic en el área interior (el recuadro con borde punteado) y escribe tu mensaje. Puedes usar el selector de Respuesta rápida para insertar una plantilla predefinida desde quick_replies.
4

Adjuntar archivos (opcional)

Si necesitas enviar documentos al cliente, usa el campo Adjuntos para seleccionar uno o varios archivos. Se guardarán vinculados al mensaje en ticket_attachments.
5

Enviar la respuesta

Haz clic en Enviar respuesta. El formulario hace POST a /admin/ticket-reply-save.php, que:
  1. Valida el token CSRF.
  2. Inserta un registro en ticket_messages con is_internal = 0 (mensaje público).
  3. Guarda los adjuntos en uploads/tickets/.
  4. Actualiza last_reply_at y limpia el activity_label del ticket.
  5. Registra la acción 'Respuesta enviada' en ticket_audit_log.
  6. Envía el correo al cliente mediante MailService::sendTemplate('ticket_replied', ...).
  7. Crea una notificación al cliente en el portal vía CustomerNotification::create(...).
  8. Redirige de vuelta a la vista del ticket.
Si el área de texto está vacía o contiene solo el texto de relleno “Escribe aquí tu respuesta…”, el botón de envío queda bloqueado y se muestra un aviso de advertencia. El botón también se deshabilita al hacer clic para evitar envíos dobles mientras se procesa el correo.

Nota interna (Comentario)

Las notas internas permiten que los agentes dejen anotaciones visibles para todo el equipo de soporte, pero que no se envían al cliente por correo. Son útiles para coordinar entre agentes o dejar contexto sobre el caso. Para agregar un comentario:
  1. Selecciona la pestaña Comentario en el cuadro de respuesta.
  2. Escribe el texto en el editor (CKEditor), opcionalmente usando una plantilla de Comentario rápido.
  3. Adjunta archivos si es necesario.
  4. Haz clic en Guardar comentario.
El formulario envía a /admin/ticket-note-save.php, que inserta en ticket_messages con is_internal = 1 y registra la acción 'Comentario agregado' en el log de auditoría.

Nota privada

Las notas privadas son visibles únicamente para el agente que las crea. Funcionan como un bloc de notas personal sobre el ticket, sin interferir con la conversación visible por los demás agentes. Para agregar una nota privada:
  1. Selecciona la pestaña Nota privada (ícono de candado 🔒).
  2. Escribe el contenido en el editor.
  3. Adjunta archivos si lo necesitas.
  4. Haz clic en Guardar nota privada.
El formulario envía a /admin/ticket-private-note-save.php, que inserta en ticket_messages con is_internal = 2 y registra 'Nota privada agregada' en el log de auditoría.

Borrador automático (Draft autosave)

El sistema guarda automáticamente el contenido que estás redactando en las pestañas Respuesta, Comentario y Nota privada, de modo que si cierras accidentalmente la pestaña o navegas a otra sección, el texto no se pierde.
  • El borrador se guarda en la tabla drafts mediante una llamada AJAX a /ajax/draft-save.php cada vez que el contenido cambia.
  • La clave de cada borrador es única por ticket y tipo: por ejemplo, ticket_reply_{id}, ticket_comment_{id}, ticket_private_note_{id}.
  • Al abrir el ticket, /ajax/draft-load.php recupera el borrador guardado (si existe) y lo carga en el editor correspondiente.
  • Los borradores se almacenan por usuario (user_id), por lo que cada agente tiene su propio espacio de borrador.
// Ejemplo de payload enviado a /ajax/draft-save.php
{
  "draft_key": "ticket_reply_142",
  "data": {
    "body": "<p>Estimado cliente, hemos revisado su caso...</p>"
  }
}

Editar y eliminar mensajes

Desde la conversación del ticket es posible corregir o borrar mensajes ya enviados:
  • Editar mensaje — Haz clic en el ícono de lápiz sobre el mensaje. El sistema abre el formulario de edición via ticket-message-edit.php, donde puedes modificar el asunto y la descripción del ticket original o el cuerpo de un mensaje específico.
  • Eliminar mensaje — Haz clic en el ícono de papelera. El sistema marca el mensaje con is_deleted = 1 en la tabla ticket_messages (borrado lógico); el mensaje deja de mostrarse en la conversación pero permanece en la base de datos.
La eliminación permanente de un ticket completo (/admin/ticket-delete-permanent.php) no puede deshacerse. Esta acción elimina definitivamente el ticket y todos sus mensajes, adjuntos y registros de auditoría. Solo está disponible para tickets en la Papelera y únicamente para usuarios con rol de administrador (role_id ≤ 2). Para un borrado reversible, usa la opción estándar Eliminar que mueve el ticket a la Papelera (is_deleted = 1).

Combinar tickets (Fusionar)

Cuando un cliente abre varios tickets sobre el mismo problema, puedes fusionarlos en uno solo para mantener toda la conversación unificada.
1

Abrir el ticket origen

Navega al ticket que deseas fusionar (el que quedará absorbido por el destino).
2

Hacer clic en Fusionar

En la barra de herramientas superior del ticket, haz clic en el ícono de fusión (⎇ fa-code-merge). Esto abre /admin/ticket-merge.php?id={id}.
3

Ingresar el número del ticket destino

En el campo Ticket destino, escribe el número del ticket que conservará la conversación. El campo target_ticket_number acepta solo valores numéricos.
4

Confirmar la fusión

Haz clic en Fusionar. El formulario envía a /admin/ticket-merge-save.php, que mueve todos los mensajes del ticket origen al ticket destino, cambia el estado del ticket origen a Resuelto (status_id = 5), le agrega el prefijo [FUSIONADO] a su asunto y guarda la referencia en merge_ticket_id. El ticket origen no se elimina; queda en estado Resuelto como registro.

Actualizar propiedades desde el panel lateral

Sin necesidad de entrar al formulario de edición, puedes cambiar las propiedades principales del ticket directamente desde la barra lateral derecha de la vista del ticket. Los campos disponibles son:
PropiedadCampoDescripción
Estadostatus_idCambia el estado del ticket. Si se selecciona Resuelto o Cerrado, se envía automáticamente el correo correspondiente al cliente.
Prioridadpriority_idAjusta el nivel de urgencia.
Tipotype_idCambia la categoría del ticket.
Grupogroup_idReasigna el ticket a un grupo de soporte.
Agenteassigned_user_idAsigna o reasigna el ticket a un agente activo.
Al hacer clic en Actualizar, el formulario envía a /admin/ticket-update-property.php. El sistema verifica que el campo ticket_updated_at del formulario coincida con el valor actual en base de datos para detectar ediciones concurrentes: si otro agente modificó el ticket mientras tú tenías la pantalla abierta, se mostrará un aviso pidiéndote recargar la página antes de continuar. Cada cambio de estado, prioridad, grupo o agente queda registrado en ticket_audit_log con los valores anterior y nuevo, y puede consultarse desde el botón de historial (ícono 🕐 en la barra lateral).

Build docs developers (and LLMs) love