
Weekly Journal Summary
Description
Categories
📊 Productivity🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.notionn8n-nodes-base.notionn8n-nodes-base.notionn8n-nodes-base.notionn8n-nodes-base.discordn8n-nodes-base.discordn8n-nodes-base.aggregaten8n-nodes-base.stickyNote
PriceGratuit
Views0
Last Updated11/28/2025
workflow.json
{
"id": "MeGFzR7Shfx70wMV",
"meta": {
"instanceId": "2a92e1aed4e75113f119ba031c55ebfbb7ec184402fa742db5b7b5ac94a2d195",
"templateCredsSetupCompleted": true
},
"name": "Weekly Journal Summary",
"tags": [
{
"id": "KOVOG8f4IK9bMwas",
"name": "🤖 AI Powered",
"createdAt": "2025-07-26T12:59:39.942Z",
"updatedAt": "2025-07-26T13:02:41.754Z"
}
],
"nodes": [
{
"id": "c2b1647f-4bcb-42cb-b0e4-b5d885adafbb",
"name": "When clicking ‘Execute workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-512,
-208
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1fb28c6c-1828-4c31-ac0b-386afcf3a5da",
"name": "Get many child blocks",
"type": "n8n-nodes-base.notion",
"position": [
0,
-160
],
"parameters": {
"blockId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"resource": "block",
"operation": "getAll"
},
"credentials": {
"notionApi": {
"id": "nC8XWBtNRIPtVuXV",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "8fa2862f-6be3-4c34-bc4c-bb3ac7d36cb5",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-512,
80
],
"parameters": {
"rule": {
"interval": [
{
"daysInterval": 7,
"triggerAtHour": 16
}
]
}
},
"typeVersion": 1.2
},
{
"id": "fea6281a-8dbd-45e0-9b7b-903c94383c88",
"name": "Get Daily Journals",
"type": "n8n-nodes-base.notion",
"position": [
-224,
-160
],
"parameters": {
"limit": 5,
"filters": {
"conditions": [
{
"key": "Type|select",
"condition": "equals",
"selectValue": "Journal"
},
{
"key": "Last edited time|last_edited_time",
"condition": "past_week"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "22c1b7ff-072a-80c4-8175-cab05d54bb2b"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"id": "nC8XWBtNRIPtVuXV",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "4ea7bb6f-83d9-46ff-a618-2b74b79ea5e1",
"name": "To Dos Totals",
"type": "n8n-nodes-base.code",
"position": [
0,
32
],
"parameters": {
"jsCode": "let totalTasks = $input.all().length;\nlet emoji = \"\";\nif (totalTasks > 40) {\n emoji = \"✨🤩✨\";\n} else if (totalTasks > 30) {\n emoji = \"🥳\"\n} else if (totalTasks > 20) {\n emoji = \"🤠\";\n} else if (totalTasks < 10) {\n emoji = \"🤨\";\n}\n\nreturn [\n {\n json: {\n message: \"\\n\\n**Tasks Summary:**\\nYou completed a total of **\" + totalTasks + \"** tasks this week! \" + emoji\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "4d19c32a-cf6c-4723-abc9-378d64913dc4",
"name": "To Do Summary",
"type": "n8n-nodes-base.discord",
"position": [
208,
32
],
"webhookId": "b871b2be-5307-4973-abb0-56b1bcaad9bf",
"parameters": {
"content": "={{ $json.message }}",
"options": {},
"authentication": "webhook"
},
"credentials": {
"discordWebhookApi": {
"id": "xWovgtJFdEGU9fv3",
"name": "Discord Webhook account"
}
},
"typeVersion": 2
},
{
"id": "dc0d9a36-9e76-4b20-a16a-f50b22d338e8",
"name": "Combined Summary for LLM",
"type": "n8n-nodes-base.code",
"position": [
432,
-160
],
"parameters": {
"jsCode": "let combinedSummary = \"\";\nfor (const item of $input.all()) {\n if (item.json.content.length > 0) {\n combinedSummary += \" \" + item.json.content; \n } \n}\n\nreturn [\n {\n json: {\n message: combinedSummary\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "49819461-b703-4000-8aff-da38042d8844",
"name": "Save Back to Notion",
"type": "n8n-nodes-base.notion",
"position": [
1056,
-64
],
"parameters": {
"title": "={{ $now.format('MMM d, yy') }} Weekly Summary [automated]",
"blockUi": {
"blockValues": [
{
"text": {
"text": [
{
"text": "={{ $json.choices[0].message.content }}",
"annotationUi": {}
}
]
},
"richText": true
}
]
},
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "22c1b7ff-072a-80c4-8175-cab05d54bb2b"
},
"propertiesUi": {
"propertyValues": [
{
"key": "Type|select",
"selectValue": "Weekly"
}
]
}
},
"credentials": {
"notionApi": {
"id": "nC8XWBtNRIPtVuXV",
"name": "Notion account"
}
},
"typeVersion": 2.2
},
{
"id": "f48bcf16-337c-4fdd-9aa8-57c7d01889b6",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1104,
-304
],
"parameters": {
"color": 5,
"width": 512,
"height": 608,
"content": "## Notion Weekly Journal AI Summary\nThis workflow will run on a weekly schedule and retrieve your Daily Journal pages for the past week and aggregate them into a ChatGPT generated concise summary. It will save that weekly summary back to your Notion as a new Note in addition to posting to a personal Discord channel.\n\nAdditionally it will also retrieve all of the Tasks you've completed in the past week and provide a quick total with a congratulatory message to a Discord channel as well.\n\n### Requirements:\n- You need Notion setup w/ a Notes database\n - If you want the Discord messages, setup a Discord webhook for your channel as well, or simply delete the Discord nodes.\n- One of the properties for the Notes db should be `Type` with a value of `Journal`\n- The contents of your daily Journal pages can be whatever you want\n - I've found what works best for me is the format of \"What was a highlight of the day?\", \"What was a low point of the day?\", and \"What decisions did I delegate, delay, or dodge?\"\n- You should also create an additional `Type` for your Weekly summary - in this case I used simply `Weekly`\n- Automate this to run weekly on your day of choice. I tend to only journal on weekdays so I've set mine up to run every Friday retrieving the past 5 days of Journal entries.\n"
},
"typeVersion": 1
},
{
"id": "c8f7b1d5-7938-4ca6-9aef-bd798d00c888",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
208,
-160
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "content"
}
]
}
},
"typeVersion": 1
},
{
"id": "47c1b7de-9438-44b6-a339-d57b34bca3aa",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-304
],
"parameters": {
"width": 304,
"height": 256,
"content": "The preconfigured prompt is pretty generic, but feel free to edit to add humor or any other specific instructions you'd like ChatGPT to use when generating your summaries."
},
"typeVersion": 1
},
{
"id": "f258bd25-a104-4be5-8810-b02d97a04293",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
-384
],
"parameters": {
"width": 224,
"height": 576,
"content": "Ensure your Notion connection is configured here as well as the page DB and Type (filter) you want to use when retrieving your daily journals.\nLikewise ensure your Tasks DB is configured correctly (or simply remove the bottom portion of this workflow)"
},
"typeVersion": 1
},
{
"id": "943f4c06-c8be-426d-bb19-c37db7bb8f9b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
16
],
"parameters": {
"width": 160,
"height": 272,
"content": "\n\n\n\n\n\n\n\n\n\n\n\nCustomize the Weekly Tasks total summary message that gets sent to Discord."
},
"typeVersion": 1
},
{
"id": "23550382-cf64-4ff3-aee8-d1ade7e94fbb",
"name": "Generate Summary",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
656,
-160
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "GPT-4.1"
},
"options": {},
"messages": {
"values": [
{
"content": "=Given this blob of text which is the aggregation of the past week of Journal entries I've made, can you give me a concise summary for the week?\n\n {{ $json.message }}"
}
]
},
"simplify": false
},
"credentials": {
"openAiApi": {
"id": "NPgH1qw6QE8eTcZq",
"name": "OpenAi account 3"
}
},
"typeVersion": 1.8
},
{
"id": "e769232f-bd6f-4437-93a4-8f7acddc704e",
"name": "Send Summary",
"type": "n8n-nodes-base.discord",
"position": [
1056,
-256
],
"webhookId": "2a550af3-61f6-4ddc-954f-0a3af0284347",
"parameters": {
"content": "={{ $json.choices[0].message.content }}",
"options": {},
"authentication": "webhook"
},
"credentials": {
"discordWebhookApi": {
"id": "xWovgtJFdEGU9fv3",
"name": "Discord Webhook account"
}
},
"typeVersion": 2
},
{
"id": "6bf259b0-0771-42c3-a438-1fe4df1267fb",
"name": "Get Tasks",
"type": "n8n-nodes-base.notion",
"position": [
-224,
32
],
"parameters": {
"limit": 100,
"filters": {
"conditions": [
{
"key": "Completed Date|date",
"condition": "past_week"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "22c1b7ff-072a-807a-b0c7-cb5733cb7997"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"id": "nC8XWBtNRIPtVuXV",
"name": "Notion account"
}
},
"typeVersion": 2.2
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "America/New_York",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "d4a87d14-7876-4022-8374-09f3a08364da",
"connections": {
"Aggregate": {
"main": [
[
{
"node": "Combined Summary for LLM",
"type": "main",
"index": 0
}
]
]
},
"Get Tasks": {
"main": [
[
{
"node": "To Dos Totals",
"type": "main",
"index": 0
}
]
]
},
"To Dos Totals": {
"main": [
[
{
"node": "To Do Summary",
"type": "main",
"index": 0
}
]
]
},
"Generate Summary": {
"main": [
[
{
"node": "Send Summary",
"type": "main",
"index": 0
},
{
"node": "Save Back to Notion",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get Daily Journals",
"type": "main",
"index": 0
},
{
"node": "Get Tasks",
"type": "main",
"index": 0
}
]
]
},
"Get Daily Journals": {
"main": [
[
{
"node": "Get many child blocks",
"type": "main",
"index": 0
}
]
]
},
"Get many child blocks": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Combined Summary for LLM": {
"main": [
[
{
"node": "Generate Summary",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Get Daily Journals",
"type": "main",
"index": 0
},
{
"node": "Get Tasks",
"type": "main",
"index": 0
}
]
]
}
}
}