주간 식단 계획하고 재료를 Notion에 추가 (Cron + 이메일)
고급
이것은Personal Productivity, Multimodal AI분야의자동화 워크플로우로, 20개의 노드를 포함합니다.주로 If, Set, Code, Cron, Notion 등의 노드를 사용하며. Notion에서 주간 쇼핑 목록 생성 및 자동 이메일 알림 발송
사전 요구사항
- •Notion API Key
- •Telegram Bot Token
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"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 – 템플릿 설명",
"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: 주간 식단 계획 (일요일 오후 6시)",
"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: 설정",
"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: 식료품 항목 생성",
"type": "n8n-nodes-base.code",
"position": [
-192,
448
],
"parameters": {},
"typeVersion": 2
},
{
"id": "f6208598-ef71-4233-8539-51d2c63162a4",
"name": "Notion: 장보기 목록에 추가",
"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 활성화됨?",
"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": "Email: 장보기 목록 발송",
"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: 확인",
"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": "설정 팁",
"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: 데이터베이스 연결 검증",
"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: 오류 처리",
"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": "Email: 오류 알림 발송",
"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": "Email: 성공 알림 발송",
"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: 워크플로우 실행",
"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: 오류 페이로드",
"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 활성화됨 (오류)?",
"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: 오류 알림",
"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: Notion에 기록할까요?",
"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: 로그 항목 추가 (성공)",
"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: 로그 항목 추가 (오류)",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 개인 생산성, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Affirmative Sender + 매일 감사 요약(건강) v2
Notion, 이메일 및 Telegram을 사용한 일일 긍정적인 말과 주간 감사 요약
If
Set
Cron
+
If
Set
Cron
26 노드Shelly-Ann Davy
개인 생산성
우아한 콘텐츠 자극 — RSS → Notion (n8n)
RSS 소스를 일일 콘텐츠 아이디어로 정리하고, 이메일로 전송하여 Notion과 Telegram 옵션 지원
If
Set
Cron
+
If
Set
Cron
20 노드Shelly-Ann Davy
콘텐츠 제작
Pantry 소프트 재고 보충 — Notion → 쇼핑 목록 + 이메일
Notion 및 이메일 알림을 활용한 식료품 저장소 재고 자동 관리
Set
Cron
Notion
+
Set
Cron
Notion
15 노드Shelly-Ann Davy
개인 생산성
Blush Pink Week — 7일 Pinterest 플래너 (n8n + Notion)
통합Notion与이메일보내기功能의7天Pinterest콘텐츠规划器
If
Set
Cron
+
If
Set
Cron
17 노드Shelly-Ann Davy
소셜 미디어
우아한 고객 온보딩 컨시어지 서비스 — 프로페셔널 에디션 (유니버설, v3)
Notion, 이메일 및 CRM 연동을 사용한 자동 고객 온보딩 시스템
If
Set
Notion
+
If
Set
Notion
31 노드Shelly-Ann Davy
고객관계관리
AI 자기소개서를 사용한 직업 검색 자동화
Google Jobs, RemoteOK 및 GPT-3.5를 사용한 AI 자기소개서 포함 채용 공고 검색 자동화
If
Set
Code
+
If
Set
Code
17 노드Shelly-Ann Davy
개인 생산성