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 ID | Nombre | Acceso |
|---|
1 | Administrador | Acceso total: configuración, agentes, clientes, tickets y reportes |
2 | Supervisor | Acceso a configuración general y gestión completa de tickets |
3+ | Agente | Acceso 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:
Acceder al formulario
En el menú lateral, ve a Admin → Agentes y haz clic en el botón + Nuevo Agente.
Completar información personal
Rellena los campos obligatorios de la sección Información Personal:| Campo | Campo en BD | Tipo | Requerido |
|---|
| Nombre | first_name | texto | Sí |
| Apellido | last_name | texto | Sí |
| Correo | email | email | Sí |
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.| Campo | Campo en BD | Tipo | Requerido |
|---|
| Rol | role_id | select | Sí |
| Contraseña | password_hash | password | Sí |
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:
| Campo | Campo en BD | Descripción |
|---|
| Cargo | job_title | Puesto o cargo del agente |
| Teléfono | phone | Nú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ña | Contenido |
|---|
| General | Correo, teléfono, cargo, rol e ID del agente |
| Firma | Editor HTML para la firma personal que se adjunta a los correos |
| Seguridad | Cambio de contraseña del agente |
| Actividad | Historial 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:
| Pantalla | Ruta | Función |
|---|
| Lista de clientes | /admin/customers.php | Búsqueda por nombre, correo, teléfono o empresa |
| Crear cliente | /admin/customer-create.php | Alta 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:
| Campo | Campo en BD | Descripción |
|---|
| Nombre | name | Nombre completo del contacto |
| Correo electrónico | email | Dirección única; se valida duplicado al editar |
| Teléfono | phone | Opcional |
| Empresa | company_name | Opcional |
| Cliente activo | is_active | Checkbox; por defecto activado |
| No enviar correos automáticos | disable_auto_emails | Checkbox; 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.