Lorsque vous préparez l'export de vos données vers un CRM ou une base externe, chaque colonne de votre fichier peut être remplie de deux façons :
Colonne simple : vous choisissez directement une donnée dans une liste (le montant, l'e-mail du donateur, la date du paiement…).
Colonne avancée : vous écrivez une petite formule qui met en forme, combine ou choisit la donnée à afficher selon des règles.
Cet article explique comment fonctionnent ces formules, sans prérequis technique, puis liste les principales fonctions disponibles avec, à chaque fois, la formule à recopier, un exemple et le résultat obtenu.
ℹ️ Pour pouvoir utiliser les "colonnes avancées", il est nécessaire d'activer le mode "Mode avancé" pour le Dessin d'Export qui doit les utiliser dans l'onglet "Configuration".
📚 Les bases
Le principe : un « publipostage » automatique
Une formule fonctionne comme un publipostage.
Vous écrivez un modèle avec des « trous », et le système remplit chaque trou avec la vraie donnée de chaque don.
Exemple de formule :
{{ object.contact.firstname }}Pour un don de Marie, cette colonne affichera : Marie. Pour un don de Paul : Paul. Vous écrivez la formule une seule fois, elle s'applique à toutes les lignes de votre export.
Les deux balises à connaître
Il n'existe que deux « balises » à retenir :
Balise | À quoi elle sert | Exemple |
| Afficher une valeur |
|
| Donner une instruction (une condition, un choix…). N'affiche rien par elle-même. |
|
Règle simple : tout ce que vous voulez voir apparaître dans le fichier se met entre des crochets {{ }}. Le reste (les « si… alors… ») se met entre {% %}.
Les "tokens" : le nom des données
À l'intérieur des balises, on utilise des tokens : ce sont les noms des données disponibles. Ils commencent presque toujours par object. (object. désignant l'objet en cours d'export en fonction du dessin d'export sur lequel vous travaillez : le paiement, l'engagement…).
Quelques exemples :
Token | Donnée |
| Le montant du don |
| Le prénom du donateur |
| L'e-mail du donateur |
| La date du paiement |
| Le code de la campagne |
ℹ️ La liste complète des tokens disponibles est tenue à jour sur cette page Notion.
C'est votre dictionnaire de référence : commencez toujours par y trouver le nom exact de la donnée qui vous intéresse.
Les filtres : transformer une valeur
Un filtre modifie une valeur. On l'ajoute avec une barre verticale | juste après la donnée :
{{ object.contact.lastname|upper }}Ici, upper met le nom en majuscules : Dupont → DUPONT.
🚀 C'est tout ce qu'il faut comprendre pour démarrer : avec une colonne avancée, vous exportez une donnée (object.xxx), à laquelle vous appliquez appliquer un ou plusieurs filtres (|filtre), le tout dans une balise {{ }}.
🔬 Les principales fonctions, par catégorie
ℹ️ Si vous ne trouvez pas ci-dessous la formule qui vous intéresse, vous pouvez vous appuyer sur une IA (Claude, Gemini, etc.) en venant lui prompter votre besoin et en lui demandant de sortir le résultat en Django / Jinja.
Afin d'être pertinent, il lui faudra connaître les "tokens" (cf plus haut) que vous voulez exporter.
A. Formules de condition
Ces formules affichent une valeur ou une autre en fonction d'une situation.
Condition « si… sinon… »
{% if object.contact.is_company %}Société{% else %}Particulier{% endif %}Exemple | Résultat |
Le donateur est une entreprise |
|
Le donateur est un particulier |
|
Valeur de repli (« fallback ») — afficher une donnée, et si elle est vide, en afficher une autre. Le mot-clé est or :
{{ object.external_id or object.uuid }}Exemple | Résultat |
L'identifiant externe existe | l'identifiant externe |
L'identifiant externe est vide | l'identifiant unique (uuid) à la place |
Tester la présence d'un mot, pratique pour réagir à un tag de campagne ou à un code :
{% if "Adhesion" in object.campaign.tags_str %}2{% else %}1{% endif %}Exemple | Résultat |
La campagne a le tag « Adhesion » |
|
Sinon |
|
B. Formules de mise en forme
Ces formules ne changent pas la donnée, seulement la manière dont elle s'affiche.
Formater une date avec le filtre dateformat :
{{ object.payment_datetime|dateformat("d/m/Y") }}Format écrit | Résultat pour le "9 mai 2026" |
|
|
|
|
|
|
|
|
Mettre en forme un texte avec les filtres classiques :
Racine | Extension | Résultat |
`{{ object.contact.lastname | upper }}` | dupont |
`{{ object.contact.lastname | lower }}` | DUPONT |
`{{ object.contact.firstname | capitalize }}` | marie |
`{{ object.contact.city | title }}` | la rochelle |
`{{ object.contact.zip | trim }}` |
|
Formater un montant — pour forcer 2 décimales et le format français :
{{ "%.2f"|format(object.amount) }}Exemple | Résultat |
Montant = 50 |
|
Pour une virgule et le symbole € collé :
{{ ("%.2f"|format(object.amount)|replace('.', ',') ~ "€")|replace(' ', '') }}Exemple | Résultat |
Montant = 50 |
|
C. Formules d'accès sécurisé
Certaines données (les custom_data : UTM, champs sur-mesure d'un formulaire…) ne sont pas toujours présentes.
Pour les lire sans faire planter l'export pour cause de valeur inconnue quand elles sont absentes, on utilise le filtre dget.
Accès sécurisé avec dget :
{{ object.custom_data|dget("utm_source") }}Exemple | Résultat |
|
|
| vide (pas d'erreur) |
Accès sécurisé avec valeur par défaut — le 2ᵉ paramètre est affiché si la donnée n'existe pas :
{{ object.custom_data|dget("gl_campagne", "26-WEBNL") }}Exemple | Résultat |
| La valeur du champ "gl_campagne" |
| 26-WEBNL (la valeur par défaut) |
💡 À retenir : préférez toujours |dget("clé") plutôt que .get("clé"). C'est la méthode qui protège contre les erreurs sur les champs manquants.
D. Formules de correspondance
Le filtre mappingtable traduit une valeur grâce à une table de correspondance définie dans le paramétrage. Très utile pour convertir un mode de paiement RGIVE vers le code attendu par votre CRM.
{{ object.latest_order.method|mappingtable("moyens_de_paiement") }}Exemple (table « moyens_de_paiement ») | Résultat |
|
|
|
|
La table (moyens_de_paiement ici) doit exister dans le paramétrage de l'export. C'est elle qui contient la liste des correspondances « valeur d'origine → valeur cible ».
E. Assembler plusieurs éléments
Concaténer (coller plusieurs valeurs) avec le tilde ~ :
{{ object.contact.firstname ~ " " ~ object.contact.lastname }}Exemple | Résultat |
Les valeurs "Marie" / "Dupont" |
|
Combiner mise en forme et concaténation :
{{ object.contact.civility.short_form ~ " " ~ object.contact.firstname|capitalize ~ " " ~ object.contact.lastname|capitalize }}Exemple | Résultat |
M. / marie / dupont |
|
Enchaîner un accès sécurisé et un repli :
{{ object.custom_data|dget("reserved_code_marketing") or object.campaign.origin_code }}Exemple | Résultat |
Le code marketing existe | le code marketing |
Il est absent | le code origine de la campagne |
☝🏻 Bonnes pratiques et pièges à éviter
⚠️ Retapez les guillemets à la main. Après un copier-coller des formules ci-dessus, les guillemets peuvent devenir « typographiques » (" ") et ne plus être compris. Utilisez toujours les guillemets droits ".
Testez avant de déployer. Générez un petit export de contrôle pour vérifier le résultat de vos colonnes avant la mise en production.
Une donnée manquante n'est pas une erreur si vous utilisez
orou|dget(). Pensez-y dès qu'une donnée peut être vide (custom_data, identifiant externe…).Commencez toujours par le dictionnaire des tokens (page Notion « Champs RGIVE / Tokens ») pour trouver le nom exact de la donnée à afficher.
Si vous voulez tester le rendu de votre DE avant de le pousser via SFTP ou API, vous pouvez prévisualiser le résultat et vous assurer que les formules fonctionnent bien !

