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.

Los agentes son los usuarios internos de Banred Helpdesk: las personas que atienden tickets, responden correos y gestionan el flujo de trabajo de soporte. Cada agente tiene asignado un rol que determina qué secciones del sistema puede ver y qué acciones puede realizar. La gestión completa de agentes se encuentra en Admin → Agentes (/admin/users.php), accesible únicamente para los roles Administrador y Supervisor.

Roles del sistema

El sistema define roles mediante el campo role_id en la tabla users. La función requireRole([1, 2]) de config/permissions.php es la que aplica estas restricciones en cada página del panel.
Role IDNombreAcceso
1AdministradorAcceso total: configuración, agentes, clientes, tickets y reportes
2SupervisorAcceso a configuración general y gestión completa de tickets
3+AgenteAcceso limitado al panel de tickets; sin acceso a configuración
Los permisos se heredan automáticamente al asignar un rol: no existe una pantalla de permisos granulares por usuario.

Crear agente

Para registrar un nuevo agente en el sistema, sigue estos pasos desde /admin/user-create.php:
1

Acceder al formulario

En el menú lateral, ve a Admin → Agentes y haz clic en el botón + Nuevo Agente.
2

Completar información personal

Rellena los campos obligatorios de la sección Información Personal:
CampoCampo en BDTipoRequerido
Nombrefirst_nametexto
Apellidolast_nametexto
Correoemailemail
3

Asignar rol y contraseña

En la sección Acceso y Permisos, selecciona el role_id del desplegable y define una contraseña inicial. La contraseña se almacena cifrada con password_hash() usando el algoritmo PASSWORD_DEFAULT de PHP.
CampoCampo en BDTipoRequerido
Rolrole_idselect
Contraseñapassword_hashpassword
4

Guardar

Haz clic en Guardar Agente. El agente se crea con is_active = 1 y puede iniciar sesión de inmediato. Serás redirigido a la lista de agentes con un mensaje de confirmación.
El INSERT que genera el formulario es el siguiente:
// admin/user-create.php
$stmt->execute([
    $_POST['role_id'],
    trim($_POST['first_name']),
    trim($_POST['last_name']),
    trim($_POST['email']),
    password_hash($_POST['password'], PASSWORD_DEFAULT)
]);

Editar agente

Para modificar los datos de un agente existente, accede a /admin/user-edit.php?id={id} o haz clic en el botón Editar desde la lista de agentes. El formulario de edición expone los mismos campos del alta más dos campos adicionales disponibles solo en edición:
CampoCampo en BDDescripción
Cargojob_titlePuesto o cargo del agente
TeléfonophoneNúmero de contacto interno
Al guardar, el sistema ejecuta un UPDATE sobre la tabla users para los campos role_id, first_name, last_name, job_title, email, phone y updated_at. La contraseña no se modifica desde este formulario; para cambiarla se usa la pestaña Seguridad del perfil del agente.
// admin/user-edit.php
$stmt->execute([
    $_POST['role_id'],
    trim($_POST['first_name']),
    trim($_POST['last_name']),
    trim($_POST['job_title']),
    trim($_POST['email']),
    trim($_POST['phone']),
    $id
]);

Activar y desactivar agente

Desde la lista de agentes (/admin/users.php), el botón Inactivar o Activar redirige a /admin/user-toggle.php?id={id}, que alterna el campo is_active con un IF en SQL:
// admin/user-toggle.php
UPDATE users
SET is_active = IF(is_active = 1, 0, 1)
WHERE id = ?
Un agente con is_active = 0 no puede iniciar sesión. Su cuenta y todo su historial permanecen íntegros en la base de datos; la desactivación es reversible en cualquier momento.

Perfil de agente

La vista de perfil (/admin/user-profile.php?id={id}) presenta la información del agente organizada en cuatro pestañas:
PestañaContenido
GeneralCorreo, teléfono, cargo, rol e ID del agente
FirmaEditor HTML para la firma personal que se adjunta a los correos
SeguridadCambio de contraseña del agente
ActividadHistorial de accesos y acciones (disponible próximamente)
Tanto el administrador (desde el menú de agentes) como el propio agente (desde su sesión) pueden acceder a esta vista para actualizar sus datos.

Gestión de clientes

Los clientes son una entidad distinta a los agentes: se almacenan en la tabla customers y acceden al sistema a través del portal de autoservicio, no del panel de administración. Un cliente puede estar marcado como is_registered = 1 si ha creado credenciales para el portal. El ciclo CRUD de clientes se gestiona en:
PantallaRutaFunción
Lista de clientes/admin/customers.phpBúsqueda por nombre, correo, teléfono o empresa
Crear cliente/admin/customer-create.phpAlta con nombre, correo, teléfono, empresa e indicador de correos automáticos
Editar cliente/admin/customer-edit.php?id=Igual que el alta más validación de email único
Los campos disponibles al crear o editar un cliente son:
CampoCampo en BDDescripción
NombrenameNombre completo del contacto
Correo electrónicoemailDirección única; se valida duplicado al editar
TeléfonophoneOpcional
Empresacompany_nameOpcional
Cliente activois_activeCheckbox; por defecto activado
No enviar correos automáticosdisable_auto_emailsCheckbox; desactiva notificaciones de sistema
Nunca elimines directamente un agente que tenga tickets abiertos o histórico de actividad. Si un agente deja el equipo o ya no debe acceder al sistema, desactívalo usando el botón Inactivar. De esta forma sus tickets permanecen asociados a su cuenta, los reportes mantienen la trazabilidad y la cuenta puede reactivarse si fuera necesario.

Build docs developers (and LLMs) love