iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
DevOps

Mac 環境 n8n 30 天學習計畫系列 第 6

Day6:動態提醒訊息Cron → Function

  • 分享至 

  • xImage
  •  

1) 建立流程

  1. 開啟 n8n → Create Workflow(或打開你現有的 Workflow)。
  2. Schedule Trigger(或 Schedule / Cron) 節點拖進來。
    • 測試:先設為 每分鐘(Every 1 minute),或用 Execute Workflow 手動執行來快速測試。
    • 上線:調整為每天某時間或每小時等實際頻率,並在完成測試後開啟 Activate。
      https://ithelp.ithome.com.tw/upload/images/20250918/20169144BWrayE9Dyr.png

2) 加入 Function(Code in JavaScript)節點

  1. Function / Code in JavaScript 節點接在 Schedule Trigger 後面。
  2. 在 Function 的程式區貼入下面程式(選一個版本)並儲存。
// 提醒訊息池
const messages = [
  "📢 每日提醒:記得喝水 💧",
  "📢 每日提醒:起來伸展一下 🧘",
  "📢 每日提醒:保持專注 🔥",
  "📢 每日提醒:休息眼睛 20/20/20 👀",
  "📢 每日提醒:深呼吸放鬆 🌬️"
];

// 隨機取一則訊息
const randomMsg = messages[Math.floor(Math.random() * messages.length)];

// 加上時間戳記,方便確認每次觸發真的不同
return [{
  json: {
    message: randomMsg,
    timestamp: new Date().toISOString()
  }
}];

https://ithelp.ithome.com.tw/upload/images/20250918/201691441apEBnyhuy.png

3) 測試(本地立即檢查)

  1. 在編輯頁面按下 Execute workflow → 會立即執行一次。
  2. 下方 Logs 選取 Code in JavaScript 節點,切到 Output,將會看到 message 欄位與內容(例如 📢 每日提醒:記得喝水 💧)。
    https://ithelp.ithome.com.tw/upload/images/20250918/201691449hZ99iFHBI.png

為了更快看到多筆測試結果,把 Schedule 暫時設成每分鐘且 Activate。
https://ithelp.ithome.com.tw/upload/images/20250918/20169144z7Ea6xc1u9.png

https://ithelp.ithome.com.tw/upload/images/20250918/20169144T707d1pq08.png

https://ithelp.ithome.com.tw/upload/images/20250918/20169144vhLzMbOF8f.png

https://ithelp.ithome.com.tw/upload/images/20250918/20169144lKKrdlNyxC.png

4) 常見問題與排查

  • 沒看到重複執行?
    一開始所撰寫的程式碼無法執行自動跳出不一樣隨機的內容,因此修改程式碼解決此為題
    原程式碼:
// 隨機版:每次從陣列隨機挑一句
const messages = [
  "📢 每日提醒:記得喝水 💧",
  "📢 每日提醒:起來伸展一下 🧘",
  "📢 每日提醒:保持專注 🔥",
  "📢 每日提醒:休息眼睛 20/20/20 👀",
  "📢 每日提醒:深呼吸放鬆 🌬️"
];

const randomMsg = messages[Math.floor(Math.random() * messages.length)];
return [{ json: { message: randomMsg } }];

更新後程式碼:(儘管只按執行一次自動提醒,也會有不同內容呈現)

// 提醒訊息池
const messages = [
  "📢 每日提醒:記得喝水 💧",
  "📢 每日提醒:起來伸展一下 🧘",
  "📢 每日提醒:保持專注 🔥",
  "📢 每日提醒:休息眼睛 20/20/20 👀",
  "📢 每日提醒:深呼吸放鬆 🌬️"
];

// 隨機取一則訊息
const randomMsg = messages[Math.floor(Math.random() * messages.length)];

// 加上時間戳記,方便確認每次觸發真的不同
return [{
  json: {
    message: randomMsg,
    timestamp: new Date().toISOString()
  }
}];

上一篇
Day5:JSON 資料流 HTTP → Console 資料傳遞
下一篇
Day7: Email 節點串接 —自動寄信給自己📩
系列文
Mac 環境 n8n 30 天學習計畫8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言