Tuto : Recevoir un email hebdomadaire avec mes tâches complétées de Notion

Contexte

Notion est un outil que j’utilise au quotidien, aussi bien pour prendre des notes en réunions que pour suivre toutes les tâches/actions que j’ai à effectuer par projet et pour mon équipe. Pourtant, et bien que l’utilisation de Notion me permet d’être hyper productif, mon utilisation actuelle de Notion génère pas mal de frustration. S’il est très facile dans Notion d’avoir une vision des tâches qu’il reste à réaliser, il me semble tout aussi important de mesurer le travail accompli pour rester motiver. C’est pourquoi j’ai décidé d’automatiser une email hebdomadaire récapitulant l’ensemble des tâches réalisées la semaine passée.

1. Mise à jour de ma base de données Notion

Pour ce faire, j’ai commencé par ajouter une nouvelle propriété à la base de données que j’utilise pour mes tâches. Cette nouvelle propriété est basée sur la formule suivante : si le statut de la tâche = ‘Complété’ alors ‘Date de complétion’ = mettre la même valeur que le champ ‘Date MAJ’ sinon laisser à vide.

if(prop("Statut") == "Completé", prop("Date MAJ"), fromTimestamp(toNumber("")))

2. Sélectionner le bon outil d’automatisation pour mon process (Zapier ou Make)

Mon premier choix s’est orienté vers Zapier car je l’utilise pour d’autres automatisation. Mais j’ai découvert que le module natif Notion dans Zapier (c’est la même chose pour Make) est loin d’être parfait. Par exemple :

  • Le module de Notion de Zapier n’a qu’un nombre limité de fonctions pour interagir avec Notion et je n’ai pas trouvé comment utiliser ces fonctions pour réaliser mon objectif

3. Connexion entre Make et Notion

L’API Notion

Notion met à disposition une documentation très claire de son API.

Test de l’API Notion via Postman

  1. Récupérer ses identifiants Notion (token). La première chose à faire est de générer ses identifiants Notion. Pour cela, il suffit d’aller dans la version web de Notion, puis dans “Settings and member” > “Integration” > “Develop your own integration”. Une fois la nouvelle intégration créée vous pouvez récupérer votre token.
  2. Trouver l’identifiant de la base de données Notion: Cet identifiant est contenu dans l’URL Notion de la page de votre base de données https://www.notion.so/YOUR_DATABASE_ID?v=eae568cd3eec41a59039203e67377c59
  3. Partager la base de données avec l’intégration créée à l’étape 1 : il suffit de cliquer sur le bouton “Share” en haut à droite de la page de votre base de données et d’autoriser votre intégration à cette base de données
  4. Paramétrer la requête Postman : L’URL pour interroger la base de données est : https://api.notion.com/v1/databases/YOUR_DATABASE_ID/query. C’est une requête POST (et non GET). Dans la section autorisation sélectionnez “Bearer token” et renseignez le token que Notion vous a donné à l’étape 1. Dans la partie Header il faudra renseigner les paramètres suivants : Notion-Version = 2021–08–16 et Content-Type = application/json
  5. Ajouter les filtres. Dans mon cas je ne souhaitais récupérer de ma base de données uniquement les tâches complétées de la semaine passée. C’est à cette étape que j’ai réalisé que mon champ calculé ‘Date de complétion’ n’était pas utile. En fait, filtrer sur un champ de type Formule n’est pas aussi simple que de filtrer sur un champ de type Date. Heureusement les filtres sur les champs de type Date sont très bien fait et me permettent de réaliser pleinement l’objectif que je m’étais fixé. Ci-dessous les différents filtres que j’ai passé dans le body de ma requête API :
{
"filter": {
"and": [
{
"property": "Last update date",
"last_edited_time": {
"past_week": {}
}},
{
"property":"Status",
"select": {
"equals": "Completé" }}]}}

Paramétrer le call HTTP dans Make

Paramétrer le call HTTP dans Make est assez simple une fois que le test a été fait dans Postman. Néanmoins j’ai rencontré un léger contre temps dans cette partie. Lorsque je copiais et collais le body (la partie avec les filtres) de Postman dans le module HTTP de Make and gardant le format JSON avec les espaces et les tabulations, la requête me renvoyait une erreur. J’ai donc supprimé tous ces espaces et ces tabulations et le call a fonctionné sans souci.

4. Récupérer les données de l’API

Via du code (lecture optionnelle)

import pandas as pdnull = None
false = False
results = ""
my_json_df = {{2.data}}df = pd.DataFrame(my_json_df)

for attr in df['results']:
results = attr['properties']['Projects']['title'][0]['plain_text'] + ", " + results
result = {'data': results}
Flux Make — Option avec code
  • Ce n’est pas une solution no-code
  • Le formatage de la réponse n’est pas flexible

La solution no-code (option retenue)

Evidemment Make sait par lui même gérer plusieurs noeuds de données renvoyés par une API. Il existe un module natif appelé ‘Iterator’ qui permet d’appeler chaque noeud les uns à la suite des autres.

  1. Ajouter le module “Iterator” et sélectionner le tableau (array) sur lequel vous voulez itérer
  2. Dans mon cas je voulais itérer sur les noms de mes tâches et les combiner ensemble en les séparant par “</br>”. De cette façon les tâches apparaitront dans mon email les uns sous les autres.
Flux Make — L’option no code

5. Paramétrer l’envoi automatique de l’email

Connecter son compte gmail à Make est assez facile bien que long. Il suffit de suivre les différentes étapes décrites ici : https://www.integromat.com/en/help/app/google-email

Conclusion

Ce projet a été une première expérience très intéressante autour des possibilités qu’offre le no-code. J’ai pu tirer de cette expérience des apprentissages pérennes et utiles comme l’utilisation de l’API de Notion ( ouvrant la porte à une kyrielle d’automatisations) ou l’utilisation du module HTTP de Make.

--

--

I share my journey about improving productivity, mastering Notion, understanding cryptos and building ideas and business.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexandre Dubois

I share my journey about improving productivity, mastering Notion, understanding cryptos and building ideas and business.