人資與行政的噩夢:每個月一次的手工複製貼上地獄

如果你曾經在中小企業擔任過人資 (HR) 或行政助理,你一定對每個月初的「發薪日」感到既期待又怕受傷害。 期待的是自己可以領到薪水,害怕的是你必須要發薪資條給全公司 100 位員工。

傳統的做法是:打開一個 Word 檔,複製 A 員工的名字、底薪、獎金、勞健保扣款,貼上。然後把這個 Word 檔轉成 PDF。打開 Email,輸入 A 員工的信箱,附上 PDF,發送。 然後重複這個動作 100 次!如果中途複製貼上眼花貼錯了,把總經理的薪水寄給了工讀生,那可是會引發一場職場大地震的。

在 Vibe Coding 的世界裡,「只要是重複三次以上的動作,就應該交給機器人處理」。 今天,我們就要教你如何用一個按鈕,在 3 秒內自動寄出 100 封客製化的薪資通知信!


步驟一:準備你的 Google Sheet 資料庫

請打開一個空白的 Google Sheet,並建立一個名為「薪資表」的工作表。 在第一列 (A1 到 E1) 輸入以下標題:

  • A 欄:員工姓名 (Name)
  • B 欄:電子信箱 (Email)
  • C 欄:本月底薪 (Base Salary)
  • D 欄:本月獎金 (Bonus)
  • E 欄:已發送狀態 (Status)

接著,在下方填入幾筆你自己的信箱作為測試資料。


步驟二:Vibe Prompt 詠唱!一鍵群發腳本

這段程式碼的邏輯稍微複雜一點,因為我們希望:

  1. 每一封信件的內容都是「客製化」的(信件裡要有該員工的專屬姓名與金額)。
  2. 發送過的人,要在 E 欄標記為「已發送」,避免手滑點到兩次重複發送。

請打開 擴充功能 -> Apps Script,然後對 Cursor 下達這段專業咒語:

【自動群發薪資條 Vibe Prompt】 我正在撰寫 Google Apps Script。我有一個名為「薪資表」的試算表。 表單的欄位依序為:A(姓名)、B(信箱)、C(底薪)、D(獎金)、E(發送狀態)。第一列是標題。

請幫我寫一個 function sendSalaryEmails。邏輯如下:

  1. 從第二列開始逐行讀取資料。
  2. 檢查 E 欄 (發送狀態)。如果已經標記為 已發送,則跳過這行不處理。
  3. 如果沒有標記,請計算「實領總額」= 底薪 + 獎金。
  4. 使用 MailApp.sendEmail 發送信件。 信件主旨為:「[員工姓名] 先生/小姐,您本月的薪資明細已核發」。 信件內容請客製化,例如:「親愛的 [員工姓名] 您好:本月您的底薪為 [底薪] 元,獎金為 [獎金] 元,實領總額為 [實領總額] 元。辛苦了!」
  5. 發送成功後,將該行的 E 欄標記為 已發送
  6. 請加上詳細的中文註解。

AI 產出的神級自動化腳本:

function sendSalaryEmails() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('薪資表');
  const data = sheet.getDataRange().getValues();
  
  // 第一列是標題,所以從 i = 1 (第二列) 開始
  for (let i = 1; i < data.length; i++) {
    const row = data[i];
    const name = row[0];       // A欄: 姓名
    const email = row[1];      // B欄: 信箱
    const baseSalary = row[2]; // C欄: 底薪
    const bonus = row[3];      // D欄: 獎金
    const status = row[4];     // E欄: 發送狀態
    
    // 如果已經發送過,或是信箱是空的,就跳過
    if (status === '已發送' || !email) {
      continue;
    }
    
    // 計算實領總額 (確保是數字型態相加)
    const totalSalary = Number(baseSalary) + Number(bonus);
    
    // 組合信件主旨與內容
    const subject = `${name} 先生/小姐,您本月的薪資明細已核發`;
    const body = `親愛的 ${name} 您好:\n\n感謝您這個月的辛勞!以下是您本月的薪資明細:\n\n底薪:${baseSalary} 元\n獎金:${bonus} 元\n----------------\n實領總額:${totalSalary} 元\n\n若有任何問題請隨時回信詢問人資部。祝您順心!`;
    
    try {
      // 發送 Email
      MailApp.sendEmail(email, subject, body);
      
      // 發送成功後,在 E 欄寫入「已發送」標記
      // 注意:getRange 的列與欄都是從 1 開始算,所以是 i + 1 列,第 5 欄 (E欄)
      sheet.getRange(i + 1, 5).setValue('已發送');
      Logger.log(`已成功發送薪資條給:${name}`);
      
    } catch (error) {
      Logger.log(`發送給 ${name} 時發生錯誤:${error}`);
    }
  }
}

步驟三:製作一個「發薪水」專屬按鈕

