{
"nodes": [
{
"id": "ee3cd6ff-40ba-40d4-bbbf-90244da4a272",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
-155
],
"parameters": [],
"typeVersion": 1
},
{
"id": "68584aab-c5f3-450a-a1e3-cddc8d64082d",
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1100,
-280
],
"parameters": {
"options": [],
"operation": "fromJson"
},
"typeVersion": 1
},
{
"id": "e23a67a1-44df-4b83-a80a-9383f4432c7d",
"name": "If is archived is false",
"type": "n8n-nodes-base.if",
"position": [
1540,
-280
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e051d2f2-7c22-4864-bbe7-4832cc54acaa",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
},
"leftValue": "={{ $json.data.isArchived }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "313764d0-f115-46d3-a2e3-1fde647f7d85",
"name": "OpenAI Chat Model",
"type": "@n8n\/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1848,
-60
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": []
},
"credentials": {
"openAiApi": {
"id": "1IOLtYX7aTspCAN8",
"name": "OpenAI Pollup"
}
},
"typeVersion": 1.1999999999999999555910790149937383830547332763671875
},
{
"id": "81fcc7a0-955d-4930-b203-8e98d57e3c4c",
"name": "If extension is json",
"type": "n8n-nodes-base.filter",
"position": [
660,
-280
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7b80be39-b5cc-4f96-8529-75559aaece38",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.name.split('.').pop(); }}",
"rightValue": "=json"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "1c8c81ea-d0ae-4925-ae4b-05482c1b5fa2",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-380
],
"parameters": {
"color": 4,
"width": 260,
"height": 440,
"content": "## How to export your Google keep notes \n* Google has a dedicated service for exporting your google data, called [Google Takeout](https:\/\/takeout.google.com\/), you'll have to login it. \n* Click on \"Deselect all\" then select only Google Keep and click on \"Next\". \n- Select the destination (use \"Send download link via mail\" as you'll have to uncompress a zip file before to send it again to Google Drive)\n- Upload to Google Drive all json files from your uncompresed file, to specific directory and you are ready to start!\n"
},
"typeVersion": 1
},
{
"id": "31eb6398-cca0-4ed1-910a-470fa49c9727",
"name": "Search in \"Keep\" folder",
"type": "n8n-nodes-base.googleDrive",
"position": [
220,
-155
],
"parameters": {
"limit": 2,
"filter": {
"folderId": {
"__rl": true,
"mode": "list",
"value": "1BggjRVCqyDnECK_mB2M-PYareptQv99P",
"cachedResultUrl": "https:\/\/drive.google.com\/drive\/folders\/1BggjRVCqyDnECK_mB2M-PYareptQv99P",
"cachedResultName": "Keep"
},
"whatToSearch": "files"
},
"options": [],
"resource": "fileFolder"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "veQ5hnnOES56fTcI",
"name": "Google Drive account good"
}
},
"typeVersion": 3
},
{
"id": "653d04b2-4020-4254-a8f5-53e15228adb7",
"name": "Loop every 10 items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
440,
-155
],
"parameters": {
"options": [],
"batchSize": 10
},
"typeVersion": 3
},
{
"id": "c1171bd7-5e2d-49e6-a52b-6e9282cb093d",
"name": "Download the files",
"type": "n8n-nodes-base.googleDrive",
"position": [
880,
-280
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": [],
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "veQ5hnnOES56fTcI",
"name": "Google Drive account good"
}
},
"typeVersion": 3
},
{
"id": "4d9caff3-2ac8-40fc-91a4-1b395e693141",
"name": "Put some AI treatment here if you need it",
"type": "@n8n\/n8n-nodes-langchain.agent",
"notes": "Yu can use this AI Agent to process a number or anything you need from your notes",
"position": [
1760,
-280
],
"parameters": {
"text": "=Extract the amount in euros of the input. output just the amount and nothing else. \nHere is the input:{{ $json.data.textContent }}",
"options": [],
"promptType": "define"
},
"typeVersion": 1.8000000000000000444089209850062616169452667236328125
},
{
"id": "d97c4e02-4b1a-479f-8492-e601c553ac57",
"name": "Set the fields for export",
"type": "n8n-nodes-base.set",
"position": [
2136,
-280
],
"parameters": {
"options": [],
"assignments": {
"assignments": [
{
"id": "d05409ea-b739-47bd-9c07-0dea40b83de1",
"name": "textContent",
"type": "string",
"value": "={{ $('If is archived is false').item.json.data.textContent }}"
},
{
"id": "acbe202e-de95-4a47-a90b-78556fec4650",
"name": "Edited",
"type": "string",
"value": "={{ new Date($('If is archived is false').item.json.data.userEditedTimestampUsec \/ 1000).toLocaleString() }}"
},
{
"id": "13f00e53-75fd-4db5-9a22-b5e329c72b47",
"name": "Created",
"type": "string",
"value": "={{ new Date($('If is archived is false').item.json.data.createdTimestampUsec \/ 1000).toLocaleString() }}"
},
{
"id": "7e58e874-5238-4fb6-8b00-ea947c59ec4b",
"name": "isArchived",
"type": "boolean",
"value": "={{ $('If is archived is false').item.json.data.isArchived }}"
},
{
"id": "721f31d8-4944-4a63-878e-71816eee755c",
"name": "Amount",
"type": "string",
"value": "={{ $json.output }}"
}
]
}
},
"typeVersion": 3.399999999999999911182158029987476766109466552734375
},
{
"id": "0f8d9b1f-f5de-477f-ad50-eeb89bcf8dc7",
"name": "Add to google sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
2356,
-155
],
"parameters": {
"columns": {
"value": [],
"schema": [
{
"id": "textContent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "textContent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Edited",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Edited",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Created",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "isArchived",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "isArchived",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": [],
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1rjgyHw6XU4NTRCx4eXuQ0AIXhY3mWqxg1NiAhrSnuzE\/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1rjgyHw6XU4NTRCx4eXuQ0AIXhY3mWqxg1NiAhrSnuzE",
"cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1rjgyHw6XU4NTRCx4eXuQ0AIXhY3mWqxg1NiAhrSnuzE\/edit?usp=drivesdk",
"cachedResultName": "googl keep export (10\/05\/25)"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gdLmm513ROUyH6oU",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "31141cf2-94d6-45ad-8632-18001a6d4d36",
"name": "Filter",
"type": "n8n-nodes-base.if",
"position": [
1320,
-280
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "11bacf5f-6675-4681-b205-5e5293eaae02",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.data.textContentHtml }}",
"rightValue": "d\u00e9pens\u00e9"
},
{
"id": "c40da1df-559c-4278-bde1-cdb8e65c8428",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.data.textContentHtml }}",
"rightValue": "depense"
}
]
}
},
"typeVersion": 2.20000000000000017763568394002504646778106689453125
},
{
"id": "c4c941f5-6579-4f4f-9916-cdd496498760",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2300,
-360
],
"parameters": {
"color": 5,
"height": 360,
"content": "## Create an empty google sheet file\n\nThat will get your entries from the notes "
},
"typeVersion": 1
},
{
"id": "3ab60239-85cf-4c84-94d3-659fdfef4316",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
140,
-300
],
"parameters": {
"color": 5,
"height": 360,
"content": "## Set the directory Where you put the files"
},
"typeVersion": 1
},
{
"id": "49546099-e072-4183-a14e-fff80928920d",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1240,
-480
],
"parameters": {
"color": 5,
"height": 360,
"content": "## Filter the files\n\nIf you need the content to contain a word, or after a certain date.\n\nIf you don't need to filter it, just remove the node"
},
"typeVersion": 1
},
{
"id": "195923a2-faf9-40c3-95c0-08fdc078e291",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1720,
-500
],
"parameters": {
"color": 5,
"width": 320,
"height": 560,
"content": "## Process each file with AI\n\nIf you need the extract some information from the contextq, you can do it here. If you don't need it, just delete the node"
},
"typeVersion": 1
},
{
"id": "07b3570a-72cf-480b-b3b8-fb461b57822d",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
80
],
"parameters": {
"color": 4,
"width": 380,
"height": 300,
"content": "## Setup\n* Export your Google Keep notes (see \"how to export your Google Keep notes\")\n\n- Connect Google Drive, OpenAI, and Google Sheets in n8n.\n\n- Set the correct folder path for your notes in the \u201cSearch in \u2018Keep\u2019 folder\u201d node.\n\n- Point the Google Sheet node to your spreadsheet"
},
"typeVersion": 1
},
{
"id": "48e1cff2-2748-4d15-91b4-d5ee2f5d9581",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-500
],
"parameters": {
"width": 720,
"height": 100,
"content": "## Contact me\n### If you need some help with this workflow: Write to me: [thomas@pollup.net](mailto:thomas@pollup.net)\n"
},
"typeVersion": 1
}
],
"connections": {
"Filter": {
"main": [
[
{
"node": "If is archived is false",
"type": "main",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Put some AI treatment here if you need it",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Download the files": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Add to google sheet": {
"main": [
[
{
"node": "Loop every 10 items",
"type": "main",
"index": 0
}
]
]
},
"Loop every 10 items": {
"main": [
[],
[
{
"node": "If extension is json",
"type": "main",
"index": 0
}
]
]
},
"If extension is json": {
"main": [
[
{
"node": "Download the files",
"type": "main",
"index": 0
}
]
]
},
"If is archived is false": {
"main": [
[
{
"node": "Put some AI treatment here if you need it",
"type": "main",
"index": 0
}
]
]
},
"Search in \"Keep\" folder": {
"main": [
[
{
"node": "Loop every 10 items",
"type": "main",
"index": 0
}
]
]
},
"Set the fields for export": {
"main": [
[
{
"node": "Add to google sheet",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Search in \"Keep\" folder",
"type": "main",
"index": 0
}
]
]
},
"Put some AI treatment here if you need it": {
"main": [
[
{
"node": "Set the fields for export",
"type": "main",
"index": 0
}
]
]
}
}
}