Alimenter une base de données Notion depuis Apple Shortcuts

Alimenter une base de données Notion depuis Apple Shortcuts

Pour améliorer mon workflow de blogging (j'y reviendrai plus en détail prochainement), je souhaitais créer des entrées dans ma base de données Notion dans laquelle je gère mes d'idées d'articles. J'avais trouvé sur iOS comment le faire en natif, Notion apparaissant dans la liste des apps disponibles dans l'application Apple Raccourcis/Shortcuts. La fonction disponible est très basique : elle permet de créer une nouvelle entrée dans une base de données en lui indiquant le titre et le contenu. Elle ne permet pas d'alimenter les autres champs de la base.

J'ai donc cherché sur le net et trouvé différentes sources qui m'ont éclairé sur la façon de le faire en utilisant l'API de Notion. Je savais que l'on pouvait appeler des APIs depuis Shortcuts mais mes compétences sur l'application d'Apple se limitent à quelques notions ( 🤣 vous l'avez ? ). Après avoir lu ces sources et fait quelques tests, j'avais avancé mais butais toujours sur la compréhension du truc :

  • Notion Developers Guide : on commence par la base indispensable, la documentation officielle de Notion sur l'API, la structure des données et des exemples de code. Je dois signaler que cette documentation est un modèle du genre, vraiment claire et complète. Hélas dans mon cas, elle n'est pas suffisante, car Apple Shortcuts est plutôt particulier dans son approche et sa façon de travailler avec les APIs.
  • Quickly save selected text (in all apps) to Notion in two clicks : j'ai presque réussi à le faire fonctionner sur ma base de données mais la manipulation des Dictionnaires dans Shortcuts est tout sauf intuitive et j'ai fini par abandonner.
  • Fill a Notion database via iOS home screen shortcuts through the notion API : bien plus didactique et apporte surtout l'idée qu'on peut utiliser du JSON plutôt que les Dictionnaires pour envoyer les données à l'API. Bien plus lisible et maintenable.

Et puis j'ai eu un déclic. YouTube ! Comment se fait-il que je n'eusse pas commencé par cela. C'est pourtant mon réflexe quand je cherche ce type d'information technique, un bon vieux tuto détaillé. Première recherche, première vidéo et c'était la bonne : THIS is how I capture ALL my thoughts using Apple Shortcuts and Notion de Vikash Analytics. Une autre leçon : ne pas toujours se fier au nombre d'abonnés, c'est même sa toute première vidéo.

En résumé, il faut juste 3 étapes dans Shortcuts :

  • Définir un Texteavec le JSON décrivant les données à mettre à jour.
  • Créer un élément urlqui contient l'url d'appel de l'API Notion à savoir https://api.notion.com/v1/pages
  • Créer un élément Obtenir le contenu de l'urlet définir les options suivantes. Remarque : sur la copie d'écran n'apparaît pas en face de la mention Fichier: la sélection qui est faite par le menu déroulant de la variable contenant le JSON (variable Json dans mon cas).

Voici pour exemple le contenu du JSON que j'ai établi pour créer une entrée dans ma base de données des contenus. Je mets à jour 4 champs :

{
  "parent": {
    "type": "database_id",
    "database_id": "ID_DE_LA_BASE_DE_DONNEES"
  },
  "properties": {
    "Contenu": {
      "type": "title",
      "title": [
        {
          "type": "text",
          "text": {
            "content": "VARIABLE1_A_ENVOYER"
          }
        }
      ]
    },
    "ID": {
      "type": "number",
      "number": VARIABLE2_A_ENVOYER
    },
    "Status": {
      "type": "select",
      "select": {
        "name": "Idea"
      }
    },
    "Canal": {
      "type": "multi_select",
      "multi_select": [
          {
            "name": "blog"
          },
          {
            "name": "YouTube"
          }
        ]
    }
  }
}
  • Le champ Contenu est le champ clé de ma base de données (celui qui s'appelle par défaut Nom lorsque vous créez une nouvelle base de données). Comme vous le voyez, son type particulier tite nécessite une syntaxe spécifique.
  • Le champ ID qui est un nombre.
  • Le champ Status est un champ de type Sélection unique.
  • Le champ Canal est un champ de type Sélection multiple.

Et ça marche !