Dans Salesforce Marketing Cloud, tout commence par vos données. Une Data Extension mal conçue se paie tôt ou tard : requêtes lentes, doublons d'envoi, personnalisation qui casse, journeys qui n'attribuent pas les bons contacts. À l'inverse, un modèle de données propre rend chaque campagne plus rapide à construire et plus fiable à exécuter. Dans ce guide, nous partageons sept patterns de conception éprouvés sur des projets SFMC en production, avec des exemples SQL et AMPscript directement réutilisables. L'objectif : vous donner une méthode claire pour structurer vos Data Extensions avant d'écrire votre premier e-mail.
1. Pourquoi la conception des Data Extensions détermine tout
Une Data Extension (DE) est une table relationnelle stockée dans Marketing Cloud. Contrairement aux anciennes listes, elle n'impose aucune limite de colonnes et sert à la fois de source d'envoi, de référentiel de personnalisation et de socle pour vos requêtes SQL dans Automation Studio. Chaque décision de schéma — type de champ, longueur, clé primaire, nullabilité — a un impact direct sur les performances et la qualité de vos envois.
La règle la plus importante : concevez votre modèle avant d'importer la moindre donnée. Modifier le type d'un champ ou une clé primaire sur une DE déjà peuplée est coûteux et parfois impossible sans recréer la table.
2. Sendable ou non-sendable : choisir le bon type
Une DE sendable peut recevoir un envoi ; elle doit être reliée à l'Abonné via un champ de relation (le plus souvent le Subscriber Key). Une DE non-sendable sert de table de référence, de log ou d'étape intermédiaire dans une automation.
Bonne pratique
Ne rendez « sendable » que les DE réellement destinées à l'envoi. Vos tables de lookup (catalogue produit, référentiel magasins, historique de commandes) doivent rester non-sendable. Cela évite les envois accidentels et clarifie l'intention de chaque table dans votre All Subscribers.
3. Clés primaires et déduplication
La clé primaire n'est pas un détail : elle garantit l'unicité et pilote le comportement des imports en mode Update/Add. Sans clé primaire, un import réinjecte des doublons ; avec une clé bien choisie, il met à jour l'existant.
Choisissez une clé stable et non réutilisée dans le temps. Un e-mail seul est rarement idéal (un contact peut changer d'adresse) ; préférez un identifiant CRM immuable, éventuellement combiné.
-- DE "Master_Subscribers" : SubscriberKey en clé primaire
SELECT
c.ContactId AS SubscriberKey,
c.Email AS EmailAddress,
c.FirstName,
c.OptInStatus,
c.LastModifiedDate
FROM Contacts_Source c
WHERE c.Email IS NOT NULL
AND c.OptInStatus = 'Subscribed'
4. Modéliser les relations entre Data Extensions
SFMC n'a pas de véritables jointures déclaratives entre DE, mais vous reconstruisez ces relations via SQL dans Automation Studio et via AMPscript à l'envoi. Le pattern classique : une DE « maître » d'abonnés, et des DE « satellites » reliées par le Subscriber Key.
Jointure en SQL (Query Activity)
SELECT
s.SubscriberKey,
s.EmailAddress,
o.LastOrderDate,
o.LastOrderAmount
FROM Master_Subscribers s
LEFT JOIN Orders_Rollup o
ON s.SubscriberKey = o.SubscriberKey
WHERE o.LastOrderDate >= DATEADD(day, -90, GETDATE())
Lookup à l'envoi en AMPscript
%%[
VAR @lastOrder, @amount
SET @lastOrder = Lookup("Orders_Rollup", "LastOrderDate", "SubscriberKey", _subscriberkey)
SET @amount = Lookup("Orders_Rollup", "LastOrderAmount", "SubscriberKey", _subscriberkey)
]%%
Votre dernière commande du %%=Format(@lastOrder,"dd/MM/yyyy")=%% : %%=@amount=%% €
5. Rétention des données et hygiène
Chaque DE peut appliquer une politique de rétention (Data Retention) qui supprime automatiquement les enregistrements — ou la table entière — après une période donnée. Activez-la sur vos DE temporaires : staging, logs d'automation, exports. Cela réduit votre empreinte de stockage et limite la conservation de données personnelles, un point clé pour votre conformité RGPD.
La qualité d'un programme SFMC ne dépend pas du nombre de Data Extensions, mais de la clarté de leurs relations et de la discipline de rétention. Un modèle simple, documenté et dédupliqué vaut mieux que dix tables improvisées.
6. Écrire des requêtes SQL performantes
Les Query Activities s'exécutent sur un moteur partagé : une requête mal filtrée ralentit toute votre automation. Trois réflexes utiles.
Filtrer tôt et sur des champs indexés
Appuyez vos WHERE et vos JOIN sur la clé primaire ou sur des champs courts et typés. Évitez les fonctions sur les colonnes filtrées, qui empêchent l'optimiseur d'utiliser l'index.
Limiter les colonnes retournées
-- À éviter : SELECT *
-- Préférez la sélection explicite des colonnes utiles
SELECT SubscriberKey, EmailAddress, LastOrderDate
FROM Master_Subscribers
WHERE OptInStatus = 'Subscribed'
Segmenter par étapes
Pour un calcul lourd, découpez en plusieurs Query Activities alimentant des DE intermédiaires non-sendable, plutôt qu'une seule requête monolithique. Vous gagnez en lisibilité, en performance et en facilité de débogage.
7. Nommage et gouvernance
Sur un compte qui grossit, la convention de nommage devient votre meilleure documentation. Adoptez un préfixe qui signale l'usage : SEND_ pour les DE d'envoi, REF_ pour les référentiels, STG_ pour le staging, LOG_ pour les journaux.
SEND_Newsletter_Weekly
REF_Product_Catalog
STG_Import_CRM_Daily
LOG_Automation_Errors
Rangez ensuite vos DE dans des dossiers alignés sur ces préfixes, et tenez un registre des clés primaires et des relations. Cette discipline évite les tables orphelines et facilite l'onboarding de nouveaux membres d'équipe.
À retenir
1. Concevez avant d'importer. Le schéma, les types et la clé primaire doivent être figés avant la première donnée, car les changer ensuite est coûteux.
2. Distinguez sendable et non-sendable. Réservez le statut sendable aux tables réellement destinées à l'envoi ; gardez vos référentiels en non-sendable.
3. Choisissez une clé primaire stable. Un identifiant CRM immuable déduplique proprement et fiabilise les imports en Update/Add.
4. Reconstruisez les relations en SQL et AMPscript. Une DE maître, des satellites reliés par le Subscriber Key, et des lookups ciblés à l'envoi.
5. Appliquez rétention et nommage. Data Retention sur les tables temporaires et préfixes explicites : votre modèle reste propre et conforme dans la durée.
Vous souhaitez auditer ou refondre votre modèle de données Salesforce Marketing Cloud ? Contactez CGC-Agency pour un accompagnement expert et concret.
