Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
這篇帶你用 Google Apps Script(GAS)串接 Google Gemini AI,做出一個真正能用的自動化:只要有人填你的 Google 表單,系統就自動用 Gemini 判斷這則需求屬於哪一類、生成一封客製化的確認信、寄給對方,並把狀態寫回試算表——全程不用人手。
下面一步一步來,每一步都會說清楚在哪裡點、貼什麼程式碼、容易卡在哪。
很多公司每天收到大量表單詢問(報價、技術支援、合作…),小編要一封一封看、手動分類、再打字回信,既慢又容易漏。這正是最適合自動化的工作:規則清楚、頻率高、容易漏。
傳統 GAS 只能做「固定範本」的回信;但加入 Gemini 之後,AI 能「讀懂」每則需求、自動分類、還能寫出像人寫的客製回覆。這就是 Workspace+GAS+Gemini 的威力:把判斷與寫作也交給流程。
動作用 Google Forms 做表單(姓名、Email、需求三題),到「回覆」分頁點試算表圖示,建立連結的 Google Sheets
常見地雷欄位名稱之後程式會用到,先取好中文名(姓名、Email、需求),日後別隨意改名
動作到 Google AI Studio 登入,建立一把 API key,先複製起來
常見地雷金鑰等於密碼,絕不能貼在程式碼、公開分享或截圖外流
動作在剛剛那份試算表,點「擴充功能 → Apps Script」,會開啟雲端程式碼編輯器
常見地雷從試算表開的是「綁定型」腳本,取得目前檔案最方便
動作左側「專案設定 → 指令碼屬性」→ 新增一組:屬性 GEMINI_API_KEY,值貼上你的金鑰
常見地雷一定要用 PropertiesService 讀取,不要把金鑰寫死在程式裡
動作把下方「呼叫 Gemini」的程式碼貼到編輯器,它負責把你的提示送給 Gemini、拿回文字
常見地雷模型名稱(gemini-2.5-flash)之後可能更新,以 Gemini 官方文件為準
動作貼入主流程:讀 e.namedValues、用 Gemini 分類與生成回信、GmailApp 寄出、把狀態寫回試算表
常見地雷欄位名稱(姓名/Email/需求)要和你表單完全一致,否則抓不到值
動作左側「觸發器」→ 新增觸發器 → 函式選 onFormSubmit、事件來源選「試算表」、事件類型選「表單提交時」
常見地雷一定要用「可安裝觸發器」,簡易觸發器不能用 UrlFetch 呼叫外部 API 與寄信
動作自己填一次表單,檢查有沒有收到分類正確的確認信、試算表狀態欄有沒有寫入
常見地雷第一次執行會跳授權畫面,按「允許」;若失敗,點「執行紀錄」看錯在哪一行
其中最關鍵的兩段程式碼如下,直接複製貼上即可(記得金鑰是用屬性讀取,不是寫死):
// 呼叫 Gemini:金鑰放在「指令碼屬性」,不要寫死在程式裡
function askGemini(prompt) {
const key = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const url = 'https://generativelanguage.googleapis.com/v1beta/models/'
+ 'gemini-2.5-flash:generateContent?key=' + key;
const payload = { contents: [{ parts: [{ text: prompt }] }] };
const res = UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
const data = JSON.parse(res.getContentText());
return data.candidates[0].content.parts[0].text.trim();
}
// 表單送出時自動執行:分類 + 生成回信 + 寄出 + 記錄狀態
function onFormSubmit(e) {
const v = e.namedValues; // 依題目名稱取答案
const name = v['姓名'][0];
const email = v['Email'][0];
const msg = v['需求'][0];
// 1) 用 Gemini 判斷分類
const category = askGemini(
'請把以下需求歸類為「報價」「技術支援」「合作邀約」其中一種,只回類別四個字內:\n' + msg
);
// 2) 用 Gemini 生成客製回信
const reply = askGemini(
'你是客服。用親切專業、100 字內的語氣,回覆客戶「' + name + '」關於以下需求的確認信:\n' + msg
);
// 3) 寄出確認信
GmailApp.sendEmail(email, '我們已收到您的「' + category + '」需求', reply);
// 4) 把狀態寫回試算表最後一欄
const sheet = e.range.getSheet();
sheet.getRange(e.range.getRow(), sheet.getLastColumn() + 1)
.setValue(category + '|已於 ' + new Date().toLocaleString() + ' 回覆');
}
若你看不到上圖,純文字流程等價為:表單送出(觸發)→ 讀取整列資料 → Gemini 分類 → Gemini 生成回信 → Gmail 寄出 → 試算表記錄狀態與時間。
可以。這篇的程式碼可以直接複製貼上,你只要照步驟把它們放對位置、設定好金鑰與觸發器即可。重點是理解「表單送出 → 讀資料 → Gemini 判斷 → 寄信 → 記錄」這個流程,程式細節邊做邊懂。跟著做大約 20 分鐘就能跑起來。
到 Google AI Studio(ai.google.dev)用 Google 帳號登入,即可建立 API key。Gemini 提供免費額度,個人與小量測試通常免費就夠用;用量大時才需付費。實際額度與計費以 Google 官方頁面為準,建議先用免費額度把流程跑通。
因為金鑰等於密碼,寫死在程式碼裡一旦外流(分享專案、截圖、複製給別人),別人就能用你的額度、甚至產生費用。正確做法是存到「指令碼屬性(Script Properties)」,程式用 PropertiesService 讀取,既安全又方便更換。
簡易觸發器(如 onEdit)設定簡單但權限受限,不能呼叫外部 API 或寄信;可安裝觸發器可使用需授權的服務、事件類型也更多。這個案例要呼叫 Gemini(外部 API)並用 Gmail 寄信,所以必須用「可安裝觸發器」,並選「表單提交時」。
八成是提示詞(prompt)不夠明確。把可選類別列清楚、要求「只回類別、限四個字內」,並可給一兩個範例,輸出就會穩定很多。若需求本身模糊,也可以讓 Gemini 回「其他」再由人工判斷,避免硬分錯類。
你送給 Gemini 的是表單內容,建議只送必要欄位、避免夾帶身分證號等高度機敏資料;對外或多人使用前,先確認腳本用誰的身分執行、會碰到哪些資料。企業導入時應把「哪些欄位可送 AI、哪些要遮蔽」列入規劃,這是資料治理的一環。
單筆處理通常幾秒內完成。量大時建議:在程式加上 try/catch,失敗時自動寄信通知你;並注意 Gemini 與 Apps Script 的用量配額。若尖峰量很大,可改成「定時批次」處理,一次讀多列再統一呼叫,兼顧速度與配額。
很多。例如:依分類自動貼標籤或轉寄給對應同事、把重要需求自動建立 Calendar 提醒、用 Gemini 生成待辦摘要、或把統計寫進報表。這個「表單 → AI → 動作」的骨架,換個提示詞與動作,就能長出各種自動化。
最大差別是「自動、可重複、留紀錄」。手動複製貼到 ChatGPT 每次都要人做、容易漏、也沒紀錄;用 GAS+Gemini 串成流程後,表單一送出就全自動跑完並寫回狀態,適合每天穩定發生的工作,把人力留給真正需要判斷的例外。
建議往「郵件自動摘要與分類」「試算表自訂 =GEMINI() 函式」「文件自動生成」延伸——它們都用同一套骨架(觸發 → 讀取 → Gemini → 動作 → 紀錄)。把這個心智模型練熟,你就能把公司裡各種重複工作一個個自動化。想要系統化、少走冤枉路,也可以參加賴家榮的企業內訓。
恭喜!你剛做出一個「會判斷、會寫信」的自動化。把這個骨架換個提示詞與動作,就能延伸出無數應用。想讓團隊系統化學會 Workspace+GAS+Gemini,把重複工作一次自動化,歡迎往下走:
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Google Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels