MAISON CODE .
/ Data · CDP · Reverse ETL · Measurement · Architecture

Le CDP Composable : Pourquoi votre entrepôt est la source de vérité

Arrêtez de payer au segment 100 000 €/an. Un guide technique de la pile Composable CDP : Snowflake, dbt et Hightouch (Reverse ETL).

AB
Alex B.
Le CDP Composable : Pourquoi votre entrepôt est la source de vérité

L’industrie des « Customer Data Platform » (CDP) est l’un des plus gros rackets du SaaS. Des outils tels que Segment, mParticle ou Salesforce CDP vous facturent en fonction des « utilisateurs suivis mensuellement » (MTU). Si un utilisateur visite votre site une fois, vous payez. Si vous avez 10 millions d’e-mails poussiéreux dans votre base de données datant de 2015, vous payez. Les factures des entreprises dépassent souvent 200 000 €/an rien que pour stocker les données que vous possédez déjà.

En 2025, les meilleures équipes d’ingénierie tuent le CDP Monolithique. Ils migrent vers le CDP Composable. La logique est simple : Votre entrepôt de données (Snowflake/BigQuery) est le CDP. C’est bon marché, évolutif et vous en êtes propriétaire. Vous avez juste besoin d’un canal pour déplacer les données hors de l’entrepôt vers vos outils marketing (Klaviyo/Meta). Ce canal est Reverse ETL (Hightouch).

Pourquoi Maison Code en parle

Chez Maison Code Paris, nous agissons comme la conscience architecturale de nos clients. Nous héritons souvent de stacks “modernes” construites sans compréhension fondamentale de l’échelle.

Nous abordons ce sujet car il représente un point de pivot critique dans la maturité de l’ingénierie. Une mise en œuvre correcte différencie un MVP fragile d’une plateforme résiliente de niveau entreprise.

1. L’architecture : segment de dégroupage

Le CDP monolithique fait trois choses :

  1. Collection d’événements : analytics.track()
  2. Résolution d’identité : Fusion de user_123 avec cookie_abc.
  3. Activation : Envoi d’audiences vers les publicités Facebook.

Le CDP Composable divise ceci :

  1. Collection : Rudderstack (Open Source) ou Snowplow.
  2. Stockage : Flocon de neige (stockage bon marché).
  3. Transformation : dbt (logique SQL).
  4. Activation : Hightouch (Le “ETL inversé”).
graph LR
    Sources du sous-graphe
        Boutique[Shopify] -->|Fivetran| Entrepôt
        Web[Événements Web] -->|Rudderstack| Entrepôt
    fin
    
    sous-graphique Entrepôt[Flocon de neige]
        Brut[Tables brutes] -->|dbt| Or[Tableau Client Or]
    fin
    
    Activation du sous-graphe
        Or -->|Hightouch| Facebook [Publicités Facebook]
        Or -->|Hightouch| E-mail[Klaviyo]
    fin

2. La puissance de SQL : résolution d’identité

Dans Segment, vous êtes coincé avec leur logique Identity Graph. Dans Snowflake, vous écrivez la logique en SQL (dbt). Vous disposez d’une flexibilité infinie.

Scénario : Vous souhaitez associer les « Achats dans la boutique hors ligne » à la « Navigation Web en ligne ». Segment a du mal à résoudre ce problème si l’e-mail ne correspond pas parfaitement. Dans dbt, vous pouvez écrire une logique de correspondance floue.

--models/gold/dim_users.sql
AVEC web_users COMME (
    SÉLECTIONNEZ l'e-mail DISTINCT, cookie_id FROM raw.web_events
),
pos_users COMME (
    SELECT email, téléphone, carte de fidélité FROM raw.pos_transactions
)
SÉLECTIONNER
    COALESCE(w.email, p.email) en tant que master_email,
    w.cookie_id,
    p.loyalty_card,
    -- Logique personnalisée : s'ils ont acheté en magasin, ils sont VIP
    CAS OÙ p.loyalty_card N'EST PAS NULL ALORS 'VIP' SINON 'Standard' FIN en tant que segment
