Notion-Lydia : le template ultime pour une gestion automatisée de votre budget de couple

2 février 2023 (il y a 1 ans)

background image

Gérer son budget en couple ou en colocation peut être compliqué. Ma copine et moi avons choisi Lydia Duo pour avoir un compte commun avec deux cartes liées, mais nous nous sommes vite rendu compte que le suivi de nos dépenses n'était pas facile, notamment la ventilation des dépenses par mois et par thème. J'ai donc cherché une solution pour avoir une vision claire de nos dépenses et j'ai décidé de créer un modèle automatisé en utilisant Notion. En effet, je pense qu'avoir une compréhension des dépenses (en solo ou en couple) est la première pierre d'une gestion financière saine et augmente la propension à épargner. A travers cet article, j'explique donc pas à pas comment j'ai créé et construit ce template afin d'avoir une meilleure compréhension des dépenses communes. Vous pourrez en profiter en le téléchargeant à la fin de la note et l'utiliser pour gérer vos finances personnelles.

Table des matières

  1. Collecter et stocker les informations de dépenses
  2. Agencer les données collectées avec soin
  3. Centraliser automatiquement les données sur Notion
  4. Le mot de la fin

Collecter et stocker les informations de dépenses

Pour commencer à construire ce template Notion, nous devons collecter et enregistrer les informations de débit que nous avons effectuées via les cartes Lydia Duo. Malheureusement, il n'y a actuellement aucune API Lydia publique qui nous permet de récupérer ces informations. Nous devrons donc trouver une autre méthode. J'ai choisi d'utiliser les confirmations de paiement que je reçois par email chaque fois qu'une dépense est effectuée sur les deux cartes. Réceptionnant ces informations via une adresse email Gmail, je peux collecter les informations à l'aide de App Script et les stocker dans une base de données Google Sheets.

