Skip to content

Tipo de CRM (CrmType)

Modulo: CRM Tipo: Resource Estado: Implementado Fecha: 2026-02-02


Descripcion

El recurso CrmType (Tipo de CRM) define las diferentes categorias o contextos bajo los cuales se gestionan los registros de CRM. Cada tipo representa un flujo de trabajo distinto con su propia configuracion, campos personalizados y comportamiento especifico.

Valor de negocio:

  • Permite crear multiples lineas de negocio con un solo sistema
  • Facilita la adaptacion a diferentes verticales (automotriz, inmobiliario, servicios)
  • Proporciona configuracion flexible sin necesidad de desarrollo
  • Mantiene numeracion independiente por tipo de CRM
  • Permite activar/desactivar tipos segun necesidades operativas

Ejemplos de tipos:

  • CRM de Ventas Automotrices
  • CRM de Servicio Tecnico
  • CRM Basico de Atencion
  • CRM Inmobiliario

Frontend (Perspectiva de Usuario)

Vistas

  1. Selector de Tipo de CRM

    • Permite al usuario elegir el tipo de CRM con el que desea trabajar
    • Muestra solo los tipos activos
    • Respeta el orden configurado
  2. Configuracion de Tipos (Administrador)

    • Listado de todos los tipos de CRM
    • Formulario de alta y modificacion
    • Gestion de estado activo/inactivo

Interacciones del Usuario

AccionDescripcion
Seleccionar tipo CRMEl usuario elige el tipo de CRM para trabajar
Crear tipo CRMEl administrador crea un nuevo tipo de CRM
Editar tipo CRMEl administrador modifica la configuracion de un tipo
Activar/DesactivarEl administrador cambia el estado de un tipo
Ordenar tiposEl administrador define el orden de visualizacion

Permisos

  • Visualizar tipos de CRM (todos los usuarios CRM)
  • Crear tipos de CRM (administradores)
  • Modificar tipos de CRM (administradores)

Estados de UI

EstadoDescripcion
Tipo activoEl tipo esta disponible para crear registros
Tipo inactivoEl tipo no aparece en selectores pero mantiene sus datos
Cargando tiposIndicador mientras se obtienen los tipos disponibles
Sin tiposMensaje cuando no hay tipos configurados

Backend (Perspectiva de Datos de Negocio)

Entidad de Negocio: Tipo de CRM

Representa una categoria o contexto de gestion de registros CRM.

Datos Necesarios

DatoDescripcionRequeridoRestricciones
IdentificadorCodigo numerico unico del tipoAuto-
Codigo de tipoIdentificador textual cortoSi30 caracteres, unico
Tabla externaNombre de tabla para datos extendidosNo30 caracteres
EtiquetaNombre visible para el usuarioSi30 caracteres
Estado activoIndica si el tipo esta habilitadoSitrue/false
OrdenPosicion en listas de seleccionNoEntero
ContadorNumerador de registros del tipoAutoInicia en 1
ConfiguracionOpciones adicionales en formato estructuradoNoJSON

Relaciones de Negocio

RelacionDescripcion
Campos personalizadosCada tipo puede tener multiples campos personalizados
Registros CRMCada tipo agrupa multiples registros de CRM
Tabla externaReferencia opcional a tabla de datos extendidos

Validaciones de Negocio

ValidacionDescripcion
Codigo unicoEl codigo de tipo debe ser unico en el sistema
Etiqueta requeridaLa etiqueta es obligatoria
Codigo inmutableEl codigo de tipo no puede modificarse despues de creado
Tabla coherenteSi se especifica tabla externa, debe ser una tabla valida

Reglas de Negocio

RN-TYP-001: Unicidad de Codigo de Tipo

  • Condicion: Al crear un nuevo tipo de CRM
  • Accion: El sistema verifica que no exista otro tipo con el mismo codigo
  • Error: "El tipo de CRM '[codigo]' ya existe"

RN-TYP-002: Contador Automatico

  • Condicion: Al crear un nuevo tipo de CRM
  • Accion: El sistema inicializa el contador en 1
  • Nota: El contador incrementa con cada registro creado de ese tipo

RN-TYP-003: Estado Inicial Activo

  • Condicion: Al crear un nuevo tipo de CRM
  • Accion: El tipo se crea con estado activo por defecto

RN-TYP-004: Restriccion de Eliminacion

  • Condicion: El tipo tiene registros CRM asociados
  • Accion: No se permite eliminar el tipo
  • Alternativa: Desactivar el tipo para ocultarlo sin perder datos

RN-TYP-005: Ordenamiento de Tipos

  • Condicion: Al listar tipos activos
  • Accion: Se ordenan segun el campo orden, de menor a mayor
  • Nota: Tipos sin orden aparecen al final

RN-TYP-006: Inclusion de Campos

  • Condicion: Al solicitar un tipo con include='fields'
  • Accion: El sistema incluye los campos personalizados asociados
  • Nota: Esto evita multiples consultas para obtener la configuracion completa

Casos de Uso

