Passer au contenu principal

Gestion des Exports - Colonnes Avancées et Formules

Vous pouvez structurer vos exports avec des formules qui vous permettent d'exporter des résultats sur-mesure en fonction de règles avancées.

Écrit par Cyril

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

{{ object.amount }} → affiche le montant

{% ... %}

Donner une instruction (une condition, un choix…). N'affiche rien par elle-même.

{% if ... %} ... {% endif %}

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

object.amount

Le montant du don

object.contact.firstname

Le prénom du donateur

object.contact.email

L'e-mail du donateur

object.payment_datetime

La date du paiement

object.campaign.code

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 : DupontDUPONT.

🚀 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

Société

Le donateur est un particulier

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 »

2

Sinon

1

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"

dateformat("d/m/Y")

09/05/2026

dateformat("Y-m-d")

2026-05-09

dateformat("Y-m-d H:i:s")

2026-05-09 14:30:00

dateformat("Y-m")

2026-05

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 }}`

33000

Formater un montant — pour forcer 2 décimales et le format français :

{{ "%.2f"|format(object.amount) }}

Exemple

Résultat

Montant = 50

50.00

Pour une virgule et le symbole € collé :

{{ ("%.2f"|format(object.amount)|replace('.', ',') ~ "€")|replace(' ', '') }}

Exemple

Résultat

Montant = 50

50,00€

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

utm_source = facebook

facebook

utm_source = absent

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

gl_campagne renseignée

La valeur du champ "gl_campagne"

gl_campagne absente

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

visa

Carte Bancaire

paypal

Paypal

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"

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

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 or ou |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 !


Avez-vous trouvé la réponse à votre question ?