function lydiaEmails() { var ss = SpreadsheetApp.getActive().getSheetByName("Lydia"); // name of g-sheet tab var label = GmailApp.getUserLabelByName("Lydia"); // name of gmail label var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); for (var j = 0; j < messages.length; j++) { var msg = messages[j].getPlainBody(); var sub = messages[j].getSubject(); var dat = messages[j].getDate(); var test = messages[j].getFrom(); ss.appendRow(["", dat, "", test, msg, sub]) } threads[i].removeLabel(label); threads[i].moveToTrash(); // each email will be deleted } }

Le code ci-dessus vous montre comment collecter les informations des emails liées aux débits de votre carte Lydia Duo en utilisant Google Sheet. Pour une gestion simplifiée, je vous recommande d'ajouter manuellement une étiquette "Lydia" à tous les emails associés aux débits des cartes Lydia. Ainsi, vous pourrez facilement les intégrer dans l'onglet "Lydia" de Google Sheet.

Agencer les données collectées avec soin

Le but de la collecte des données des emails est de les organiser de manière utile et simplifiée. Nous mettons les informations brutes dans des tableaux sur Google Sheets. Désormais, pour trouver des détails importants, comme le prix et la thématique des dépenses, nous utilisons une fonction appelée =regexextract() qui nous aide à extraire des informations spécifiques des données brutes et créer des colonnes spécifiques. Les formules sur Google Sheets ci-dessous nous montrent comment isoler les informations voulues.

=arrayformula(if(F2:F="";"";iferror(iferror(iferror(iferror(iferror(value(REGEXEXTRACT(F2:F; "(.+)€"))*-1;value(REGEXEXTRACT(E2:E; "€(.+)"))*1);value(REGEXEXTRACT(SUBSTITUTE(F2:F; "."; ","); "€(.+) to"))*1);value(REGEXEXTRACT(SUBSTITUTE(F2:F; "."; ","); "€(.+) to"))*1);value(REGEXEXTRACT(SUBSTITUTE(F2:F; "."; ","); "€(.+)"))*1);ifna(IFNA(ifna(value(REGEXEXTRACT(F2:E; "de(.+)"))*1))))))

Pour isoler les informations de prix

=arrayformula(if(F2:F="";"";IF(REGEXMATCH(F2:F;"CARREFOUR|SUSHI|FENG|Sushi|Picard|MONOPRIX|PICARD|Intermarche|Carrefour|CAKE|Franprix|EAT|mcdo|INTERMARCHE|Good To Go|Cook|Meunier"); "Food"; IF(REGEXMATCH(F2:F;"EDF");"Energie";IF(REGEXMATCH(F2:F;"FREE|Free");"Internet";IF(REGEXMATCH(F2:F;"Gerbe|Emmaus|Brico");"Maison";"Autre"))))))

Pour isoler les informations sur la thématique de dépenses

Centraliser automatiquement les données sur Notion

Notion accueille désormais les informations sur les paiements grâce à une automatisation simplifiée. En effet, les données collectées sur Google Sheets sont utilisées pour alimenter une base de données sur Notion et enregistrer chaque dépense individuellement. Un script est utilisé pour collecter les informations du feuillet de calcul et les envoyer correctement dans Notion. Ci-dessous le code qui permet de le faire. J'utilise ici Google App Script et l'API de Notion pour interconnecter les deux plateformes.

function addVariableId() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var columnI = 9; var columnH = 8; var columnF = 6; var columnG = 7; var startRow = 3; var columnB = 2; var columnA = 1; for (var i = startRow; i <= lastRow; i++) { if (sheet.getRange(i, columnH).getValue() == "Food") { var variant = "🥬" var relation = "a3e1bf38affd4908bc50b148dc6b2c81" } else if (sheet.getRange(i, columnH).getValue() == "Maison") { var variant = "🏠" var relation = "33be61688b78422a9d2e5056d87efe9c" } else if (sheet.getRange(i, columnH).getValue() == "Energie") { var variant = "⚡" var relation = "6239179069344d369b474d7a3b19006a" } else if (sheet.getRange(i, columnH).getValue() == "Internet") { var variant = "📡" var relation = "b5ce68ec745148f998270f13215a29c1" } else { var variant = "💡" var relation = "c959faceefe644e49b722baf9f6973d6" } if (sheet.getRange(i, columnA).getValue() == "10-2022") { var month = "9724f26e10d34b3aaac95622d611310f" } else if (sheet.getRange(i, columnA).getValue() == "11-2022") { var month = "0e4f11a46e94400baf52f651bd2d7814" } else if (sheet.getRange(i, columnA).getValue() == "12-2022") { var month = "c003840c25234dfc86c4ac56ce1fbdb6" } else if (sheet.getRange(i, columnA).getValue() == "01-2023") { var month = "e484c6001a354397a27d2f1595b64dce" } else if (sheet.getRange(i, columnA).getValue() == "02-2023") { var month = "98501471d17e459f9388fa1db328064a" } if (sheet.getRange(i, columnI).getValue() != "") { } else { sheet.getRange(i, columnI).setValue("ID_" + i); var profile = UrlFetchApp.fetch("https://api.notion.com/v1/pages", { "method": "POST", "timeout": 0, "headers": { "Authorization": "Bearer secret_", // add you own bearer secret token here "Content-Type": "application/json", "Notion-Version": "2022-06-28", }, "payload": JSON.stringify({ "parent": { "database_id": "aaa761f1f6d64f07b709bc7a7f0a9f6d" }, "icon": { "emoji": variant }, "properties": { "Name": { "title": [ { "text": { "content": "ID_" + i } } ] }, "Price": { "number": sheet.getRange(i, columnG).getValue() }, "Theme": { "select": { "name": sheet.getRange(i, columnH).getValue() } }, "Description": { "rich_text": [ { "text": { "content": sheet.getRange(i, columnF).getValue() } } ] }, "Date": { "date": { "start": sheet.getRange(i, columnB).getValue() } }, "Area Page": { "relation": [ { "id": relation } ] }, "Month Page": { "relation": [ { "id": month } ] } } }), }) var json = profile.getContentText(); } } }

Maintenant, les informations de dépense sont bien organisées dans une base de données Notion. Nous pouvons utiliser cette base pour construire notre modèle de suivi de dépenses en mettant en évidence les différentes catégories que nous souhaitons surveiller, comme les dépenses par thématique et les dépenses mensuelles. Nous avons utilisé les fonctions intégrées à Notion, comme la fonction de bases de données liées, pour améliorer notre modèle. Et le mieux de tout, vous n'avez pas besoin de créer ces fonctions car elles sont déjà disponibles en cliquant sur le bouton ci-dessous.

Template Notion

La finalité ressemble à la photo que vous pouvez voir plus bas.

Notion Template Budget

Le mot de la fin

Ce template est le résultat de plusieurs heures de travail et de réflexion sur la création d'un outil de gestion financière simple. Je trouvais incroyable qu'il n'y ait pas d'outil simple pour la gestion financière commune adapté à plusieurs ménages. Bien sûr, ce processus d'extraction d'email sur Gmail, de traitement de données sur Google Sheets et d'envoi sur Notion n'est pas exclusif à ce cas. J'espère que cela vous aidera à comprendre les mécanismes, à avoir des idées pour d'autres cas d'étude et à prendre le contrôle de votre gestion financière personnelle. Cheers !