Activité de requête SFMC : créer et planifier dans Automation Studio
Créez une activité de requête SFMC dans Automation Studio : data extension cible, action de données, validation, planning et erreurs, avec exemple SQL.
Votre requête SQL est écrite, elle semble correcte, et il faut maintenant qu'elle tourne chaque matin sans que personne n'y touche. Dans Salesforce Marketing Cloud, c'est le rôle de l'activité de requête SFMC dans Automation Studio.
En deux mots : une activité de requête exécute une instruction SELECT, à la demande ou selon un planning, et écrit le résultat dans une data extension cible avec l'action Overwrite, Update ou Append. Vous créez d'abord la data extension cible, puis l'activité, vous la validez, et vous la placez dans une automation.
Ce guide détaille la création d'une activité de requête SFMC pas à pas, propose un exemple SQL complet et passe en revue les erreurs qui renvoient zéro ligne ou désactivent l'activité.
À quoi sert une activité de requête SFMC
Un SELECT enregistré qui alimente une data extension
Une activité de requête est une instruction SQL stockée. À chaque exécution, Marketing Cloud parcourt les data extensions et les data views référencées, puis écrit les lignes correspondantes dans la data extension cible.
L'instruction reste en lecture seule : SFMC n'autorise ni UPDATE ni DELETE dans ce contexte. Toute modification des données passe donc par la data extension cible et son action de données.
Quand choisir le SQL plutôt qu'un autre outil
Les data extensions filtrées suffisent pour une règle simple sur une seule table. Dès qu'il faut une jointure, une exclusion, un agrégat ou une fenêtre de dates glissante, le SQL dans une activité de requête est en général plus propre.
Si l'écriture du SQL est ce qui vous ralentit, vous pouvez générer du SQL SFMC à partir d'une demande en langage naturel et exécuter le résultat comme une activité de requête classique.
Les audiences destinées à Journey Builder suivent le même schéma, comme le montre notre guide sur la data extension source d'entrée de Journey Builder.
Créer une activité de requête SFMC pas à pas
Étape 1 : créer la data extension cible
Construisez la data extension cible avant l'activité, afin de maîtriser les noms de champs, les types, les longueurs et la clé primaire. Marketing Cloud associe les colonnes renvoyées par votre requête aux champs de cette data extension.
Donnez à chaque champ le type et la longueur dont il a réellement besoin. Un champ texte laissé à sa longueur par défaut est une source classique d'erreurs de troncature, et des nombres stockés en texte ralentissent les jointures.
Étape 2 : créer l'activité et écrire la requête
Dans Automation Studio, créez une automation et glissez l'activité SQL Query sur le canevas. Suivez ensuite ces étapes :
- Cliquez sur Choose, puis sur Create New Query Activity.
- Saisissez un nom, une clé externe et une description, puis choisissez le dossier d'enregistrement.
- Cliquez sur Next et écrivez votre SQL dans le canevas de requête.
- Cliquez de nouveau sur Next et sélectionnez la data extension cible.
- Choisissez l'action de données : Overwrite, Update ou Append.
- Enregistrez l'activité.
La liste des data extensions à côté du canevas permet de glisser les noms de tables et de champs, ce qui évite les fautes de frappe qui produiraient des résultats vides.
Étape 3 : valider la syntaxe, puis tester
Utilisez le bouton Validate Syntax avant d'enregistrer. Il vérifie que le SQL est correctement structuré et que les sources de données référencées existent.
En revanche, il ne détecte pas un nom de champ qui ne correspond pas à la cible. Une incohérence ne renvoie aucune erreur, simplement aucune donnée : comparez donc une à une les colonnes du SELECT et les champs de la cible.
Salesforce décrit le même parcours dans son module Trailhead, exécuter des requêtes SQL dans Automation Studio.
Exemple complet : les clients qui ont acheté dans les 90 derniers jours
Voici une activité de requête à adapter. Elle construit une audience d'acheteurs récents à partir d'une table clients et d'une table de commandes, avec des noms génériques à remplacer.
SELECT
c.SubscriberKey,
c.EmailAddress,
c.FirstName,
MAX(o.OrderDate) AS LastOrderDate
FROM Customers_Master c
INNER JOIN Orders o
ON o.SubscriberKey = c.SubscriberKey
WHERE o.OrderDate >= DATEADD(DAY, -90, GETDATE())
GROUP BY c.SubscriberKey, c.EmailAddress, c.FirstNameLigne par ligne, la requête fonctionne ainsi :
- Les quatre premières colonnes sélectionnent les champs à conserver, et l'alias donne un nom explicite à la date de dernière commande dans la cible.
- FROM Customers_Master, avec un alias court, est la table de base de l'audience.
- L'INNER JOIN ne garde que les clients ayant au moins une commande correspondante.
- La clause WHERE utilise DATEADD et GETDATE pour remonter de 90 jours à partir du moment où la requête s'exécute.
- GROUP BY renvoie une ligne par client, ce qui garantit l'unicité de la clé primaire.
Data extension cible : Recent_Buyers_90d, avec SubscriberKey comme clé primaire. Type de mise à jour : Overwrite, pour que les clients qui ne remplissent plus le critère disparaissent à l'exécution suivante.
Les dates réservent leurs propres pièges, comme l'heure du serveur et les fuseaux horaires. Notre guide sur les fonctions de date SQL de SFMC les détaille.
Enchaîner une seconde requête sur le résultat
Pour les audiences volumineuses, découpez le travail. Une première activité écrit une data extension intermédiaire, et une seconde la relit.
SELECT
SubscriberKey,
EmailAddress,
LastOrderDate
FROM Recent_Buyers_90d
WHERE EmailAddress IS NOT NULLData extension cible : Send_Audience_Buyers, clé primaire SubscriberKey, type de mise à jour Overwrite. Chaque étape reste courte, lisible et facile à déboguer.
Choisir entre Overwrite, Update et Append
L'action de données détermine ce qu'il advient des lignes déjà présentes dans la cible. Se tromper ici est la première cause d'une audience qui gonfle sans fin ou perd des lignes sans prévenir.
| Action de données | Effet | À utiliser pour |
|---|---|---|
| Overwrite | Remplace toutes les lignes de la cible par le nouveau résultat | Audiences glissantes qui doivent refléter la situation du jour |
| Update | Met à jour les lignes qui correspondent à la clé primaire et ajoute les nouvelles | Tables maîtres enrichies dans le temps |
| Append | Ajoute des lignes sans vérifier celles qui existent déjà | Journaux et historiques où les doublons sont acceptables |
Update exige une clé primaire sur la cible pour identifier les lignes correspondantes. Nous comparons les trois options en détail dans Overwrite, Update ou Append.
Intégrer l'activité de requête dans une automation
Une étape dédiée pour chaque requête
Placez chaque activité de requête dans sa propre étape, afin qu'aucune autre activité ne touche la même data extension au même moment. Un import et une requête qui écrivent dans la même cible, c'est la garantie d'un conflit.
Si une activité alimente la suivante, mettez-les dans des étapes séquentielles distinctes. Chaque étape se termine avant que la suivante ne démarre.
Planifier et décaler le lancement
Choisissez une fréquence qui correspond au rythme réel de changement de l'audience. Un passage quotidien suffit pour la plupart des audiences d'acheteurs ou d'engagement.
Si vous avez de nombreuses automations horaires, ne les lancez pas toutes à l'heure pile. Un décalage de 5 à 15 minutes limite l'embouteillage sur les ressources partagées.
Avant d'activer le planning, exécutez l'automation une fois et contrôlez la data extension cible. Vérifiez que le nombre de lignes est plausible et que les dates sont cohérentes.
Réponse rapide : la checklist de l'activité de requête SFMC
Gardez cette checklist sous la main pour votre prochaine mise en place.
- Créer la data extension cible avec les bons types, les bonnes longueurs et une clé primaire.
- Créer l'activité SQL Query avec un nom clair et une clé externe.
- Écrire un seul SELECT et nommer les colonnes au lieu d'utiliser l'étoile.
- Faire correspondre chaque colonne de sortie à un champ de la cible.
- Choisir Overwrite, Update ou Append en connaissance de cause.
- Lancer Validate Syntax, puis une exécution unique, et inspecter les lignes.
- Placer l'activité dans sa propre étape d'automation.
- La planifier en la décalant de l'heure pile.
Dépanner une activité de requête qui échoue
Où lire l'erreur
Dans Automation Studio, la vue d'ensemble affiche la progression des exécutions, et les échecs apparaissent en rouge. L'onglet Action Log contient le texte de l'erreur dans la colonne Detail.
Les causes habituelles sont des types de données incohérents, une data extension introuvable ou une requête manquante. Notre guide sur les erreurs SQL courantes dans SFMC et leurs solutions recense les coupables les plus fréquents.
Exécutions lentes et désactivation automatique
Si une requête dépasse régulièrement 30 minutes, optimisez-la ou découpez-la en étapes plus petites. Sélectionnez uniquement les champs utiles, filtrez sur des champs indexés ou sur la clé primaire quand c'est possible, et limitez la plage de dates.
Marketing Cloud désactive aussi une activité de requête après 24 échecs consécutifs : une requête cassée qui tourne chaque jour s'arrêtera donc d'elle-même au bout de trois semaines et demie environ. Corrigez les échecs tôt, et lisez pourquoi les requêtes SFMC expirent et comment y remédier pour le volet performance.
Questions fréquentes
Combien de temps une activité de requête SFMC peut-elle s'exécuter ?
Visez des exécutions bien inférieures à 30 minutes. Salesforce recommande d'optimiser ou de découper toute requête qui dépasse régulièrement ce seuil.
Pourquoi mon activité renvoie-t-elle zéro ligne sans erreur ?
Le plus souvent, un nom de colonne de la requête ne correspond à aucun champ de la data extension cible, ou le filtre de dates exclut tout. Validate Syntax ne signale ni l'un ni l'autre : vérifiez les noms et testez la logique du SELECT sur un petit échantillon.
Faut-il une clé primaire sur la data extension cible ?
Elle est indispensable pour l'action Update, car Marketing Cloud s'en sert pour identifier les lignes. Pour une audience en Overwrite, c'est tout de même une bonne pratique : elle garantit l'unicité et accélère les jointures ultérieures.
Une automation peut-elle contenir plusieurs activités de requête ?
Oui. Placez les requêtes dépendantes dans des étapes séquentielles distinctes, et ne regroupez dans une même étape que des requêtes indépendantes qui écrivent dans des cibles différentes.
Une activité de requête peut-elle modifier la data extension source ?
Non. L'instruction est un SELECT, et les résultats sont écrits uniquement dans la data extension cible que vous avez choisie.
Créez cette audience en quelques secondes avec QAiry
Les étapes de mise en place sont toujours les mêmes, mais c'est le SQL qui prend du temps. QAiry transforme une demande en langage naturel en SQL SFMC prêt pour la production et en data extension correspondante, installé comme une application dans votre propre Marketing Cloud.
Vous pouvez essayer QAiry gratuitement ou regarder une démo produit pour voir comment une requête comme celle-ci prend forme.

