ADA’S Group

Attio : relation many-to-many ou objet intermédiaire, comment choisir ?

Une relation many-to-many dit quelle cliente a acheté quel produit. Dès que vous voulez décrire chaque achat, il vous faut un objet intermédiaire. Trois questions pour savoir lequel choisir.

Dans Attio, vous construisez vous-même votre modèle de données. Vous partez des deux objets standards, les personnes et les entreprises, puis vous ajoutez des objets personnalisés qui correspondent à votre activité : des produits, des contrats, des événements. Chaque élément d'un objet est un record, par exemple une cliente ou un produit, et vous reliez ces records entre eux par des relations. Nous avons expliqué dans Attribut, liste ou objet custom dans Attio : comment choisir ? comment ranger une information qui décrit une personne ou une entreprise.

Il reste pourtant un cas plus délicat : celui où l'information ne décrit ni la cliente, ni le produit, mais ce qui s'est passé entre les deux. Une cliente a acheté un sweat, et vous voulez savoir quand, à quel prix et avec quoi dans le même panier. Cette information n'appartient à aucun des deux objets, et c'est là que la question se pose.

La réponse courte

Une relation many-to-many suffit tant que vous voulez seulement savoir quels records sont liés : quelle cliente a acheté quel produit. En revanche, dès que vous voulez décrire chaque lien (sa date, sa quantité, son contexte) ou enregistrer plusieurs fois le même lien entre les deux mêmes records, il vous faut un objet intermédiaire, relié aux deux objets, qui porte ces informations.

Qu'est-ce qu'un objet intermédiaire ?

Un objet intermédiaire est un objet qui n'existe que pour relier deux autres objets et pour décrire ce qui se passe entre eux. Il se distingue ainsi d'un objet comme une personne ou une entreprise, qui existe par lui-même.

Prenons une marque de vêtements. Ses clientes existent sans ses produits, et ses produits existent sans ses clientes. Une commande, au contraire, n'a de sens que parce qu'elle relie une cliente à un ou plusieurs produits. C'est elle qui porte la date d'achat, le montant, le contenu du panier. Et comme une même cliente peut acheter le même sweat deux fois, il y a deux commandes, donc deux records.

Ce principe ne dépend pas d'Attio. En modélisation de données, on parle d'entité associative ; dans une base SQL, de table de jonction. Attio vous laisse simplement le construire sans écrire une ligne de code.

Comment arrive-t-on, en général, à l'objet intermédiaire ?

Rarement du premier coup. La plupart des équipes y arrivent par étapes, parce que chaque solution finit par atteindre sa limite.

Au départ, la marque crée un attribut select « produit acheté » sur la personne. Cela fonctionne jusqu'au jour où une cliente achète un second produit : avec un select, la nouvelle valeur efface la précédente.

L'équipe passe donc au multi-select. Désormais, une cliente peut avoir plusieurs produits cochés. Cependant, chaque nouveau produit oblige à ajouter une option à la main, et les workflows deviennent pénibles : quand une option est cochée ou décochée, l'attribut porte plusieurs valeurs avant et plusieurs valeurs après, si bien qu'il devient difficile de déclencher une action sur un achat précis.

L'étape suivante consiste à créer un objet Produit, relié aux personnes par une relation many-to-many : une cliente achète plusieurs produits, et un produit est acheté par plusieurs clientes. Le catalogue vit alors dans son propre objet. Vous pouvez même connecter votre boutique en ligne pour que chaque nouveau produit crée automatiquement son record dans Attio.

Enfin, la marque veut savoir à quelle date le sweat a été acheté, avec quoi dans le même panier, et qui l'a ajouté au panier sans aller jusqu'au paiement. Or la relation many-to-many n'a aucun endroit où ranger ces informations. C'est à ce stade qu'il faut l'objet intermédiaire : la commande.

Comment savoir si une relation many-to-many vous suffit ?

