> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CRM — modelo de datos

> Las 7 tablas del schema crm, cada una con su forma, su objetivo y el feature spec que la crea. Es el schema más pequeño de la suite y el que más se ve.

Schema `crm`. Depende de `core`; **nunca** referencia tablas de `loyalty` ni de `messaging`
(`standards/data.md` §1). Es la capa de trabajo humano sobre el contacto.

La columna **Forma** es la de [ADR-024](/adr/adr-024-table-naming-and-base-structure): **A** dominio
con alcance de tenant · **B** append-only · **C** catálogo paramétrico.

## Trabajo sobre el contacto

| Tabla           | Forma | De qué es dueña                                                                                                                                                                     | Spec        |
| --------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `note`          | A     | La nota que alguien del equipo deja sobre un contacto. Texto libre con autor y fecha; se edita y se elimina lógicamente                                                             | FS-CRM-0001 |
| `activity`      | A     | La interacción registrada: una llamada, una visita, una reunión. Lleva resultado y fecha, y es lo que alimenta el timeline                                                          | FS-CRM-0002 |
| `activity_type` | C     | La taxonomía de actividad. **Sí es extensible por el tenant**: es vocabulario de su negocio, no lógica del sistema. Es la excepción que confirma la regla de `standards/data.md` §2 | FS-CRM-0002 |

## Listas y vistas

| Tabla             | Forma | De qué es dueña                                                                                                                                                          | Spec        |
| ----------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
| `list`            | A     | La lista guardada: estática por selección manual, o dinámica sobre un segmento de `core`                                                                                 | FS-CRM-0003 |
| `list_membership` | A     | Qué contacto está en qué lista. Tabla intermedia N-M, y existe como tabla propia solo para las listas estáticas: en las dinámicas la pertenencia la resuelve el segmento | FS-CRM-0003 |

## Modelo de objetos (reservado)

| Tabla               | Forma | De qué es dueña                                                                                                                            | Spec        |
| ------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
| `object_definition` | A     | La definición de una entidad propia del tenant y sus campos                                                                                | FS-CRM-0005 |
| `object_record`     | A     | Las filas de esa entidad. Schema reservado: existe desde el día 1 para no migrar después, sin producto encima hasta que un cliente lo pida | FS-CRM-0005 |

## Lo que este schema **no** tiene

* **Ninguna tabla de timeline.** [FS-CRM-0004](/modules/crm/features/fs-crm-0004-timeline) es la
  única feature spec de la suite que **no crea tablas**: el timeline 360 lee de `core`, `loyalty` y
  `messaging` y no es dueño de nada. Si algún día necesita caché, será una proyección con
  procedimiento de reconstrucción documentado, nunca una copia.
* **Ninguna tabla de contacto.** El contacto es de `core` (ADR-009).
* **Ninguna FK hacia `loyalty` ni `messaging`.** El timeline los lee por la capa de aplicación, no
  por la base.
