今天要做的是每日待辦生成,每天固定時間生成每日任務(固定任務),並自動抓取當天待辦事項,最後將兩者整合成簡潔清單並推送到 Telegram。這樣使用者一早就能清楚掌握每日工作與學習安排,幫助使用者能一目了然每日任務,提升效率與自律性。
每日固定任務(黃色)
讀取當天所有的行程(藍色)
建立Date&Time節點,取得當天日期
建立code節點,整理日期格式
建立Notion節點,功能為get database page
傳送到telegram(紫色)
建立code節點來編輯訊息
// 假設 items 是 Notion Search Node 的輸出
const notionItems = items || [];
// 初始化陣列
let fixedTasks = [];
let todoTasks = [];
// 遍歷 Notion 任務,依任務類型分類
notionItems.forEach(it => {
const taskName = it.json.properties['任務'].title?.[0]?.text?.content || "未命名任務";
const taskDesc = it.json.properties['任務描述'].rich_text?.[0]?.text?.content || "未輸入任務內容";
const taskType = it.json.properties['任務類型'].select?.name || "未分類";
const fullTask = taskDesc ? `${taskName} — ${taskDesc}` : taskName;
if (taskType === "固定任務") {
fixedTasks.push(fullTask);
} else if (taskType === "待辦事項") {
todoTasks.push(fullTask);
}
});
// ====== 組合 Telegram 訊息 ======
let message = "";
// 固定任務
if (fixedTasks.length > 0) {
message += "🏃 每日固定任務\n";
fixedTasks.forEach((task, idx) => {
message += `${idx + 1}. ${task}\n`;
});
} else {
message += "🏃 今天沒有每日固定任務 🎉\n";
}
// 待辦事項
message += "\n";
if (todoTasks.length > 0) {
message += "📝 今日待辦事項\n";
todoTasks.forEach((task, idx) => {
message += `${idx + 1}. ${task}\n`;
});
} else {
message += "📝 今天沒有待辦事項 🎉\n";
}
// ====== 回傳給 Telegram Node ======
return [{ json: { message } }];
建立telegram節點
經過這次的實作也讓我對n8n節點之間資訊的流動與運用有了更深的了解。