DEPUIS web_users w
FULL OUTER JOIN pos_users p ON w.email = p.email

Vous disposez désormais d’une table « gold.dim_users » qui est la source unique de vérité pour l’ensemble de l’entreprise.

3. Activation : synchronisation avec Edge

Les outils marketing (Klaviyo) sont des bases de données stupides. Ils ont besoin que nous leur disions à qui envoyer un e-mail. Au lieu de créer un script python personnalisé snowflake_to_klaviyo.py (qui s’arrête chaque semaine), nous utilisons Hightouch. Hightouch interroge simplement votre Gold Table et mappe les champs.

Requête :

SELECT email, prénom, couleur_favorite
DE dim_users
OÙ segment = 'VIP' ET last_purchase_date < MAINTENANT() - INTERVALLE '90 JOURS'

Cartographie :

  • email -> Klaviyo email
  • favorite_color -> Klaviyo custom_properties.color

Hightouch l’exécute toutes les 15 minutes. Il gère les limites de débit, les tentatives et les modifications d’API.

4. Analyse opérationnelle : alertes Slack

Les CDP sont généralement « Marketing uniquement ». Mais le CDP Composable sert également l’ingénierie et les ventes. Nous pouvons utiliser Hightouch pour envoyer des données à Slack.

Cas d’utilisation : échecs de grande valeur Si un utilisateur avec « LTV > 5 000 € » obtient une erreur « Échec du paiement ». Flux standard : l’utilisateur voit une erreur. Feuilles. Nous perdons un VIP. Flux composable :

  1. modèles dbt failures_last_hour.
  2. Hightouch synchronise cela avec la chaîne Slack #vip-support.
  3. L’agent d’assistance voit : “Échec du paiement VIP Alex. Téléphone : 555-0199”.
  4. L’agent appelle Alex immédiatement. « Puis-je vous aider à finaliser la commande ? »

Il s’agit de l’activation des données. Il transforme une énorme base de données en revenus exploitables.

5. Confidentialité et gouvernance (RGPD)

Dans un CDP monolithique, supprimer un utilisateur est un cauchemar. Vous devez demander à Segment de le supprimer, puis espérer qu’il le propage. Dans Composable, vous supprimez la ligne dans Snowflake. Hightouch détecte la suppression (diff) et envoie automatiquement une demande « DELETE » à Facebook, Google et Klaviyo. Une seule requête applique le RGPD sur l’ensemble de votre pile.

6. L’apocalypse des cookies (ITP 2.5)

Apple (Safari) supprime les cookies côté client après 7 jours (ITP). Si un utilisateur visite lundi et revient mercredi prochain, Segment pense qu’il s’agit d’un nouvel utilisateur. Votre attribution est rompue. Le Suivi côté serveur résout ce problème. Parce que nous contrôlons le domaine (data.maisoncode.paris), nous pouvons paramétrer des cookies HttpOnly qui durent 2 ans. Rudderstack gère cela immédiatement. Cela récupère 20 % de l’attribution perdue pour les clients à fort trafic Apple (Mode/Luxe).

7. Algorithmes de résolution d’identité

Comment savez-vous que « user_123 » est « alex@gmail.com » ? Il existe deux stratégies :

  1. Déterministe : correspondance exacte. (E-mail = E-mail). précision 100%. taux de correspondance 40 %.
  2. Probabiliste : “Même IP + Même modèle d’appareil + Même emplacement”. précision 80%. taux de correspondance 90 %. Pour les CDP, nous préférons Déterministe. Nous ne voulons pas envoyer un e-mail à la mauvaise personne. Cependant, pour le Ciblage publicitaire, nous cochons Probabiliste. Ce n’est pas grave si 10 % des personnes voient la mauvaise annonce, si cela signifie doubler votre portée. Snowflake vous permet d’exécuter les deux graphiques simultanément.

