Skip to content

「請假核准後,行事曆自動更新」Google Apps Script 串接

情境說明

請假申請核准後,HR 還要手動更新 Google 行事曆或假期試算表,浪費時間又容易漏。

透過 API 節點串接 Google Apps Script,流程核准的瞬間,Google Sheets 自動寫入一筆假期紀錄,HR 完全不需要手動操作。

流程設計

員工填寫請假申請
(請假類型、開始日期、結束日期、代理人、請假原因)

直屬主管審核

[核准] → API 節點:自動呼叫 Google Apps Script
         → 寫入假期追蹤 Google Sheet
         → 完成
[退件] → 流程結束

對 SuperAdmin Agent 說這些

「建立一個請假申請流程。員工填寫:請假類型(特休/病假/事假/其他)、開始日期、結束日期、代理人(選擇組織成員)、請假原因。

提交後由直屬主管審核。核准後,呼叫一個 Webhook URL(我之後再填),自動把請假資料寫入我們的 Google Sheet。退件就直接結束。」

設定 Google Apps Script

在 Google Sheets 中建立 Apps Script,接收 kikuflow 傳送的資料:

javascript
// Google Apps Script - doPost 函數
function doPost(e) {
  const data = JSON.parse(e.postData.contents);
  const sheet = SpreadsheetApp.getActiveSheet();

  // 將請假資料寫入試算表
  sheet.appendRow([
    data.employeeName,   // 員工姓名
    data.leaveType,      // 請假類型
    data.startDate,      // 開始日期
    data.endDate,        // 結束日期
    data.proxy,          // 代理人
    new Date()           // 紀錄時間
  ]);

  return ContentService.createTextOutput('OK');
}
  1. 在 Apps Script 中部署為「網路應用程式」(執行身份:我自己)
  2. 複製部署後的 URL
  3. 在 kikuflow 的 API 節點中填入這個 URL

kikuflow 傳送的資料格式

API 節點觸發時,kikuflow 會以 POST 請求傳送流程實例的表單資料:

json
{
  "instanceId": "...",
  "workflowName": "請假申請",
  "submittedBy": "員工姓名",
  "fields": {
    "leaveType": "特休",
    "startDate": "2025-03-10",
    "endDate": "2025-03-12",
    "proxy": "王小明",
    "reason": "..."
  }
}

延伸應用

同樣的方式可以延伸到:

  • 核准後自動在 Google Calendar 建立缺席事件
  • 自動發 Email 通知代理人
  • 寫入 HR 系統的 API

kikuflow User Manual