Caso 1: Crear Nuevo Tipo de CRM

Actor: Administrador del sistema

Precondiciones:

  • El usuario debe estar autenticado como administrador
  • El usuario debe tener permiso para configurar el CRM

Flujo principal:

  1. El administrador accede a la configuracion de tipos CRM
  2. El administrador presiona "Nuevo Tipo"
  3. El sistema muestra el formulario de alta
  4. El administrador ingresa el codigo de tipo (ej: "ventas_autos")
  5. El administrador ingresa la etiqueta (ej: "CRM Ventas Automotrices")
  6. Opcionalmente configura el orden de visualizacion
  7. Opcionalmente especifica tabla de datos extendidos
  8. Opcionalmente define configuracion adicional
  9. El administrador presiona "Guardar"
  10. El sistema valida unicidad del codigo
  11. El sistema crea el tipo con contador en 1 y estado activo
  12. El sistema muestra notificacion de exito

Postcondiciones:

  • El nuevo tipo esta disponible para crear registros
  • El tipo aparece en los selectores de tipo CRM
  • Los campos personalizados pueden agregarse al tipo

Flujos alternativos:

  • Codigo duplicado: El sistema muestra error indicando que el codigo ya existe
  • Datos invalidos: El sistema muestra errores de validacion

Caso 2: Desactivar Tipo de CRM

Actor: Administrador del sistema

Precondiciones:

  • El usuario debe estar autenticado como administrador
  • El tipo de CRM debe existir

Flujo principal:

  1. El administrador accede a la configuracion de tipos CRM
  2. El administrador localiza el tipo a desactivar
  3. El administrador edita el tipo
  4. El administrador cambia el estado a inactivo
  5. El administrador presiona "Guardar"
  6. El sistema actualiza el estado del tipo
  7. El sistema muestra notificacion de exito

Postcondiciones:

  • El tipo ya no aparece en selectores para nuevos registros
  • Los registros existentes del tipo permanecen accesibles
  • Los reportes historicos siguen funcionando

Caso 3: Consultar Tipos con Campos

Actor: Sistema (frontend)

Precondiciones:

  • El modulo CRM debe estar habilitado

Flujo principal:

  1. El frontend solicita la lista de tipos con include='fields'
  2. El sistema obtiene todos los tipos de CRM
  3. Para cada tipo, el sistema obtiene sus campos personalizados
  4. El sistema retorna la lista completa con campos incluidos
  5. El frontend puede renderizar formularios dinamicos segun los campos

Postcondiciones:

  • El frontend tiene la configuracion completa de cada tipo
  • Los formularios pueden generarse dinamicamente

Consideraciones

Seguridad

  • Solo administradores pueden crear o modificar tipos
  • Los usuarios regulares solo pueden visualizar tipos activos
  • La configuracion de tipos afecta a todos los usuarios

Auditoria

  • Se debe registrar quien crea cada tipo
  • Se debe registrar cambios en la configuracion
  • Se debe mantener historial de activaciones/desactivaciones

Rendimiento

  • La lista de tipos es pequena (tipicamente menos de 20)
  • Se puede cachear en el frontend
  • La consulta con campos incluidos evita N+1 queries

Dependencias

Funcionalidades Relacionadas

  • Campos Personalizados: Definen la estructura de datos de cada tipo
  • Registros CRM: Los registros pertenecen a un tipo especifico
  • Datos Extendidos: Tablas externas para informacion adicional

Configuraciones Requeridas

  • Modulo CRM habilitado
  • Permisos de administracion para gestion de tipos

Criterios de Aceptacion

  • [ ] AC-001: El administrador puede crear un tipo de CRM con codigo y etiqueta
  • [ ] AC-002: El sistema rechaza codigos de tipo duplicados
  • [ ] AC-003: El contador se inicializa en 1 al crear un tipo
  • [ ] AC-004: Los tipos nuevos se crean con estado activo
  • [ ] AC-005: El administrador puede modificar etiqueta, orden y configuracion
  • [ ] AC-006: El codigo de tipo no puede modificarse despues de creado
  • [ ] AC-007: El administrador puede activar/desactivar tipos
  • [ ] AC-008: Solo los tipos activos aparecen en selectores
  • [ ] AC-009: Los tipos se ordenan segun el campo orden
  • [ ] AC-010: Se pueden obtener tipos con sus campos incluidos
  • [ ] AC-011: Los registros existentes permanecen al desactivar un tipo
  • [ ] AC-012: No se puede eliminar un tipo con registros asociados

Notas Adicionales

  • El codigo de tipo se usa internamente para identificar comportamientos especificos (ej: "ventas" activa campos de concesionario)
  • La configuracion JSON permite parametros flexibles sin cambios en la estructura de datos
  • El contador por tipo permite numeracion independiente (ej: VEN-001, SRV-001)
  • La tabla externa permite extender datos sin modificar la estructura principal
  • Los tipos predefinidos (ventas, servicio_tecnico, basico) tienen comportamientos especiales en el frontend