Erreurs courantes avec les formules

Découvrez les erreurs courantes que vous pourriez rencontrer avec les formules dans Notion, et comment vous pouvez les résoudre. 🔨
Si vous n’avez pas accès à une base de données référencée, les formules ne pourront pas être calculées de manière fiable. En effet, les formules nécessitent un accès à la base de données source et ses configurations de propriétés.
Comment résoudre le problème
Assurez-vous d’avoir accès à toutes les pages et bases de données référencées dans la formule de votre bouton ou automatisation de base de données.
Contrairement aux propriétés de formule dans les bases de données, les formules dans les automatisations attendent un type de valeur spécifique en retour (par exemple : date, texte, nombre, personne). Sinon, l’automatisation ne parviendra pas à être enregistrée et exécutée correctement.
Comment résoudre le problème
Vérifiez que la formule renvoie le bon type de valeur. Par exemple, si vous écrivez une formule pour définir la valeur de la propriété Personne d’une page, la formule doit renvoyer un utilisateur ou une liste d’utilisateurs, et non une date. Alternativement, si vous évaluez une condition spécifique sur une propriété de type tableau (par exemple : sélection multiple), assurez-vous d’utiliser .includes
au lieu de ==
dans votre instruction if()
.
Les formules de Notion sont limitées à 15 niveaux d’imbrication. Chaque fois qu’une formule fait référence à une autre formule ou à une agrégation, elle ajoute un niveau d’imbrication. Cela s’applique même si la formule se trouve dans une autre base de données.
Lorsque cette limite est atteinte, Notion affiche un message d’erreur.
Comment résoudre le problème
Simplifiez votre configuration en regroupant les formules et agrégations superflues en moins de propriétés. Identifiez les formules aux fonctions similaires et essayez de les fusionner en une seule.
Si des variables personnalisées sont définies dans la même action d’automatisation, elles ne peuvent pas se référencer les unes les autres.
Par exemple, si vous définissez var1
et var2
dans la même action, var2
ne pourra pas utiliser var1
dans sa définition.
Comment résoudre le problème
Définissez chaque variable dans sa propre action distincte. Pour ce faire, créez la première variable, ajoutez une nouvelle action à votre automatisation et définissez la variable suivante séparément. Cela garantit que chaque variable est correctement reconnue.
À ce jour, les variables définies dans une automatisation ne peuvent pas être utilisées pour filtrer les pages dans les bases de données sur lesquelles vous souhaitez que l’automatisation agisse (par exemple : « Modifier les pages correspondant au filtre contenant la variable
»).
Comment résoudre le problème
Définissez une variable personnalisée comme
Cette page
en tapantPage de déclenchement
dans la zone de formule.Ajoutez une action
Modifier une page
et sélectionnez la variable personnalisée de l’étape 1 comme cible.
Lorsque vous écrivez une formule dans une automatisation, les propriétés de la base de données peuvent ne pas s’afficher automatiquement. Ce n’est pas un bug, vous devez utiliser une syntaxe spécifique.
Comment résoudre le problème
Pour faire référence aux propriétés de la base de données depuis la page de déclenchement, tapez Page de déclenchement.
Assurez-vous d’ajouter un .
à la fin. Cela révélera toutes les options de propriétés disponibles.
Lorsque vous travaillez avec des propriétés de relations, d’agrégation et de personne dans les formules, celles-ci renvoient une liste de pages ou de personnes. Pour référencer les propriétés d’une relation, vous devez définir le premier élément, sinon votre automatisation s’arrêtera. Vous pouvez également rencontrer ce problème lors de la création d’une formule qui utilise la fonction map pour une propriété de relation.
Comment résoudre le problème
Utilisez des fonctions comme .first()
ou .at(0)
pour obtenir le premier élément, ou parcourir la liste des pages avec des fonctions comme .map()
, .filter()
, .every()
, .some()
et .find()
.
Lorsque les formules s’exécutent sur une valeur vide (par exemple : date, personne, etc.), l’automatisation renverra une erreur et se mettra automatiquement en pause.
Comment résoudre le problème
Utilisez if
et empty()
pour vérifier si une valeur est présente avant d’y exécuter la fonction Personne ou Date.
Par exemple, si votre formule s’exécute sur une propriété Personne nommée « Propriétaire », créez l’instruction if suivante pour forcer une valeur : if(empty(Cette page.Personne.first()), « Aucune personne », Cette page.Personne.first().name())
. Cela garantit que même s’il n’y a pas de propriétaire, l’automatisation s’exécutera en toute sécurité.
Vous pouvez également configurer une vue qui filtre la valeur Date ou Personne en cours de définition et appliquer l’automatisation à cette vue.
Si votre formule ne fonctionne pas comme prévu, cela peut être dû à une erreur de syntaxe telle que des parenthèses manquantes, des opérateurs incorrects ou des fonctions non prises en charge. Pour une présentation complète de la syntaxe des formules, consultez cet article →