8. L’équation des coûts

Comparons un client avec 500 000 MTU.

Segment (plan d’affaires) :

  • Protocole : Inclus
  • Personas : module complémentaire
  • Total : ~60 000 €/an.

Pile composable :

  • Rudderstack (Open Source) : 0 € (hébergé sur AWS).
  • Flocon de neige : 500 €/mois (Stockage + Calcul).
  • Hightouch : 800 €/mois.
  • Total : ~15 000€/an.

Économies : 75 %. De plus, vous êtes propriétaire des données. Si vous annulez Hightouch, vous disposez toujours de vos tables Snowflake. Si vous annulez Segment, vous perdez votre graphique.

7. Le mythe du « temps réel »

Les spécialistes du marketing adorent crier : « Nous avons besoin d’une personnalisation en temps réel ! » Les ingénieurs doivent demander : « Vraiment ? Scénario A : L’utilisateur abandonne son panier.

  • Besoin : Envoyez un e-mail dans 1 heure.
  • Outil : Entrepôt (Batch). Suffisant. Scénario B : l’utilisateur clique sur “Chaussures rouges”. Le héros de la page d’accueil devrait immédiatement passer à “Chaussures rouges”.
  • Besoin : < 200 ms de latence.
  • Outil : Edge Middleware (Vercel/Cloudflare). L’entrepôt est destiné aux données stratégiques (e-mails, publicités, analyses). The Edge est destiné aux Données tactiques (personnalisation de l’interface utilisateur). N’essayez pas de forcer Snowflake à effectuer des requêtes inférieures à la seconde. Ce n’est pas son rôle.

8. Le piège des coûts des analyses « gratuites »

Google Analytics 4 (GA4) est gratuit. Mais c’est échantillonné. Et l’exportation BigQuery peut coûter cher (0,05 € par Go interrogé). Mais comparé à Adobe Analytics (100 000 € et plus), c’est une bonne affaire. Le piège : stocker tout. Les ingénieurs ont tendance à enregistrer mouse_move, scroll_owned_10%, scroll_third_20%. Cela crée des « marais de données ». Des milliards de rangées de bruit. Règle : ne suivez un événement que si une question commerciale y est associée. « Si nous suivons la profondeur de défilement, quelle décision allons-nous modifier ? » Si la réponse est « Aucun », supprimez le code de suivi. Enregistrez les octets.

9. Conclusion

Les données sont la gravité. Plus vous mettez de données dans un SaaS propriétaire (Segment/Salesforce), plus il est difficile de les quitter. La base de données est la seule technologie qui a survécu 40 ans. Misez sur SQL. Misez sur l’entrepôt. Construisez des tuyaux, pas des silos.


Réduire les dépenses en données ?

Payez-vous pour des « MTU » qui ne sont pas convertis ?

Créer une pile composable. Découvrez Attribution SQL et Server-Side Tagging.

“Mais le segment est en temps réel. Snowflake est par lots.” Vrai. Les entrepôts de données ont une latence (chargement de données + construction de dbt). Généralement 15 à 30 minutes. Si vous avez besoin d’une personnalisation sous-seconde (par exemple, afficher une fenêtre contextuelle basée sur le clic qu’ils viennent de faire il y a 1 seconde), le CDP Composable est trop lent. Solution : utilisez la personnalisation Edge côté client (Edge Middleware) pour le chemin « Hot ». Utilisez Composable CDP pour le chemin “Cold” (Email, Annonces, Rétention).

8. Conclusion

Les données sont la gravité. Plus vous mettez de données dans un SaaS propriétaire (Segment/Salesforce), plus il est difficile de les quitter. La base de données est la seule technologie qui a survécu 40 ans. Misez sur SQL. Misez sur l’entrepôt. Construisez des tuyaux, pas des silos.

Réduire les dépenses en données ?

Payez-vous pour des « MTU » qui ne sont pas convertis ?

Créer une pile composable. Engagez nos Architectes.