一、這一頁要完成什麼
你會做出一套可以自己帶走修改的活動管理流程。完成後,你應該能從一筆活動資料出發,整理出可追蹤、可回顧、可交接的行政專案資料包。
活動建案表
集中活動名稱、日期、地點、對象、承辦人、經費、交通與成果需求。
活動專案資料夾
用固定資料夾收公文、計畫、通知、表單、照片、成果與檢討資料。
專案記錄文件
保存活動背景、重要決定、待確認事項與承辦交接摘要。
待辦追蹤表
整理任務、負責人、期限、狀態、提醒與追蹤紀錄。
成果檢核表
活動前先定義活動後要收哪些成果,避免結案時資料散落。
可選草稿
通知單、導師提醒、風險檢查表都只是草稿,最後仍由承辦人修正使用。
二、先理解:活動行政不是只有建立資料夾
建立資料夾只是第一步。真正有用的行政工作流,應該能把收案、分工、追蹤、通知、回報、成果整理與下次交接串起來。
| 行政階段 | 工作流要留下什麼 | 學員要確認什麼 |
|---|---|---|
| 收案 | 活動建案表、原始公文、附件與基本資料。 | 活動日期、對象、經費、承辦窗口是否清楚。 |
| 分工 | 待辦追蹤表、主責人、協作人員與期限。 | 每件任務是否有人負責,期限是否合理。 |
| 追蹤 | 任務狀態、提醒節點與待確認事項。 | 哪些任務卡住,哪些需要主管或跨處室確認。 |
| 通知 | 家長通知、導師提醒、校內公告與寄送紀錄。 | 正式內容是否核定,敏感資訊是否正確。 |
| 回報 | 活動照片、簽到、回饋、成果資料與問題紀錄。 | 成果資料是否足以支撐報告與交接。 |
| 成果整理 | 成果檢核表、NotebookLM / Gemini 可用資料包與結案摘要。 | 哪些資料可上傳、哪些資料要去識別化。 |
| 下次交接 | 承辦交接摘要、下次辦理建議與流程修正紀錄。 | 下一位承辦人是否能接著做。 |
工作流負責把行政流程固定下來;AI 只協助產生草稿與提醒缺漏,最後仍由承辦人確認。
三、學員操作流程
請依序操作,不要一開始就跳到 API。一般學員先用提示詞模式就足夠,不需要 API key。
- 複製已綁定 Apps Script 的 Google Sheet 範本。
- 開啟副本並完成授權。
- 從選單建立活動專案中樞。
- 填寫或匯入活動建案資料。
- 一鍵產生專案資料包。
- 檢查待辦追蹤表與成果檢核表。
- 使用提示詞產生通知單、導師提醒或風險檢查草稿。
- 由承辦人修正、核定後,才正式使用文件。
四、基礎版與進階版差異
| 比較項目 | 基礎版 | 進階版 |
|---|---|---|
| 適用情境 | 單一活動,理解流程。 | 多活動集中管理,適合長期承辦與交接。 |
| 學習重點 | 知道活動如何形成資料夾、文件、表格與提醒。 | 知道多筆活動如何收案、追蹤、結案與累積組織記憶。 |
| 主要產物 | 一組活動資料包。 | 活動清單、活動建案表、批次資料包、追蹤欄位與交接資料。 |
| 承辦價值 | 能把一場活動辦理資料整理完整。 | 能讓多場活動用同一套方式管理,下一位承辦人也看得懂。 |
| AI 使用 | 可不用,也可用提示詞產生草稿。 | 仍以工作流為主;提示詞與 API 都只是輔助,不是差異重點。 |
五、三種使用層次
層次一:不使用 AI
只建立標準化工作流。你仍可以完成活動建案、資料夾、待辦追蹤、成果檢核與交接。
層次二:使用提示詞
用 Gemini 或 ChatGPT 產生通知單、導師提醒、風險檢查草稿,再由承辦人修正。
層次三:進階 API 串接
僅供能處理金鑰、權限、錯誤與資料安全者使用。一般學員不需要完成這一層。
六、進階中樞會產生什麼
進階中樞先建立活動專案必備的主資料夾、標準子資料夾與三個核心文件,再把 NotebookLM / Gemini 定位為成果整理與文件回顧工具。
七、可選用的草稿輔助提示詞
以下提示詞可以保留給學員使用,但每一份輸出都只是初稿。請先檢查資料是否可貼給外部工具,再由承辦人修正與核定。
活動建案檢查提示詞
請根據以下活動建案資料,協助我檢查這筆活動是否已具備可進入行政專案管理的基本資訊。
請用表格回答:
1. 目前已經清楚的資訊
2. 目前仍待確認的資訊
3. 最優先要確認的 5 件事
4. 可能造成行政風險的缺漏
5. 建議建立哪些 Google Workspace 文件、表單、資料夾或提醒
請注意:
- 不要自行編造不存在的日期、金額、地點或人員。
- 涉及學生個資、收費、保險、交通與安全者,請標示「待承辦人確認」。
活動建案資料:
(貼上活動名稱、日期、地點、參與對象、交通、保險、費用、承辦人、協辦人員等資料)
工作拆解輔助提示詞
請根據以下活動資料,協助我建立 WBS 工作拆解初稿。
請分成:
1. 活動規劃
2. 行政核准
3. 家長通知
4. 學生名冊
5. 交通與安全
6. 經費與核銷
7. 活動當天執行
8. 成果整理與結案
每一項請包含:
- 工作包名稱
- 具體任務
- 建議負責角色
- 建議完成時間
- 需要的文件或表單
- 是否需要 Calendar 提醒
- 哪些欄位需要承辦人確認
活動資料:
(貼上活動建案資料)
通知單草稿輔助提示詞
請根據以下活動資料,產出一份給家長的活動通知單草稿。
請注意:
1. 語氣正式、清楚、親切。
2. 日期、費用、集合時間若資料不足,請用【待確認】標示。
3. 涉及收費、保險、交通、安全者,請提醒承辦人正式確認。
4. 不要自行編造不存在的資料。
5. 請使用繁體中文。
6. 最後加上「承辦人確認事項」。
活動資料:
(貼上活動建案資料)
導師提醒草稿輔助提示詞
請根據以下活動資料,產出一份給導師的行前提醒草稿。
請分成:
1. 活動前一週
2. 活動前一天
3. 活動當天集合前
4. 活動進行中
5. 返校後
每一階段請列出導師需要提醒學生、檢查名冊、確認安全與回報的事項。
請使用清楚、條列、方便轉貼到校內群組的格式。
涉及學生安全、交通、保險、收費或正式公告內容,請標示「待承辦人確認」。
活動資料:
(貼上活動建案資料)
風險檢查輔助提示詞
請根據以下活動資料,協助我列出活動風險檢查初稿。
請分成:
1. 時程風險
2. 人員風險
3. 學生安全風險
4. 交通風險
5. 家長溝通風險
6. 經費核銷風險
7. 成果結案風險
每一項請列出:
- 風險內容
- 可能造成的問題
- 建議預防方式
- 建議新增的表單欄位
- 是否需要 Calendar 提醒
- 必須由承辦人確認的事項
活動資料:
(貼上活動建案資料)
八、成果整理與資料包
NotebookLM / Gemini 可以作為成果整理與文件回顧工具,協助你把公文、附件、會議紀錄、照片說明與成果資料整理成可詢問的專案知識庫。
以下是我建立的活動行政工作流。請協助我檢查它是否足以支撐一場國小活動的收案、分工、追蹤、通知、成果整理與交接。
請用表格回答:
1. 已經完整的部分
2. 可能缺漏的部分
3. 哪些缺漏會造成行政風險
4. 建議新增的表單欄位
5. 建議新增的文件範本
6. 建議新增的 Calendar 提醒
7. 哪些部分不能交給 AI,必須由承辦人確認
工作流資料如下:
(貼上表單欄位、資料夾架構、文件清單、提醒節點)
九、這些事情不能交給 AI 決定
重點是把行政流程標準化,不是把責任交給 AI。以下事項必須由承辦人、主管或校內正式程序確認。
| 不能交給 AI 決定的事項 | 為什麼必須由人確認 |
|---|---|
| 學生個資是否可以送出 | 涉及個資保護、資料最小化與校內資料使用規範。 |
| 收費金額是否正確 | 涉及家長權益、會計與核銷責任。 |
| 保險資料是否完整 | 涉及學生安全與活動風險承擔。 |
| 交通安全是否符合規定 | 涉及車輛、路線、集合、返校與緊急應變安排。 |
| 家長通知是否經正式核定 | 正式通知代表學校立場,不能只用草稿直接發出。 |
| 活動風險是否已由承辦人確認 | 工具只能提醒缺漏,實際風險要依學校現場判斷。 |
| 成果報告是否符合學校或主管機關要求 | 不同計畫、補助或主管機關要求不同,需承辦人核對。 |
十、附錄:進階使用者才需要看的 Gemini API 串接
以下範例示範從活動建案表讀取資料,呼叫 Gemini API,產生通知單草稿與風險檢查草稿。請注意:程式產出的內容仍是草稿,不可直接視為正式文件。
callGemini_ 函式
function callGemini_(prompt) {
const apiKey = PropertiesService
.getScriptProperties()
.getProperty('GEMINI_API_KEY');
if (!apiKey) {
throw new Error('尚未設定 GEMINI_API_KEY');
}
const model = 'gemini-2.5-flash';
const url = 'https://generativelanguage.googleapis.com/v1beta/models/'
+ model
+ ':generateContent?key='
+ apiKey;
const payload = {
contents: [
{
parts: [
{ text: prompt }
]
}
]
};
const options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(url, options);
const text = response.getContentText();
const data = JSON.parse(text);
if (!data.candidates || !data.candidates.length) {
throw new Error('Gemini API 未回傳有效內容:' + text);
}
return data.candidates[0].content.parts
.map(part => part.text || '')
.join('\n');
}
buildActivityPrompt_ 函式
function buildActivityPrompt_() {
const sheet = SpreadsheetApp.getActive().getSheetByName('活動建案表');
const values = sheet.getDataRange().getValues();
const lines = values.map(row => {
const field = row[0];
const value = row[1];
return field + ':' + value;
});
return lines.join('\n');
}
generateParentNoticeDraft 函式
function generateParentNoticeDraft() {
const activityData = buildActivityPrompt_();
const prompt = `
請根據以下活動資料,產出一份給家長的活動通知單草稿。
請注意:
1. 語氣正式、清楚、親切。
2. 日期、費用、集合時間若不足,請用【待確認】標示。
3. 涉及收費、保險、交通、安全者,請提醒承辦人正式確認。
4. 不要自行編造不存在的資料。
5. 請使用繁體中文。
6. 最後加上「承辦人確認事項」。
活動資料:
${activityData}
`;
const result = callGemini_(prompt);
const doc = DocumentApp.create('家長通知單草稿|待承辦人確認');
doc.getBody().appendParagraph(result);
SpreadsheetApp.getUi().alert('已產生通知單草稿,請承辦人確認後再使用:' + doc.getUrl());
}
generateRiskCheckDraft 函式
function generateRiskCheckDraft() {
const activityData = buildActivityPrompt_();
const prompt = `
請根據以下活動資料,產出風險檢查草稿。
請只回傳 JSON 陣列,不要加上 markdown,不要加說明文字。
JSON 格式如下:
[
{
"category": "時程風險",
"risk": "風險內容",
"impact": "可能造成的問題",
"action": "建議預防方式",
"field": "建議新增欄位",
"calendar": "是否需要提醒",
"humanCheck": "必須由承辦人確認的事項"
}
]
活動資料:
${activityData}
`;
const result = callGemini_(prompt);
const risks = JSON.parse(result);
const ss = SpreadsheetApp.getActive();
let sheet = ss.getSheetByName('風險檢查草稿');
if (!sheet) {
sheet = ss.insertSheet('風險檢查草稿');
}
sheet.clear();
sheet.appendRow([
'類別',
'風險內容',
'可能問題',
'建議預防方式',
'建議新增欄位',
'是否需要提醒',
'承辦人確認事項'
]);
risks.forEach(item => {
sheet.appendRow([
item.category,
item.risk,
item.impact,
item.action,
item.field,
item.calendar,
item.humanCheck
]);
});
}