Saltar al contenido principal
Las relaciones de muchos a muchos te permiten conectar varios registros en ambos lados. Por ejemplo: muchas personas pueden trabajar en muchos proyectos, y cada proyecto puede tener muchas personas.
Función beta: Las relaciones de unión están actualmente en beta. Actívalas en Settings → Community → Features antes de seguir esta guía.
Esta función también requiere que Advanced mode esté activado (interruptor en la esquina inferior izquierda de Settings).

Cuándo usar relaciones de muchos a muchos

Usa relaciones de muchos a muchos cuando ambos lados de una relación pueden tener varias conexiones:
RelaciónEjemplo
People ↔ ProjectsUna persona trabaja en varios proyectos; un proyecto tiene varios miembros del equipo
Companies ↔ TagsUna empresa puede tener varias etiquetas; una etiqueta puede aplicarse a varias empresas
Products ↔ OrdersUn producto puede estar en varios pedidos; un pedido contiene varios productos

Cómo Funciona

Twenty utiliza un patrón de objeto de unión para las relaciones de muchos a muchos. Un objeto de unión se sitúa entre dos objetos y contiene las conexiones:
People ←→ Project Assignments ←→ Projects
El objeto Project Assignments (unión) tiene:
  • Una relación con People (muchos a uno)
  • Una relación con Projects (muchos a uno)
Cuando activas el interruptor de relación de unión, Twenty muestra los registros vinculados directamente en lugar de mostrar los registros intermedios de unión.

Prerrequisitos

  1. Habilita Junction Relations en Beta Features: Ve a Settings → Community → Features y habilita Junction Relations
  2. Activa Advanced mode: Activa Advanced mode en la parte inferior izquierda de la barra lateral de Settings
  3. Planifica tu modelo de datos:
    • ¿Qué dos objetos estás conectando?
    • ¿Cómo debería llamarse el objeto de unión?

Paso 1: Crear el objeto de unión

Primero, crea el objeto intermedio que contendrá las conexiones.
  1. Vaya a Configuración → Modelo de datos
  2. Haga clic en + New object
  3. Asígnale un nombre descriptivo (p. ej., “Project Assignment”, “Team Member”, “Product Order”)
  4. Activa “Omitir la creación de un campo Nombre”
Nuevo objeto de unión
  1. Haga clic en Guardar
Convención de nombres: Usa un nombre que describa la relación, como “Project Assignment” o “Team Membership”. Esto hace que el modelo de datos sea más fácil de entender.

Paso 2: Crea relaciones entre los objetos y el objeto de unión

Agrega campos de relación desde cada uno de tus dos objetos al objeto de unión.

Primera relación (Objeto A → Unión)

  1. Selecciona tu primer objeto en Settings → Data Model
  2. Haz clic en + Add Relation
  3. Selecciona el objeto de unión (p. ej., “Project Assignments”)
  4. Configura el tipo de relación como One-To-Many (una persona puede vincularse a muchas asignaciones)
  5. Nombra los campos:
    • Campo en People: p. ej., “Project Assignments”
    • Campo en unión: p. ej., “Person”
  6. Haga clic en Guardar

Segunda relación (Objeto B → Unión)

  1. Selecciona tu segundo objeto en Settings → Data Model
  2. Haz clic en + Add Relation
  3. Selecciona el objeto de unión (p. ej., “Project Assignments”)
  4. Configura el tipo de relación como One-To-Many (un proyecto puede vincularse a muchas asignaciones)
  5. Activa “This is a relation to a Junction Object”
  1. Nombra los campos:
    • Campo en unión: p. ej., “Project”
    • Campo en Projects: p. ej., “Team Members”
  2. Haga clic en Guardar

Paso 3: Configurar la visualización de la relación de unión

Ahora configura los objetos de origen para mostrar los registros vinculados directamente, omitiendo el objeto de unión intermedio.
  1. Vaya a Configuración → Modelo de datos
  2. Selecciona el primer objeto (p. ej., “People”)
  3. Encuentra el campo de relación que apunta al objeto de unión (p. ej., “Project Assignments”)
  4. Haz clic para editar el campo
  5. Activa “This is a relation to a Junction Object”
  6. Selecciona la Target relation (p. ej., “Project” — el campo en la unión que apunta al otro lado)
  7. Haga clic en Guardar

Resultado

Después de la configuración:
  • En un registro de Person, el campo “Project Assignments” muestra Projects directamente (no registros de asignación)
  • En un registro de Project, el campo “Team Members” muestra People directamente
El objeto de unión sigue existiendo y almacena las conexiones, pero la interfaz presenta una vista de muchos a muchos más limpia.

Ejemplo: People ↔ Projects

Aquí tienes una guía completa paso a paso:

Crear el objeto de unión

  • Nombre: Project Assignment
  • Descripción: “Vincula a las personas con los proyectos en los que trabajan”

Agregar relaciones

  1. People → Project Assignment
    • Tipo: One-to-Many
    • Campo en People: “Project Assignments”
    • Campo en Assignment: “Person”
  2. Projects → Project Assignment
    • Tipo: One-to-Many
    • Campo en Projects: “Team Members”
    • Campo en Assignment: “Project”

Configurar la visualización de la unión

  1. En el objeto People:
    • Edita el campo “Project Assignments”
    • Activa el interruptor de unión
    • Destino: “Project”
  2. En el objeto Projects:
    • Edita el campo “Team Members”
    • Activa el interruptor de unión
    • Destino: “Person”

Úsalo

  • Abre un registro de Person → Ve sus Projects directamente
  • Abre un registro de Project → Ve los miembros del equipo directamente
  • Crea nuevas conexiones desde cualquiera de los dos lados

Agregar datos adicionales a las conexiones

Como el objeto de unión es un objeto real, puedes agregar campos personalizados para almacenar información sobre la relación:
  • Rol: “Desarrollador”, “Diseñador”, “Gerente”
  • Fecha de inicio: Cuando se unieron al proyecto
  • Horas asignadas: Horas semanales en este proyecto
Para acceder a estos datos, navega directamente al objeto de unión o consúltalo mediante la API.

Limitaciones

  • Importación/Exportación CSV: No se admite importar relaciones de muchos a muchos directamente. En su lugar, importa registros al objeto de unión.
  • Filtros: Filtrar por relaciones de muchos a muchos puede tener opciones limitadas.

Relacionado