Wöchentliche Mahlzeiten planen und Zutaten zu Notion hinzufügen (Cron + E-Mail)
Dies ist ein Personal Productivity, Multimodal AI-Bereich Automatisierungsworkflow mit 20 Nodes. Hauptsächlich werden If, Set, Code, Cron, Notion und andere Nodes verwendet. Wöchentliche Einkaufslisten in Notion erstellen und automatische E-Mail-Benachrichtigungen senden
- •Notion API Key
- •Telegram Bot Token
{
"id": "8UQEEzm7Vbhc46n5",
"meta": {
"instanceId": "8c8b20afd941aa66690830b5f1f0b9d7a4611a25b0382c8675a2fab2026ff320",
"templateCredsSetupCompleted": true
},
"name": "Plan weekly meals and add groceries to Notion (Cron + Email)",
"tags": [],
"nodes": [
{
"id": "c9419408-69ff-4a74-bba7-568633b6617c",
"name": "README – Vorlagenbeschreibung",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1264,
0
],
"parameters": {
"width": 480,
"height": 888,
"content": "## Who's it for\nBusy homemakers, creators, and parents who want an elegant, zero-cost way to plan weekly meals.\n\n## What it does\n- Runs every Sunday at 6 PM\n- Pulls a built-in list of 7 sample recipes \n- Adds ingredients to a **Notion database** grocery list \n- Emails the list (or Telegram) so you’re ready for the week\n\n## How to set up\n1. Import this workflow \n2. Add **Notion** credential → connect your **Meal Planner** database \n3. Add **SMTP** credential (or Telegram) \n4. Activate\n\n## Requirements\n- Free Notion account \n- SMTP or Telegram credential (optional) \n\n## How to customize\n- Change Cron day/time \n- Swap the recipe list for your own \n- Add dietary tags or portions in Notion\n\n## Change weekly time\nOpen **Cron: Weekly Meal Plan (Sun 6 PM)** and set your preferred day/time.\n_Tip:_ For testing, switch to **Every minute**, then set it back to **Every week** before activating.\n\n\n## Reliability\nThis template includes a Notion connection check and simple error notifications so failures are surfaced instantly."
},
"typeVersion": 1,
"backgroundColor": "#FFF2CC"
},
{
"id": "51f1ed9d-ba40-4f05-874b-fbcf3d08bb8e",
"name": "Cron: Wöchentlicher Mahlzeitenplan (Sonntag 18 Uhr)",
"type": "n8n-nodes-base.cron",
"position": [
-864,
448
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "custom",
"cronExpression": "0 18 * * 0"
}
]
}
},
"typeVersion": 1
},
{
"id": "b2e86a43-dc0a-454a-9e44-4396fd8ee13a",
"name": "Set: Konfiguration",
"type": "n8n-nodes-base.set",
"position": [
-640,
448
],
"parameters": {
"values": {
"string": [
{
"name": "recipeList",
"value": "- 🌸 Creamy Tuscan Chicken\n- 🥗 Lemon-Garlic Shrimp Salad\n- 🍝 One-Pan Veggie Pasta\n- 🥦 Teriyaki Salmon & Rice\n- 🍕 Margherita Flatbread\n- 🍫 Dark-Choc Overnight Oats\n- 🥒 Cucumber-Lime Smoothie"
},
{
"name": "emailTo",
"value": "recipient@example.com"
},
{
"name": "notionDb",
"value": "YOUR_NOTION_DB_ID"
},
{
"name": "telegramChatId"
},
{
"name": "fromEmail",
"value": "sender@example.com"
},
{
"name": "notifyEmail",
"value": "owner@example.com"
},
{
"name": "notionLogDb",
"value": "YOUR_NOTION_LOG_DB_ID"
}
],
"boolean": [
{
"name": "sendTelegram"
},
{
"name": "logToNotion"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 2
},
{
"id": "aaade1ef-c090-4c13-a0a2-f99b7b3c9efa",
"name": "Code: Lebensmittelartikel generieren",
"type": "n8n-nodes-base.code",
"position": [
-192,
448
],
"parameters": {},
"typeVersion": 2
},
{
"id": "f6208598-ef71-4233-8539-51d2c63162a4",
"name": "Notion: Zur Einkaufsliste hinzufügen",
"type": "n8n-nodes-base.notion",
"position": [
32,
448
],
"parameters": {
"options": {},
"resource": "databasePage",
"databaseId": "={{ $json.notionDb}}"
},
"typeVersion": 2
},
{
"id": "7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd",
"name": "IF: Telegram aktiviert?",
"type": "n8n-nodes-base.if",
"position": [
480,
352
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.sendTelegram}}",
"operation": "is true"
}
]
}
},
"typeVersion": 1
},
{
"id": "342b2a5c-8484-4ded-816b-ca71daf29493",
"name": "E-Mail: Einkaufsliste senden",
"type": "n8n-nodes-base.emailSend",
"position": [
256,
328
],
"webhookId": "c7d2fd33-951c-4a4f-9953-c7465edda04c",
"parameters": {
"text": "Hi! Here’s your elegant weekly grocery list:\n{{ $json.recipeList }}\n\nHappy cooking!",
"options": {},
"subject": "🛒 This Week’s Grocery List",
"toEmail": "={{ $json.emailTo}}",
"fromEmail": "={{ $json.fromEmail}}"
},
"typeVersion": 2
},
{
"id": "08b75965-a564-4934-bc34-b5054b2b60d3",
"name": "Telegram: Bestätigung",
"type": "n8n-nodes-base.telegram",
"position": [
704,
352
],
"webhookId": "5a46242e-398e-410e-9666-51afa569577e",
"parameters": {
"text": "🛒 Grocery list emailed! Happy cooking 🌸",
"chatId": "={{ $json.telegramChatId}}",
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "f9705add-d781-48e2-b181-64de111be8d3",
"name": "Einrichtungstipps",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
80
],
"parameters": {
"width": 500,
"height": 200,
"content": "### Quick Tune-ups\n- [ ] Add Notion credential → connect your **Meal Planner** database \n- [ ] Add SMTP (or Telegram) credential \n- [ ] Edit recipes or Cron time in **Set: Configuration** \n- [ ] Test once by changing Cron to `Every minute`, then revert"
},
"typeVersion": 1,
"backgroundColor": "#FFFFFF"
},
{
"id": "cae9cd00-0605-4d52-9c17-380e1abe9e75",
"name": "Notion: Datenbankverbindung validieren",
"type": "n8n-nodes-base.notion",
"notes": "Checks access to the Notion database ID before creating pages.",
"position": [
-416,
448
],
"parameters": {
"resource": "database",
"databaseId": "={{ $json.notionDb }}"
},
"credentials": {
"notionApi": {
"id": "Gx5gB3LfWa4PIPIy",
"name": "Notion account"
}
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
"name": "Catch: Fehlerbehandlung",
"type": "n8n-nodes-base.set",
"notes": "Receives error output from upstream nodes and forwards to error email.",
"position": [
704,
544
],
"parameters": {
"options": {}
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "3020db74-fdf7-4633-b7b6-c1e040d6bbaa",
"name": "E-Mail: Fehlerbenachrichtigung senden",
"type": "n8n-nodes-base.emailSend",
"notes": "Attach SMTP credentials after import.",
"position": [
1152,
544
],
"webhookId": "4c55e50f-ae36-449c-8f1e-496b057a7668",
"parameters": {
"text": "A workflow error occurred.\nNode: {{$json.errorNode}}\nMessage: {{$json.errorMessage}}\nWhen: {{$json.timestamp}}\n\n{{ $json.errorStack ? ('Stack:\\n' + $json.errorStack) : '' }}",
"options": {},
"subject": "❗ Meal Planner – Error in {{$json.errorNode}}",
"toEmail": "={{ $json.notifyEmail }}",
"fromEmail": "={{ $json.fromEmail }}"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "c854bddb-ac88-4d48-b124-40a63bf9b38e",
"name": "E-Mail: Erfolgsbenachrichtigung senden",
"type": "n8n-nodes-base.emailSend",
"notes": "Optional success notice; can be disabled before submit if you prefer.",
"position": [
480,
160
],
"webhookId": "84c9a9a9-2a08-4947-800b-1f2fd5b26b36",
"parameters": {
"text": "Your weekly grocery list has been created and emailed.\nGenerated at: {{$json.generatedAtHuman}} ({{$json.generatedAt}})\n\nRecipes:\n{{$json.recipeList}}\n\nGrocery List:\n{{$json.groceryList}}",
"options": {},
"subject": "✅ Meal Planner – Success",
"toEmail": "={{ $json.notifyEmail }}",
"fromEmail": "={{ $json.fromEmail }}"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "2af14a15-4442-47e9-8c4b-0a485d3b1a39",
"name": "Log: Workflow-Ausführung",
"type": "n8n-nodes-base.set",
"notes": "Placeholder logger. Replace with Notion/Sheets if you want persistent logs.",
"position": [
-720,
-96
],
"parameters": {
"values": {
"string": [
{
"name": "status",
"value": "success"
},
{
"name": "timestamp",
"value": "={{ (new Date()).toISOString() }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d",
"name": "Format: Fehler-Payload",
"type": "n8n-nodes-base.code",
"notes": "Normalizes error details for notifications and logging.",
"position": [
928,
544
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "25aacfc2-14ce-4825-b286-2bb96852c2f9",
"name": "IF: Telegram aktiviert (Fehler)?",
"type": "n8n-nodes-base.if",
"position": [
1152,
736
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.sendTelegram }}",
"operation": "is true"
}
]
}
},
"typeVersion": 1
},
{
"id": "b2afc239-0a18-43b6-be34-62500a5da118",
"name": "Telegram: Fehlerbenachrichtigung",
"type": "n8n-nodes-base.telegram",
"notes": "Optional Telegram error alert.",
"position": [
1376,
736
],
"webhookId": "04f74ba6-dfc8-4c56-96c1-02438dcf85bc",
"parameters": {
"text": "⚠️ Meal Planner error in {{$json.errorNode}}:\\n{{$json.errorMessage}}\\n{{$json.timestamp}}",
"chatId": "={{ $json.telegramChatId }}",
"additionalFields": {}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "fa604269-843c-4a91-9771-66d852c01e2e",
"name": "IF: In Notion protokollieren?",
"type": "n8n-nodes-base.if",
"position": [
704,
160
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.logToNotion }}",
"operation": "is true"
}
]
}
},
"typeVersion": 1
},
{
"id": "86f13624-de11-4f3e-9c34-14a82029767c",
"name": "Notion: Logeintrag hinzufügen (Erfolg)",
"type": "n8n-nodes-base.notion",
"notes": "Optional persistent logging to Notion.",
"position": [
928,
160
],
"parameters": {
"options": {},
"resource": "databasePage",
"databaseId": "={{ $json.notionLogDb }}"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "57e2a84d-1d70-4260-b712-452791ad9de3",
"name": "Notion: Logeintrag hinzufügen (Fehler)",
"type": "n8n-nodes-base.notion",
"position": [
1152,
352
],
"parameters": {
"options": {},
"resource": "databasePage",
"databaseId": "={{ $json.notionLogDb }}"
},
"notesInFlow": true,
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "c1b0c323-3026-4acb-96be-4a6d3c332c36",
"connections": {
"fa604269-843c-4a91-9771-66d852c01e2e": {
"main": [
[
{
"node": "86f13624-de11-4f3e-9c34-14a82029767c",
"type": "main",
"index": 0
}
]
]
},
"b2e86a43-dc0a-454a-9e44-4396fd8ee13a": {
"main": [
[
{
"node": "cae9cd00-0605-4d52-9c17-380e1abe9e75",
"type": "main",
"index": 0
}
]
]
},
"39d75fb3-c322-4e6f-9e0c-14b563a0e8ce": {
"main": [
[
{
"node": "0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d",
"type": "main",
"index": 0
}
]
]
},
"0c3ca0a5-da6e-4dfe-9b20-d7e08b63239d": {
"main": [
[
{
"node": "3020db74-fdf7-4633-b7b6-c1e040d6bbaa",
"type": "main",
"index": 0
},
{
"node": "25aacfc2-14ce-4825-b286-2bb96852c2f9",
"type": "main",
"index": 0
},
{
"node": "57e2a84d-1d70-4260-b712-452791ad9de3",
"type": "main",
"index": 0
}
]
]
},
"7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd": {
"main": [
[
{
"node": "08b75965-a564-4934-bc34-b5054b2b60d3",
"type": "main",
"index": 0
},
{
"node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
"type": "main",
"index": 0
}
]
]
},
"342b2a5c-8484-4ded-816b-ca71daf29493": {
"main": [
[
{
"node": "7288a4a3-3cfe-4053-b6b7-fd2a75eaa7dd",
"type": "main",
"index": 0
},
{
"node": "c854bddb-ac88-4d48-b124-40a63bf9b38e",
"type": "main",
"index": 0
},
{
"node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
"type": "main",
"index": 0
}
]
]
},
"f6208598-ef71-4233-8539-51d2c63162a4": {
"main": [
[
{
"node": "342b2a5c-8484-4ded-816b-ca71daf29493",
"type": "main",
"index": 0
},
{
"node": "39d75fb3-c322-4e6f-9e0c-14b563a0e8ce",
"type": "main",
"index": 0
}
]
]
},
"aaade1ef-c090-4c13-a0a2-f99b7b3c9efa": {
"main": [
[
{
"node": "f6208598-ef71-4233-8539-51d2c63162a4",
"type": "main",
"index": 0
}
]
]
},
"25aacfc2-14ce-4825-b286-2bb96852c2f9": {
"main": [
[
{
"node": "b2afc239-0a18-43b6-be34-62500a5da118",
"type": "main",
"index": 0
}
]
]
},
"c854bddb-ac88-4d48-b124-40a63bf9b38e": {
"main": [
[
{
"node": "fa604269-843c-4a91-9771-66d852c01e2e",
"type": "main",
"index": 0
}
]
]
},
"51f1ed9d-ba40-4f05-874b-fbcf3d08bb8e": {
"main": [
[
{
"node": "b2e86a43-dc0a-454a-9e44-4396fd8ee13a",
"type": "main",
"index": 0
}
]
]
},
"cae9cd00-0605-4d52-9c17-380e1abe9e75": {
"main": [
[
{
"node": "aaade1ef-c090-4c13-a0a2-f99b7b3c9efa",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Persönliche Produktivität, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Shelly-Ann
@shecodesfloDiesen Workflow teilen