程式寫好了,總不能每個月都叫老闆打開程式碼編輯器去按「執行」吧?萬一老闆按錯刪掉程式碼就慘了。 我們要為這個程式在表單上做一個「按鈕」。

  1. 回到 Google Sheet 畫面。
  2. 點擊上方選單:插入 -> 繪圖
  3. 在繪圖區塊中,畫一個漂亮的圓角矩形,裡面打上文字:「寄發本月薪資條」,並把它填上顯眼的藍色。
  4. 點擊右上角的「儲存並關閉」。這時表單上會出現這個按鈕圖形。
  5. 在按鈕圖形的右上角點擊三個點 (...) -> 選擇 「指派指令碼」
  6. 輸入我們剛剛寫好的 function 名稱:sendSalaryEmails,按下確定。

見證奇蹟的時刻 🎉

現在,只要你每個月把薪資表填好,然後深呼吸,用滑鼠點一下表單上那個藍色的「寄發本月薪資條」按鈕。 你會看到畫面右下角出現「執行指令碼...」。然後,E 欄的格子開始一格一格地自動填上「已發送」!

大約過了 5 秒鐘,全公司 100 個人的客製化薪資條,就已經全數躺在他們的信箱裡了。 而你,原本每個月要花三天加班處理的苦差事,現在只剩下 5 秒鐘,剩下的時間你可以優雅地去泡杯咖啡。這,就是 Vibe Coding 自動化的浪漫!

在下一章,我們將探討 GAS 的一些進階陷阱:排程失敗怎麼辦?時區錯亂怎麼辦?教你如何打造一個堅不可摧的企業級自動化系統。


🎁 [VIP 專屬加碼] GAS 極致擴充:串接 OpenAI 與 LINE Notify

在學會了基礎的 GAS 表單自動化後,你已經可以幫行政人員省下大量的時間了。 但如果我們把 GAS 這個免費的後端,加上「AI 的大腦 (OpenAI)」與「最強的通知渠道 (LINE)」,這套系統的商業價值將會呈現指數型爆炸。

想像一個情境:「當客人填寫 Google 表單客訴時,系統自動讓 AI 分析客訴情緒,如果情緒極度憤怒,立刻透過 LINE 傳送警報給老闆的群組。」 這個功能在市面上,至少可以向企業收取每月 3000 元的維護費。而你,只需要花 15 分鐘。

1. LINE Notify 串接實戰 (免審核、免月費)

比起正規的 LINE 官方帳號 (Messaging API),LINE Notify 是一個極度輕量、適合用來做內部警報的工具。 你只需要去 LINE Notify 官網申請一組權杖 (Token)。

✅ Vibe Prompt 示範:

「我目前在 Google Apps Script (GAS) 環境中。

  1. 請幫我寫一個函式 sendLineNotify(message)
  2. 請使用 UrlFetchApp.fetch 呼叫 LINE Notify 的 API (網址: https://notify-api.line.me/api/notify)。
  3. Headers 請帶上 Authorization: Bearer [你的Token]
  4. Payload 為 { "message": message }
  5. 請加上 try-catch 錯誤處理。」

這段不到 10 行的程式碼,就是你建立所有「自動化報警系統」的核心基石。

2. OpenAI API 串接:讓試算表擁有智商

GAS 最強大的地方在於它的 UrlFetchApp 可以呼叫全世界任何 API。 你可以寫一個自訂函數,讓 Google Sheet 的儲存格直接變成 ChatGPT!

✅ Vibe Prompt 示範:

「請在 GAS 中寫一個自訂函式 ASK_AI(prompt, text)

  1. 呼叫 OpenAI 的 https://api.openai.com/v1/chat/completions API。
  2. 使用 gpt-4o-mini 模型。
  3. 將使用者的 prompt 與 text 組合送出,並解析回傳的 JSON 結果。
  4. 把這個函式設計成可以讓我在 Google 試算表的儲存格中直接使用 (例如輸入 =ASK_AI("請幫我把這句話翻譯成日文", A1))。」

當你把這個腳本貼進去後,你的客戶在 Google 試算表裡面,只要拉一下十字游標,整排的商品文案就會被 AI 自動翻譯好、或是自動寫好社群貼文!

3. 銷售自動化專案的終極話術

當你把這些技術組合在一起時,你賣的已經不是「幫你寫個腳本」,而是「幫你省下一個助理的薪水」。

「老闆,你們現在請工讀生每天看報表、回訊息,一個月至少要花兩萬。我幫你導入這套 AI 表單自動化系統,建置費收你三萬就好。以後系統 24 小時幫你監控客訴、自動發信、自動推播 LINE 群組,不會生病也不會遲到。」

這種「以投資回報率 (ROI)」為導向的談判話術,就是你透過這門課學到最珍貴的財富。去向市場證明你的價值吧!

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!