Trois questions, à poser dans l'ordre.

  1. Un même record peut-il être lié à plusieurs valeurs ? Non : un attribut select suffit. Oui : passez à la question 2.
  2. Ces valeurs sont-elles peu nombreuses, stables, et sans workflow à déclencher dessus ? Oui : un multi-select fait l'affaire. Non : créez un objet pour ces valeurs (l'objet Produit), relié par une relation many-to-many, puis passez à la question 3.
  3. Voulez-vous décrire chaque lien, ou enregistrer plusieurs fois le même lien ? Non : la relation many-to-many suffit. Oui : créez un objet intermédiaire (l'objet Commande), relié aux deux objets, avec ses propres attributs.

Avant de créer un objet, vérifiez toutefois qu'il vous reste de la place. Les objets custom sont comptés dans Attio : jusqu'à 3 sur Free, 5 sur Plus, 12 sur Pro, illimités sur Enterprise, personnes et entreprises comprises (octobre 2026).

À quoi ressemble l'objet intermédiaire, une fois construit ?

Pour la marque de vêtements, l'objet Commande comporte :

  • une relation vers la personne qui a passé la commande ;
  • une relation vers les produits de la commande ;
  • ses propres attributs : la date, le montant, le statut (payée, abandonnée au panier) ;
  • un record par commande, si bien qu'un second achat du même sweat crée un second record au lieu d'écraser le premier.

Grâce à ce modèle, les questions de l'équipe deviennent des filtres : quelles clientes ont racheté dans les trois mois, quels produits partent ensemble, combien de paniers ont été abandonnés cette semaine.

Et si ces détails ne servent qu'une seule fois ?

Dans certains cas, vous voulez capturer ce qui se passe entre deux objets, sans avoir besoin de le garder pour des analyses futures. La liste est alors un bon joker.

Imaginons que la marque organise une soirée de lancement pour son sweat. Elle a déjà un objet Événement, relié aux personnes en many-to-many : elle saura toujours qui est venu. En revanche, les détails de l'organisation (qui s'est inscrit, qui est venu accompagné, qui relancer) ne lui serviront plus une fois la soirée passée. Ils peuvent donc vivre dans une liste « Soirée de lancement », avec ses attributs de liste, plutôt que dans un objet intermédiaire.

Gardez en tête une limite : dans Attio, une liste n'est rattachée qu'à un seul objet. Elle ne crée pas de relation entre deux objets, elle ajoute seulement des attributs aux records d'un objet le temps d'une action.

Un autre exemple : le transport dans une PME industrielle

Prenons maintenant une PME qui fabrique dans son usine et stocke dans son entrepôt. Elle veut suivre ses transports : quels produits partent, quand ils doivent partir et quand ils partent réellement, quand ils doivent arriver et quand ils arrivent, combien de temps a duré le trajet, et quel transporteur a été mandaté.

Ces informations n'appartiennent ni aux produits, ni à l'usine, ni à l'entrepôt. Elles décrivent le trajet qui les relie. L'entreprise crée donc un objet intermédiaire Transport, relié aux produits et aux deux lieux, avec ses dates prévues et réelles et son transporteur. Ce type de suivi vit souvent dans un logiciel de gestion d'entrepôt ; néanmoins, Attio est assez flexible pour le porter quand l'entreprise démarre.

Questions fréquentes

Une note sur le record ne suffit-elle pas pour suivre un achat ?

Une note se lit, mais elle ne se compte pas. Dès que vous voulez mesurer quelque chose, il vous faut un objet.

Quand le multi-select devient-il un problème ?

Quand vous ajoutez des options au fil du temps, ou quand vous voulez déclencher des workflows sur une valeur précise.

Liste ou objet intermédiaire ?

Une liste si l'information ne sert que le temps d'une action, un objet intermédiaire si vous voulez encore l'analyser ensuite. Voir Attribut, liste ou objet custom dans Attio : comment choisir ?

Comment créer les commandes sans saisie manuelle ?

Par un workflow ou une intégration qui crée un record à chaque commande passée dans votre boutique.

Une question sur votre modèle Attio ?

Vous hésitez entre une relation et un objet intermédiaire pour votre propre cas ? Appelez Amaury ou écrivez-lui directement : en dix minutes, il vous dit où ranger votre information. Par téléphone ou WhatsApp au +33 6 79 34 13 31 (WhatsApp), ou sur LinkedIn. Pour aller plus loin, le programme ADA's Experts pour Attio accompagne les équipes qui construisent leur Attio depuis zéro.

Réserver 15 minutes →