#8 - Les formules 2.0 n'auront plus de secret pour toi.
lets, ifs, length, map, filter,... je te montre pas à pas comment créer une formule avec toutes ces fonctions.
Hello, c’est Riri 👋
Tout d’abord, bienvenue à tous les nouveaux abonnés depuis la dernière édition !
Vous êtes déjà 850 inscrits à cette newsletter 😱 (c’est 400 de plus que lors de la dernière édition).
Ma dernière édition remonte au 16 août alors que je tenais un rythme bi-mensuel 🙈 je n’ai pas beaucoup d’excuses mais je t’explique un peu plus bas pourquoi il m’a fallu tant de temps pour te l’écrire.
Bref, parlons peu mais parlons bien.
Au programme aujourd’hui :
Récap sur les nouvelles fonctionnalités
Un cas d’usage d’un de mes clients sur les formules 2.0
Temps de lecture : 17 min ⏰
Récap sur les nouvelles fonctionnalités
Ces nouvelles fonctionnalités sont la raison pour laquelle je n’ai pas envoyé de newsletter depuis la mi-août. Je me questionnais sur la manière dont j’allais pouvoir te délivrer de la valeur sans faire une newsletter de 4km
(spoiler : cette newsletter fera quand même 4km).
Un petit retour sur les 2 plus grosses releases de ces dernières semaines :
1. Les automatisations
Il est maintenant possible de faire des automatisations de bases de données : exécuter une séquence d’action chaque fois qu’il y a un changement spécifique dans la base de données.
C’est ce petit menu là. Je vais pas m’étaler là-dessus aujourd’hui.
J’attends avec impatience que la fonctionnalité évolue davantage, même si, je te l’accorde il y a déjà plein de possibilités en empruntant quelques contournements.
2. L’éditeur de formules 2.0
Ça, c’est probablement la plus grosse release de Notion depuis un certain nombre d’années. Notion propose un nouvel éditeur de formules avec un nouveau champ des possibilités pour gagner en productivité.
J’ai d’ailleurs fait un carousel à ce sujet pour montrer quelques fonctionnalités clés.
Je ne vais pas te le cacher : les formules, c’est technique.
Mais je suis convaincue que n’importe qui peut comprendre comment s’en sortir. Avec un peu de conviction.
Je ne suis pas dev, je n’ai aucune connaissance particulière en code, mais j’ai testé, j’ai essayé, je me suis renseigné, j’ai creusé, je me suis parfois arraché les cheveux sur des problèmes complexes mais au final, j’ai toujours trouvé la solution.
Si tu arrives à écrire une formule qui reproduit le comportement que tu souhaites, c’est le principal ! Fait > Parfait !
J’ai longuement hésité à faire une newsletter pour expliquer toutes les fonctionnalités de ce nouvel éditeur mais je ne suis pas certaine que ça te rende service.
J’ai donc décidé de te partager le cas d’un client pour qui j’ai utilisé ce nouvel éditeur de formules 2.0 pour que tu puisses comprendre concrètement ce qu’on peut faire avec.
C’est parti 👇
Un cas d’usage sur les formules 2.0.
Je vais essayer de la faire simple.
Mais si tu veux comprendre comment écrire des formules, il va falloir t’accrocher un peu 💪
1. Contexte
Mon client est une des plus grandes entreprises publiques en Belgique. Plus particulièrement, j’accompagne une cellule d’innovation de 10 personnes au sein de cette entreprise.
Cette équipe d’innovation réalise des projets pour les différentes Business Units de l’entreprise et souhaitait construire un système pour faire un meilleur suivi de ces différents projets.
L’idée de ces projets est de tester des solutions innovantes pour les consommateurs et si le test est concluant, alors le projet est industrialisé et déployé (un peu le concept d’un Proof of Concept).
Chaque projet respecte un processus en 4 phases :
Exploration
Définition
Expérimentation
Délibération
À chaque fin de phase, un document doit être produit par la cellule d’innovation et être validé par le client (la BU de l’entreprise) pour pouvoir passer à la phase suivante.
À chaque phase, le projet peut être stoppé s’il s’avère qu’il n’est pas faisable, viable, ou qu’il ne correspond pas à la stratégie de l’entreprise.
2. Les besoins
Première étape dans la construction d’une solution sur Notion : déterminer les besoins.
Voici les besoins de mon client :
Avoir une gestion de projet classique (tâches, réunions, etc.)
Avoir un template de document à remplir pour chacune de ces phases
Pouvoir donner un statut à ces documents (accepté, rejeté, etc.)
Pouvoir mettre à jour automatiquement le statut du projet en fonction de l’évolution du statut des documents
Avoir un dashboard complet pour monitorer tout ça de près
3. Les bases de données
Deuxième étape : créer les bases de données.
N’oublie pas : stocke toutes tes bases de données au même endroit, sur une page appelée “Base de données” (comme expliqué dans cette édition de ma NL)
Les voici :
La base “Projects” est reliée à toutes les autres.
4. Les templates de bases de données
Le template de la base “Projects”.
Un template de base de données sert à avoir une structure prédéfinie pour chaque élément de la base de donnée.
En plus simple : lorsqu’on crée un projet et qu’on y applique le template créé, on retrouve une structure standard.
Les templates prennent d’autant plus leur sens lorsqu’il y a des bases de données liées.
Dans ce cas simple, lorsque j’ouvre le projet, on peut voir :
les tâches liées au projet
les réunions liées au projet
les documents liés au projet
Lorsqu’on crée une tâche à l’intérieur du projet, elle est automatiquement liée au projet.
Comment faire ça ?
Édite ton template
Tape “/lié” et clique sur “Vue liée de base de données”
Choisis la bonne source (ex: Tasks)
Filtre la base sur la propriété relation concernée (ex: Projects)
Filtre sur le nom du template (la première ligne de la liste)
Tadam
Le template de la base “Notes & docs”.
Le client souhaitait également un template pour les documents à remplir à chaque fin de phase.
Le contenu de ces templates est très simple, il s’agit de texte, de callout, … les choses basiques.
5. Mettre à jour automatiquement le statut en fonction du statut des documents
Voici ce que mon client voulait accomplir :
S’il n’y a pas encore de document de type “Deliverable” (c’est-à-dire les 4 documents correspondant aux 4 phases), c’est que le projet n’a pas commencé (”Not started”)
Si il y a une phase qui a été rejetée, c’est-à-dire si un document a été mis sous le statut “Rejected”, alors le projet est terminé (”Project killed”) et on aimerait préciser à quelle phase le projet s’est arrêté.
Si le document de la phase “Deliberation” a été validé (”validated”), alors le projet est terminé (“Project finished”)
Si aucune de ces situations ne correspond, c’est que le projet est en cours “In progress”.
Voici la formule permettant de faire ça :
Elle n’est pas si compliquée que ça mais elle aborde plein de fonctions intéressantes.
Allons-y 👇
La définition des variables
Afin d’éviter d’avoir une formule à rallonge, on utilise la fonction lets qui permet de définir des variables. L’idée est de “cacher” une expression derrière un mot simple et compréhensible.
On a déterminé 3 variables :
phaseDocs
rejectedPhase
validatedPhase
Grâce à ce nouvel éditeur de formule, nous pouvons aller chercher des données d’autres bases de données qui sont liées à celle dans laquelle nous sommes.
Ici, on crée une formule dans la base “Project”, et on va chercher des infos dans la base de données “Notes & Docs” dans laquelle il y a les documents qui seront remplis à chaque fin de phase.
Lorsque tu vois “Notes & Docs” sur un fond gris, c’est précisément lorsque l’on va chercher des infos dans cette base de donnée. Tu peux accéder à ceci tout simplement via le panneau de gauche dans l’éditeur de formule.
Variable 1 : phaseDocs
On va simplement rechercher toutes les entrées de la base de données “Notes & Docs”, puis on filtre (.filter) pour ne garder seulement les documents de type “Deliverable” (car dans un projet il y a d’autres documents qui ne correspondent pas aux phases du projet).
Ce que cette variable nous retourne est tout simplement la liste de tous les documents de type Deliverable qui sont liés au projet en question.
Variable 2 : rejectedPhase
Dans cette variable, on réutilise la première variable. On repart donc de cette liste, mais cette fois-ci on filtre encore en ne gardant que les documents qui ont comme statut “Rejected”.
On obtient également la liste des documents qui ont ce statut “Rejected” (dans le process de mon client, il n’y a toujours qu’un document qui peut être “rejected”, car lorsque c’est le cas, le projet s’arrête).
Variable 3 : validatedPhase
Idem que pour la variable 2, sauf qu’ici on ne garde que les documents qui ont un statut “Validated”.
Alright ! Ces 3 variables simplifieront largement la suite de la formule.
La formule ifs
La suite de la formule n’est autre qu’une formule if !
Sauf qu’elle est ultra simplifiée comparé à l’ancien éditeur de formule puisque ce nouvel éditeur 2.0 nous permet de faire des formules ifs avec plusieurs conditions !
La structure de la formule est la suivante :
ifs(condition 1, résultat 1, condition 2, résultat 2, condition 3, résultat 3, résultat false) et ainsi de suite.
On utilise le saut de ligne (aussi nouveau dans l’éditeur 2.0) pour séparer chacun des éléments.
Condition 1 :
Ce que ça signifie : si il n’y a pas de document de type “Deliverable”, alors le projet est “Not started”.
On décortique :
Rappelle-toi, la variable phaseDocs nous renvoie la liste des documents qui sont de type Deliverable.
La fonction “length” qu’on appelle grâce à la dot notation (en rajoutant un point après la variable), permet de compter le nombre d’éléments dans cette liste.
Ce qu’on demande ici, c’est que si la longueur de cette liste est 0, c’est-à-dire s’il n’a trouvé aucun document de type deliverable lié à ce projet, c’est que le projet n’est pas commencé !
On lui demande donc d’écrire le résultat “➡️ Not started”.
Condition 2 :
Ce que ça signifie : si il y a un document qui a le statut “rejected”, alors le projet a été “killed”, et on précise à quelle phase il a été tué.
On décortique :
La condition teste que le résultat de la liste rejectedPhase n’est pas vide (c’est le point d’exclamation devant le “empty” qui permet de faire la négation).
S’il est vrai que cette liste n’est pas vide, alors on définit le statut du projet comme “🔴 Project killed”
Car on veut plus de précision, on rajoute la phase à laquelle le projet a été tué. Comme dans le processus du client il n’y a toujours qu’un seul document “rejeté”, on repart de la liste de ce document rejeté (rejectedPhase) et on va rechercher le nom de la phase de ce document. C’est la fonction map qui nous permet de faire ça.
Les “+” permettent de concaténer le texte avec le résultat de ce qui est demandé.
Condition 3 :
Ce que ça signifie : si dans la liste des documents validés il y en a un qui a la phase “Deliberation”, alors c’est que le projet est terminé.
On décortique :
On reprend la liste de documents qui ont le statut “Validated” et on recherche le nom de la phase de chacun de ces documents (grâce à la fonction map).
Et on regarde si dans ces noms de phase, il y en a un qui inclut le mot “Deliberation” (c’est la fonction includes qui permet de faire ça).
Si oui, le projet est fini ! “Project finished”.
Condition “false” :
Dans une formule if, les conditions sont toujours testées les unes après les autres, dans l’ordre où elles ont été écrites.
Il faut donc définir une valeur dans le cas où aucune des conditions n’a été respectée.
Dans notre cas, si aucune des conditions n’a été respectée, c’est que le projet est “🟠 In progress”.
Si malgré tout tu te sens perdu.e et que tu as besoin d’aide pour construire un espace Notion pour toi ou ton équipe, c’est mon métier ⚡️
Un tableau de bord pour visualiser tout ça
Mon client voulait un tableau de bord simple mais efficace, et qui puisse être partagé avec son supérieur hiérarchique.
Pour cela, on utilise tout simplement des vues liées de la base de données “Projects”.
Pour chaque vue, on choisit :
Une disposition
Un filtre
Un trie
Les propriétés affichées
Comment on choisit ça ? En écoutant les besoins des utilisateurs !
Tout simplement.
Ça y est, nous sommes arrivés à la fin de cette newsletter (en tout cas moi, toi je ne sais pas si tu es arrivé jusqu’en bas…).
J’espère sincèrement que cette édition t’auras apporté de la valeur et que tu comprendras mieux ce qu’il est possible de faire avec les formules 2.0.
Encore une fois, c’est normal de ne pas gérer ça du premier coup. Moi même, je m’améliore encore chaque jour avec les formules 2.0.
Si tu as besoin d’aide, n’hésite pas non plus à faire appel à la communauté ! Il y a bien toujours quelqu’un pour répondre à une question.
✨ Si cette édition t’a plue, n’hésite pas à :
t’abonner si ce n’est pas déjà fait
la partager à quelqu’un
me suivre sur LinkedIn pour voir encore plus de contenu
Comment dire, l'attente valait largement le coup.
Newsletter canonissime, surtout avec un sujet comme les formules. Le cas d'usage est top.
T'as mis la dose Riri !