🏫 太平新光分校

後台管理系統 · 請登入

儀表板

in xinguang-admin/index.html ══════════════════════════════════════════════════════════════════ -->

📖 操作說明書 — 太平新光分校 系統架構文件

太平新光分校 系統架構文件
English School — 太平新光分校(台中) · 文件版本:2025年 · 語言:繁體中文
找不到符合「」的內容,請嘗試其他關鍵字。

、系統總覽

1.1 架構流程圖

┌─────────────────────────────────────────────────────────────────────────────┐
│                          使用者/家長瀏覽器                                    │
└───────────────────────────────┬─────────────────────────────────────────────┘
                                │
         ┌──────────────────────┴──────────────────────┐
         ▼                                             ▼
┌─────────────────────┐                   ┌────────────────────────┐
│  主網站              │                   │  後台管理面板            │
│  taipingxinguang.org│                   │  admin.taipingxinguang │
│  Railway (nginx)    │                   │  .org                  │
│  GitHub: xinguang-  │                   │  Cloudflare Pages      │
│  website (index.html│                   │  GitHub: xinguang-admin│
└────────┬────────────┘                   └──────────┬─────────────┘
         │ POST Webhook                              │ CSV Sync
         │ (5種表單)                                  │
         ▼                                           ▼
┌──────────────────────────────────────────────────────────────────┐
│                     n8n Cloud                                     │
│              miyutang.app.n8n.cloud                               │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐              │
│  │ WF01:即時表單 │ │ WF02:每日提醒 │ │ WF04:LINE    │              │
│  │ 通知          │ │ (07:00 TW)   │ │ 好友收集      │              │
│  └──────┬───────┘ └──────┬───────┘ └──────┬───────┘              │
│         │                │                │                       │
│  ┌──────────────┐                                                 │
│  │ WF05:預約    │                                                  │
│  │ 異動/取消    │                                                   │
│  └──────┬───────┘                                                 │
└─────────┼──────────────────────────────────────────────────────┬──┘
          │                                                       │
     ┌────▼─────────────────────────────────────┐      ┌─────────▼────────┐
     │                                           │      │  Google Sheets   │
     │   ┌──────────────┐   ┌─────────────────┐ │      │  太平新光招生名單  │
     │   │   LINE       │   │     Gmail        │ │      │  (6 個分頁)       │
     │   │   官方帳號    │   │  eagle@taiping  │ │      │  - 問課諮詢       │
     │   │   @143qbory  │   │  xinguang.com   │ │      │  - 預約紀錄       │
     │   │   (5個群組)   │   └─────────────────┘ │      │  - 夏令營報名     │
     │   └──────┬───────┘                        │      │  - 正式註冊       │
     │          │                                │      │  - LINE好友       │
     │   ┌──────▼───────┐                        │      └──────────────────┘
     │   │  BotBonnie   │                        │
     │   │  chatbot     │                        │
     │   │  (@143qbory) │                        │
     │   └──────────────┘                        │
     └───────────────────────────────────────────┘

┌───────────────────────────────────────────────────┐
│               GitHub Repos (miyutang1980)          │
│  - xinguang-website  (主網站 index.html)            │
│  - xinguang-admin    (後台面板 index.html)          │
│  - xinguang-n8n      (n8n workflow JSONs + guides)  │
└───────────────────────────────────────────────────┘

┌───────────────────────────────────────────────────┐
│                  Cloudflare DNS                    │
│  taipingxinguang.org → CNAME → Railway            │
│  admin.taipingxinguang.org → CNAME → CF Pages     │
└───────────────────────────────────────────────────┘

1.2 系統元件一覽

元件平台說明
主網站Railway (nginx)家長瀏覽 & 表單填寫
後台面板Cloudflare Pages管理人員查看資料
自動化流程n8n Cloud5個 Workflow,處理通知、提醒、異動
資料存儲Google Sheets招生名單(6個分頁)
即時通訊LINE Official Account5個群組通知
聊天機器人BotBonnieLINE 自動回覆 & 好友分流
電子郵件Gmaileagle@taipingxinguang.com
原始碼管理GitHub3個 Repo
DNS & CDNCloudflareDNS 管理 & 安全代理

、主網站 (taipingxinguang.org)

2.1 部署架構

  • 平台:Railway,使用 nginx 靜態伺服器
  • GitHub Repomiyutang1980/xinguang-website
  • 自動部署:Push 到 main 分支 → Railway 自動重新部署
  • 檔案結構:單一 index.html(全部功能集成於一個檔案中)
  • 域名設定
    • taipingxinguang.org → CNAME → 4qihqgoo.up.railway.app
    • 透過 Cloudflare DNS Proxy(橘色雲朵)代理,啟用 SSL 與 DDoS 防護

2.2 表單流程(5種表單)

表單一:問課諮詢

欄位

欄位名稱說明
家長姓名必填
電話必填
Email選填
LINE ID選填
孩子姓名必填
年級必填
就讀學校必填
班級選填
幼稚園升小一學校若適用
想了解的班型必填
問題選填,自由輸入

送出流程

家長填寫 → POST /webhook/xinguang-form
    → n8n WF01
        ├→ Google Sheets(寫入「問課諮詢」分頁)
        ├→ LINE Flex Message(綠色卡片)推播至「招生名單群」
        └→ Email 寄至 eagle@taipingxinguang.com

表單二:預約參訪/檢測

欄位

欄位名稱說明
家長姓名必填
電話必填
孩子姓名必填
類型參訪 / 檢測 / 體驗(三選一)
日期必填,日期選擇器
時段必填,時段選擇器
⚠️ 前置條件(Guard Check):必須先完成「問課諮詢」表單,才能開放此表單。

送出流程

家長填寫 → Guard Check(已問課?)
    ├─ 否 → 提示先填問課諮詢
    └─ 是 → POST /webhook/xinguang-form
        → n8n WF01
            ├→ Google Sheets(寫入「預約紀錄」分頁)
            ├→ LINE Flex Message(橘色卡片)推播至「招生名單群」
            └→ Email 寄至 eagle@taipingxinguang.com

表單三:預約體驗課

與「預約參訪/檢測」流程類似,前置條件為:必須先通過檢測(Assessment Guard)。

送出流程

家長填寫 → Assessment Guard(已完成檢測?)
    ├─ 否 → 提示先預約檢測
    └─ 是 → POST /webhook/xinguang-form
        → n8n WF01
            ├→ Google Sheets(寫入「預約紀錄」分頁,類型=體驗課)
            ├→ LINE Flex Message(橘色卡片)推播至「招生名單群」
            └→ Email 寄至 eagle@taipingxinguang.com

表單四:夏令營報名

欄位

欄位名稱說明
家長姓名必填
電話必填
LINE ID必填
孩子列表可新增多位孩子,各自選擇七月/八月日期
制服尺寸每位孩子各自選擇
飲食需求普通 / 素食等

85折優惠邏輯

條件(所有條件均需同時成立):
1. 同一位孩子(不可跨孩子合計)七月 + 八月報名天數 ≥ 20 天
2. 報名日期在 5 月 31 日前

顯示文字:「夏令營專屬優惠」(不顯示「85折」字樣)
⚠️ 注意:折扣計算以「單一孩子」為單位,不能將多個孩子的天數合計。

送出流程

家長填寫 → 折扣邏輯判斷
    → POST /webhook/xinguang-form
        → n8n WF01
            ├→ Google Sheets(寫入「夏令營報名」分頁)
            ├→ LINE Flex Message(綠色帳篷卡片 + 紅色開單卡片)推播至「招生名單群」
            └→ Email 寄至 eagle@taipingxinguang.com

表單五:正式註冊

欄位

欄位名稱說明
家長姓名必填
電話必填
Email必填
學生姓名必填
年級必填
班型必填(依分班結果)
分班結果必填(填入檢測後通知的結果)
附加服務多選,如課後照顧、接送等
⚠️ 前置條件(Assessment Validation Chain):必須完整通過:問課諮詢 → 預約 → 檢測 → 體驗課,才能開放正式註冊。

送出流程

家長填寫 → Assessment Validation Chain(完整驗證)
    ├─ 未完成 → 提示尚未完成前置流程
    └─ 完成 → POST /webhook/xinguang-form
        → n8n WF01
            ├→ Google Sheets(寫入「正式註冊」分頁)
            ├→ LINE Flex Message(紅色開單卡片)推播至「招生名單群」
            └→ Email 寄至 eagle@taipingxinguang.com

2.3 預約異動/取消功能

透過主網站彈出的 Modal 視窗進行操作。

取消預約流程

點擊「取消預約」→ Modal 彈出
    → 填寫取消原因
    → POST /webhook/booking-change
        → n8n WF05
            ├→ Google Sheets(更新「預約紀錄」分頁狀態欄為「已取消」)
            ├→ LINE 紅色 Flex 卡片(推播至「招生名單群」)
            ├→ Email 通知 eagle@taipingxinguang.com
            └→ 查詢家長 LINE ID → 推播家長個人通知

取消後,網頁顯示重新預約按鈕:

  • 「預約參訪」
  • 「預約檢測」
  • 「預約體驗課」

改期預約流程

點擊「更改預約」→ Modal 彈出
    → 日期選擇器 + 時段選擇器 + 類型選擇
    → POST /webhook/booking-change
        → n8n WF05
            ├→ Google Sheets(更新「預約紀錄」分頁狀態欄為「已改期」)
            ├→ LINE 橘色 Flex 卡片(推播至「招生名單群」)
            ├→ Email 通知 eagle@taipingxinguang.com
            └→ 查詢家長 LINE ID → 推播家長個人通知

2.4 LINE 好友引導

  • 形式:網頁底部浮動綠色橫幅(Floating Banner)
  • 觸發條件:頁面滾動超過 50% 或完成任何表單送出後
  • 連結https://lin.ee/o1wzF7a(LINE Official Account 加入好友連結)

2.5 特殊技術細節

時區與星期計算

  • 方法:自定義函數 getDowFromDateStr() 使用 Sakamoto 算法計算星期幾
  • 原因:避免使用 JS Date.getDay() 在不同時區環境(Railway 伺服器位於 UTC)下產生日期偏移問題
  • 適用範圍:預約日期的星期顯示、營業日判斷

Webhook 端點

用途URL
5種表單送出https://miyutang.app.n8n.cloud/webhook/xinguang-form
預約異動/取消https://miyutang.app.n8n.cloud/webhook/booking-change

其他技術注意事項

  • Admin 模式:在 URL 加入 ?admin=xinguang2026 即可進入管理模式(顯示隱藏功能)
  • Fetch 設定:所有 Webhook 呼叫使用 mode: 'no-cors'(避免跨域問題,無法讀取回應內容)

、後台管理面板 (admin.taipingxinguang.org)

3.1 部署架構

  • 平台:Cloudflare Pages
  • Project 名稱xinguang-admin
  • GitHub Repomiyutang1980/xinguang-admin
  • 自動部署:Push 到 main 分支 → Cloudflare Pages 自動部署
  • 域名admin.taipingxinguang.org → CNAME → xinguang-admin.pages.dev(Cloudflare Proxy)
  • 檔案結構:單一 index.html

3.2 登入帳號

角色帳號密碼
管理員adminxinguang2026
教師teacherteacher123

3.3 功能說明

功能說明
查看問課諮詢列出所有問課記錄
查看預約紀錄列出所有預約,包含狀態
查看夏令營報名列出所有夏令營報名
查看正式註冊列出所有正式學員資料
同步 Google Sheets點擊「同步」按鈕,執行 syncFromSheets() 函數

3.4 資料讀取方式

  • 透過 Google Sheets 公開發布的 CSV URL 讀取資料
  • 格式:https://docs.google.com/spreadsheets/d/{SHEET_ID}/gviz/tq?tqx=out:csv&sheet={TAB_NAME}
  • Sheet ID:1Q3lZwp8BiA6dcz5Bu_WLOitn-a_4O1Z0jDQoG6VMC7w
⚠️ 部署注意:Cloudflare Pages Preview 環境中 localStorage 被攔截,需設定 should_validate: false

、n8n Cloud Workflows

  • 平台:n8n Cloud
  • 基礎 URLmiyutang.app.n8n.cloud
⚠️ 重要:n8n Cloud 不支援 $env 環境變數,所有 Token、ID、URL 必須直接硬寫在節點設定中。
⚠️ Webhook Body 讀取:資料位於 $input.first().json.body不是 $input.first().json 直接讀取。

4.1 Workflow 01:太平新光 — 即時表單通知

觸發方式:Webhook POST /xinguang-form

流程圖

Webhook(接收表單)
    │
    ▼
回應 200 OK(立即回應,避免前端等待)
    │
    ▼
判斷表單類型(Switch 節點)
    │
    ├── 問課諮詢
    │       → Code 節點(組合訊息)
    │           ├→ LINE Flex Message(綠色卡片)→ api.line.me
    │           ├→ Google Sheets(寫入「問課諮詢」分頁)
    │           └→ Gmail(寄信至 eagle@taipingxinguang.com)
    │
    ├── 預約參訪/檢測/體驗
    │       → Code 節點(組合訊息)
    │           ├→ LINE Flex Message(橘色卡片)→ api.line.me
    │           ├→ Google Sheets(寫入「預約紀錄」分頁)
    │           └→ Gmail
    │
    ├── 夏令營報名
    │       → Code 節點(組合訊息)
    │           ├→ LINE Flex Message(綠色帳篷卡片 + 紅色開單卡片)→ api.line.me
    │           ├→ Google Sheets(寫入「夏令營報名」分頁)
    │           └→ Gmail
    │
    └── 正式註冊
            → Code 節點(組合訊息)
                ├→ LINE Flex Message(紅色開單卡片)→ api.line.me
                ├→ Google Sheets(寫入「正式註冊」分頁)
                └→ Gmail

技術細節

項目說明
Code 節點資料來源$input.first().json.body
Sheets 對應模式Map Automatically
Sheets 分頁名稱動態讀取 {{ $json._sheetName }}
LINE API 端點https://api.line.me/v2/bot/message/push
LINE 推播群組C48adfca649b3d5e76f137d582b94fc6b(招生名單群)
Email 認證Gmail OAuth2

4.2 Workflow 02:太平新光 — 每日預約提醒

觸發方式:Schedule(Cron)

Cron 設定0 23 * * *(UTC)= 台灣時間 早上 7:00

狀態:Active(啟用中)

流程圖

排程觸發(每天台灣 07:00)
    │
    ▼
讀取 Google Sheets(「預約紀錄」分頁)
    │
    ▼
Filter 節點(篩選今天 & 明天的預約)
    │
    ▼
組合提醒訊息(Code 節點)
    │
    ▼
LINE 推播提醒至指定群組

用途:每日早晨提醒工作人員當天與隔天的預約行程,避免漏接。

4.3 Workflow 04:LINE 好友收集

觸發方式:Webhook POST /line-friend

流程圖

Webhook(接收 LINE 好友資訊)
    │
    ▼
回應 200 OK
    │
    ▼
Google Sheets(Append 新行至「LINE好友」分頁)

使用方式

  • 由 BotBonnie Webhook 觸發(未來功能)
  • 或手動匯入 LINE 好友名單

4.4 Workflow 05:太平新光 — 預約異動/取消

觸發方式:Webhook POST /booking-change

流程圖

Webhook(接收異動/取消請求)
    │
    ▼
回應 200 OK
    │
    ▼
Code 節點(組合訊息,判斷是「取消」還是「改期」)
    │
    ├─ 取消 → LINE 紅色 Flex 卡片推播(招生名單群)
    │
    ├─ 改期 → LINE 橘色 Flex 卡片推播(招生名單群)
    │
    ├─ Gmail 寄信通知
    │
    ├─ 更新 Google Sheets(「預約紀錄」分頁)
    │       Append or Update Row,以「家長」欄位為比對鍵
    │
    └─ 查詢家長 LINE ID(從 Sheets「LINE好友」分頁)
            │
            ▼
        組合家長個人通知訊息
            │
            ▼
        LINE 推播至家長個人

4.5 Workflow:抓 LINE 群組 ID(工具型 Workflow)

用途:取得 LINE 群組的 Group ID(設定新群組時使用)

狀態:可停用(日常不需要常駐啟動)

、Google Sheets

5.1 文件資訊

項目
文件名稱太平新光招生名單
文件 ID1Q3lZwp8BiA6dcz5Bu_WLOitn-a_4O1Z0jDQoG6VMC7w
共用設定需設定「知道連結的人可以查看」(供 Admin 面板讀取 CSV)

5.2 分頁結構與欄位定義

分頁一:問課諮詢

欄位說明
時間自動填入(n8n 時間戳記)
家長家長姓名
電話聯絡電話
Email電子郵件
LINELINE ID
孩子孩子姓名
班型想了解的班型
問題家長填寫的問題
狀態待跟進 / 已聯繫 / 已預約 / 已成交

分頁二:預約紀錄

欄位說明
時間自動填入
家長家長姓名
電話聯絡電話
孩子孩子姓名
類型參訪 / 檢測 / 體驗
日期預約日期
時段預約時段
狀態待確認 / 已確認 / 已完成 / 已取消 / 已改期

分頁三:夏令營報名

欄位說明
時間自動填入
家長家長姓名
電話聯絡電話
LINELINE ID
孩子孩子姓名(含多位)
課程報名的七月/八月日期組合
飲食飲食需求
狀態待確認 / 已確認 / 已繳費

分頁四:正式註冊

欄位說明
時間自動填入
家長家長姓名
電話聯絡電話
Email電子郵件
學生學生姓名
年級就讀年級
班型報名班型
分班分班測驗結果
附加服務選購的附加服務
狀態待繳費 / 已繳費 / 已報到

分頁五:LINE好友

欄位說明
userIdLINE 使用者 ID
displayNameLINE 顯示名稱
電話電話(若已提供)
加入時間加入官方帳號的時間
來源從哪個管道加入

、LINE 系統

6.1 官方帳號資訊

項目
帳號 ID@143qbory
加入好友連結https://lin.ee/o1wzF7a
Channel Access TokenVZXYewFJ392pah0clhor2D/z1vVdw/e/MY8p3YpcJjirl3rsYcC1txyAacUXbaX5PW4Xr5dQqPgbzIzBLFQoafCXNkP0fR80KVSgI4hrlnun/3GMuvEaScOLdJ4cggujFr7CZ8g6EcGH9mxCEtE1VQdB04t89/1O/w1cDnyilFU=

6.2 五個群組

群組名稱群組 ID用途
招生名單群C48adfca649b3d5e76f137d582b94fc6b新客諮詢、預約、報名通知
營運公告群Cad54d7e53d732fbf9f08124dd7a809e6全體員工公告
教學公告群C4fefb574f0948004d9b5d000c269e174教學團隊內部通知
行銷內容群C25aed83efb5d15a490bf1c0cc0789edd行銷內容討論與分發
老闆戰情群Cd955a82c2f6e92b97def5b5875464890老闆 + 核心幹部

6.3 Flex Message 卡片類型

n8n WF01 依據表單類型,推播不同顏色的 Flex Message 卡片。

卡片名稱主色觸發時機推播群組
問課諮詢卡🟢 綠色家長送出問課諮詢招生名單群
預約通知卡🟠 橘色家長送出預約(參訪/檢測/體驗)招生名單群
夏令營帳篷卡🟢 綠色帳篷夏令營報名送出招生名單群
夏令營開單卡🔴 紅色夏令營報名送出(搭配帳篷卡)招生名單群
正式註冊開單卡🔴 紅色正式註冊送出招生名單群
取消預約卡🔴 紅色預約取消招生名單群
改期通知卡🟠 橘色預約改期招生名單群

6.4 BotBonnie 整合

項目
BotBonnie Webhook URLhttps://webhook.botbonnie.com/v1/line/143qbory
⚠️ 絕對不可覆蓋此 Webhook URL。LINE 官方帳號的 Webhook URL 必須保持指向 BotBonnie,否則所有自動回覆功能將失效。

BotBonnie 歡迎流程

新朋友加入 @143qbory
    │
    ▼
歡迎訊息(觸發分流)
    │
    ├── 在校生家長
    │       → 顯示在校家長專屬選單
    │           - 查詢課表
    │           - 聯繫老師
    │           - 繳費資訊
    │
    └── 非本校生家長
            → 顯示招生選單
                - 了解課程
                - 預約參訪
                - 加入問課諮詢

開通回覆模組

  • 觸發關鍵字1
  • 功能:家長輸入「1」後,觸發「開通回覆」模組(回覆特定說明或連結)

、GitHub Repos

Repo 名稱GitHub 路徑內容說明
主網站miyutang1980/xinguang-website主網站原始碼(index.html),含所有5種表單、Modal、浮動橫幅
後台面板miyutang1980/xinguang-admin後台管理面板原始碼(index.html),含登入、資料瀏覽、Sheets 同步
n8n 備份miyutang1980/xinguang-n8n所有 n8n Workflow 的 JSON 匯出檔案 + 操作說明文件

自動部署流程

開發者 push to main
    │
    ├── xinguang-website → Railway 自動重新部署(nginx)
    └── xinguang-admin   → Cloudflare Pages 自動重新部署

、DNS 與域名設定 (Cloudflare)

8.1 DNS 記錄

記錄名稱類型目標值Proxy 狀態
taipingxinguang.orgCNAME4qihqgoo.up.railway.app✅ Proxied(橘色雲朵)
adminCNAMExinguang-admin.pages.dev✅ Proxied(橘色雲朵)
_railway-verifyTXTrailway-verify=7f6f…

8.2 Cloudflare 設定說明

  • Proxy 模式(橘色雲朵):流量透過 Cloudflare CDN,提供 SSL 憑證、DDoS 防護、快取功能
  • Railway 驗證_railway-verify TXT 記錄用於 Railway 平台驗證自訂域名所有權
  • SSL 模式:建議設定為 Full (Strict) 確保端對端加密

、帳號密碼整理

服務帳號密碼/Token說明
主網站 Admin 模式?admin=xinguang2026URL Query Param
後台管理面板(管理員)adminxinguang2026網頁登入
後台管理面板(教師)teacherteacher123網頁登入
n8n Cloudmiyutang.app.n8n.cloud(使用者帳號)
LINE Channel Access Token(見第六章 6.1)用於 LINE API 推播
GitHubmiyutang1980(使用者帳號)
Google SheetsGoogle OAuth2透過 n8n Gmail OAuth2 節點
Gmail(接收通知)eagle@taipingxinguang.comGmail OAuth2 by n8n
⚠️ 安全提示:本文件包含敏感 Token 與密碼,請妥善保管,不可上傳至公開 GitHub Repo 或分享給不相關人員。

、注意事項與常見問題

10.1 技術限制

項目說明
n8n $env 變數n8n Cloud 不支援環境變數($env.XXX),所有 Token、ID、URL 必須直接硬寫在各節點設定中
Webhook Body 路徑表單資料在 $input.first().json.body不是 $input.first().json(因為 Webhook 節點包了一層 body
Cloudflare Pages 上傳部署至 Cloudflare Pages 時,HTML/JS/CSS 檔案必須放在資料夾根目錄,否則無法正確識別
Admin 面板部署驗證deploy_website 使用 should_validate: false,因為 Cloudflare Pages Preview 環境中 localStorage 被攔截
BotBonnie WebhookLINE 官方帳號的 Webhook URL 不可覆蓋,必須保持 https://webhook.botbonnie.com/v1/line/143qbory
夏令營 85 折計算折扣以單一孩子為計算單位,不能將多個孩子的天數合計;網站不顯示「85折」,顯示為「夏令營專屬優惠」
Fetch CORS 設定所有 Webhook 呼叫使用 mode: 'no-cors'無法讀取回應內容(只能確認送出,不確認成功)

10.2 日期與時區

項目說明
伺服器時區Railway 伺服器位於 UTC
n8n Cloud 時區預設 UTC
台灣時間UTC+8(需在顯示時加 8 小時)
星期計算使用 getDowFromDateStr() Sakamoto 算法,不使用 new Date().getDay()
每日提醒 Cron0 23 * * *(UTC)= 台灣時間 07:00

10.3 表單流程驗證鏈

為確保家長完整走過招生流程,各表單有嚴格的前置條件:

問課諮詢(無前置條件)
    ↓
預約參訪/檢測(需先完成問課諮詢)
    ↓
預約體驗課(需先完成檢測)
    ↓
正式註冊(需完整通過上述所有步驟)

夏令營報名為獨立流程,不受上述驗證鏈限制。

10.4 維護與擴充指南

  1. 新增 LINE 群組通知:在 n8n WF01 的 LINE HTTP Request 節點中,更新 to 欄位為新群組 ID
  2. 新增表單欄位:同時更新 index.html(前端顯示)、n8n Code 節點(訊息組合)、Google Sheets(新增欄位)
  3. 新增 n8n Workflow:匯出 JSON 後,存入 miyutang1980/xinguang-n8n Repo 備份
  4. 更換 LINE Channel Token:需同時更新 n8n 所有 Workflow 中使用 LINE HTTP Request 的節點(Token 是硬寫的)
  5. 夏令營年份更新:每年需更新 index.html 中的報名日期範圍與優惠截止日(5/31 前)
文件最後更新:2025年  ·  適用系統版本:太平新光分校招生系統 v1.0