Appearance
Relaciones entre Registros CRM
Modulo: CRM Tipo: Resource Estado: Implementado Fecha: 2026-02-02
Descripcion
Las relaciones entre registros permiten vincular dos o mas registros CRM para indicar que tienen alguna conexion semantica. Por ejemplo, se puede vincular un registro de seguimiento con el registro original de la consulta, o marcar dos registros como duplicados.
El sistema soporta relaciones bidireccionales: cuando se crea una relacion entre el Registro A y el Registro B, esta relacion es visible desde ambos registros.
Problema de negocio que resuelve
- Identificar y marcar registros duplicados para evitar trabajo redundante
- Relacionar consultas de seguimiento con registros anteriores
- Vincular registros derivados con sus registros originales
- Mantener contexto entre registros relacionados del mismo cliente
Valor de negocio
- Contexto: El operador puede ver rapidamente registros relacionados
- Eficiencia: Evita duplicacion de esfuerzos al identificar duplicados
- Trazabilidad: Permite seguir la cadena de registros relacionados
- Calidad de datos: Mejora la organizacion de la informacion del CRM
Frontend (Perspectiva de Usuario)
Vistas
- Listado de relaciones: Tabla que muestra las relaciones de un registro CRM
- Modal de gestion de relaciones: Pantalla completa para ver y gestionar relaciones
- Formulario de agregar relacion: Modal para crear una nueva relacion
Interacciones del usuario
Ver relaciones de un registro
- El usuario accede a un registro CRM
- El usuario abre el modal de relaciones
- El sistema muestra una tabla con todas las relaciones del registro
- Se visualiza: direccion (origen/destino), titulo del registro relacionado, fecha, tipo de relacion, nota
Agregar nueva relacion
- El usuario presiona boton "Agregar Relacion"
- Se abre un modal con tabla de registros disponibles
- El usuario puede filtrar para ver solo registros del mismo contacto
- El usuario selecciona un registro haciendo clic en la fila
- El usuario selecciona la direccion de la relacion (A hacia B o B hacia A)
- El usuario opcionalmente selecciona un tipo de relacion
- El usuario opcionalmente agrega una nota descriptiva
- Al confirmar, la relacion se crea y se actualiza el listado
Eliminar relacion
- El usuario visualiza las relaciones existentes
- El usuario presiona el boton de eliminar en una relacion
- El sistema solicita confirmacion
- Al confirmar, la relacion se elimina de ambos registros
Permisos
- Ver relaciones: Requiere permiso de visualizacion del registro CRM
- Crear relacion: Requiere acceso a ambos registros involucrados
- Eliminar relacion: Requiere acceso al registro desde el cual se visualiza
Estados de UI
- Cargando: Indicador de progreso mientras se obtienen relaciones
- Sin relaciones: Mensaje informativo con opcion de agregar
- Sin registros disponibles: Mensaje cuando no hay registros para relacionar
- Guardando: Indicador de progreso durante la creacion
- Eliminando: Indicador de progreso durante la eliminacion
- Error de duplicado: Mensaje cuando la relacion ya existe
- Exito: Notificacion de confirmacion al crear o eliminar
Backend (Perspectiva de Datos de Negocio)
Entidades de negocio
Relacion entre Registros
Representa un vinculo entre dos registros CRM.
Datos necesarios
Cada relacion almacena:
| Dato | Descripcion | Obligatorio |
|---|---|---|
| Registro origen | Identificador del primer registro | Si |
| Registro destino | Identificador del segundo registro | Si |
| Tipo de relacion | Clasificacion del vinculo | No |
| Nota | Descripcion del motivo de la relacion | No |
Tipos de relacion soportados
| Tipo | Descripcion | Caso de uso |
|---|---|---|
| Seguimiento | El registro destino es un seguimiento del origen | Consultas relacionadas sobre el mismo tema |
| Duplicado | Ambos registros representan lo mismo | Marcado de registros duplicados |
| Derivado | El registro destino se origino del registro origen | Registros que surgieron de otro |
| Sin tipo | Relacion generica sin clasificacion especifica | Vinculos informativos |
Relaciones de negocio
- Cada relacion conecta exactamente dos registros CRM
- Las relaciones son bidireccionales (visibles desde ambos registros)
- Un registro puede tener multiples relaciones con diferentes registros
- Un registro no puede relacionarse consigo mismo
Validaciones de negocio
- Ambos registros CRM deben existir
- No puede existir una relacion duplicada entre los mismos registros
- El tipo de relacion, si se especifica, debe ser uno de los valores permitidos
- La nota no puede exceder 500 caracteres
- No se permite crear relacion de un registro consigo mismo
Reglas de negocio
Regla 1: Unicidad de relaciones
- Descripcion: No pueden existir dos relaciones entre el mismo par de registros
- Condicion: Al crear una nueva relacion
- Accion: El sistema verifica que no exista ya una relacion entre los dos registros (en ninguna direccion)
Regla 2: Bidireccionalidad
- Descripcion: Una relacion es visible desde ambos registros involucrados
- Condicion: Al consultar relaciones de un registro
- Accion: El sistema muestra tanto las relaciones donde el registro es origen como donde es destino
Regla 3: Eliminacion completa
- Descripcion: Al eliminar una relacion, se elimina el vinculo completo
- Condicion: Al eliminar una relacion desde cualquiera de los dos registros
- Accion: La relacion desaparece de ambos registros involucrados
Regla 4: Direccion de la relacion
- Descripcion: El usuario puede elegir la direccion al crear la relacion
- Condicion: Al crear una nueva relacion
- Accion: El sistema permite intercambiar origen y destino segun la direccion deseada
Regla 5: Restriccion de eliminacion de registros
- Descripcion: No se puede eliminar un registro que tiene relaciones
- Condicion: Al intentar eliminar un registro CRM
- Accion: Primero se deben eliminar todas las relaciones del registro
Casos de uso
Caso 1: Vincular dos registros
Actor: Operador de CRM
Precondiciones:
- El usuario debe estar autenticado
- Ambos registros CRM deben existir
- No debe existir una relacion previa entre los registros
Flujo principal:
- El operador accede al detalle de un registro CRM
- El operador abre el modal de relaciones
- El operador presiona "Agregar Relacion"
- El sistema muestra tabla con registros disponibles (excluyendo el actual y los ya relacionados)
- El operador opcionalmente activa filtro "Mostrar solo registros del mismo contacto"
- El operador selecciona un registro haciendo clic en la fila
- El sistema muestra selector de direccion con los titulos de ambos registros
- El operador elige la direccion de la relacion
- El operador opcionalmente selecciona un tipo de relacion
- El operador opcionalmente agrega una nota descriptiva
- El operador confirma la relacion
- El sistema crea la relacion y notifica el exito
- El listado de relaciones se actualiza mostrando la nueva entrada
Postcondiciones:
- Se crea la relacion entre los dos registros
- La relacion es visible desde ambos registros
- Los registros relacionados ya no aparecen en la lista de disponibles
Flujos alternativos:
- Error: Relacion duplicada: Si ya existe relacion, el sistema muestra mensaje de error
- Sin registros disponibles: Si no hay registros para relacionar, se muestra mensaje informativo
Caso 2: Marcar registros como duplicados
Actor: Operador de CRM
Precondiciones:
- El usuario identifica dos registros que representan lo mismo
- Ambos registros existen y no estan relacionados
Flujo principal:
- El operador accede a uno de los registros duplicados
- El operador abre el modal de relaciones
- El operador agrega relacion con el otro registro
- El operador selecciona tipo "Duplicado"
- El operador opcionalmente agrega nota explicando el duplicado
- El operador confirma la relacion
Postcondiciones:
- Ambos registros muestran estar relacionados como duplicados
- Futuros operadores pueden ver que los registros estan duplicados
Caso 3: Eliminar una relacion
Actor: Operador de CRM
Precondiciones:
- Existe una relacion entre dos registros
- El usuario tiene acceso al registro
Flujo principal:
- El operador accede al detalle de un registro CRM
- El operador abre el modal de relaciones
- El operador visualiza las relaciones existentes
- El operador presiona el boton de eliminar en la relacion a remover
- El sistema solicita confirmacion
- El operador confirma la eliminacion
- El sistema elimina la relacion y notifica el exito
- El listado se actualiza sin la relacion eliminada
Postcondiciones:
- La relacion se elimina completamente
- Ambos registros dejan de mostrar la relacion
Flujos alternativos:
- Cancelar eliminacion: Si el operador no confirma, la relacion permanece
Consideraciones
Seguridad
- Solo usuarios autenticados pueden gestionar relaciones
- Se requiere acceso a los registros involucrados para crear o ver relaciones
- La eliminacion requiere confirmacion explicita
Auditoria
- Las operaciones de creacion y eliminacion son registradas
- Se puede rastrear quien creo cada relacion
Rendimiento
- Las relaciones se obtienen bajo demanda al abrir el modal
- Los datos se cachean brevemente
- Se aplican actualizaciones optimistas para mejor experiencia de usuario
- El cache se invalida automaticamente al crear o eliminar relaciones
Dependencias
Funcionalidades relacionadas
- Registros CRM (entidades que se vinculan)
- Contactos (para filtrado de registros del mismo contacto)
Servicios externos
Ninguno
Criterios de aceptacion
- [ ] AC-001: Un operador puede crear una relacion entre dos registros CRM existentes
- [ ] AC-002: La relacion es visible desde ambos registros involucrados
- [ ] AC-003: El sistema no permite crear relaciones duplicadas entre los mismos registros
- [ ] AC-004: Un operador puede eliminar una relacion con confirmacion
- [ ] AC-005: Al eliminar, la relacion desaparece de ambos registros
- [ ] AC-006: El listado muestra titulo del registro relacionado, fecha, tipo y nota
- [ ] AC-007: El usuario puede filtrar para ver solo registros del mismo contacto
- [ ] AC-008: El usuario puede elegir la direccion de la relacion al crearla
- [ ] AC-009: Los tipos de relacion disponibles son: seguimiento, duplicado, derivado, o sin tipo
- [ ] AC-010: Las notas son opcionales y tienen limite de 500 caracteres
- [ ] AC-011: El registro actual y los ya relacionados se excluyen de la seleccion
Notas adicionales
Interpretacion de la direccion
La direccion de la relacion tiene significado semantico segun el tipo:
- Seguimiento: "Registro A" es seguimiento de "Registro B" (B es el original)
- Duplicado: La direccion es irrelevante, ambos son equivalentes
- Derivado: "Registro A" se derivo de "Registro B" (B es el original)
Diferencia con derivaciones
Las relaciones vinculan registros entre si (contenido relacionado), mientras que las derivaciones transfieren responsabilidad de atencion entre operadores.
Un registro puede tener:
- Multiples relaciones con otros registros
- Multiples derivaciones en su historial
Estas funcionalidades son independientes y complementarias.