第 28 章完成站內採購簽核,本章把它變成公司能持續營運的系統:
站內資料庫仍是採購狀態的唯一真相來源。Google Drive Approvals 是文件核准的選配能力,不應和站內狀態互相無限制覆寫。
功能正常不等於能交給公司。正式上線後會遇到主管休假、員工離職、通知信被退回、OAuth 權限被撤銷、Google API 暫時失敗,以及同一份文件在兩個系統出現不同狀態。
本章的成功標準是:外部服務失敗時,核心簽核仍可使用;停權能立即生效;代理有明確起訖;每一項人工處理都有紀錄。
三層責任:
只檢查 Email 網域不夠。離職員工的公司帳號可能尚未停用,外包人員也可能有同網域帳號;登入後仍需本地 allowlist 或同步過的 membership。
完成第 28 章,準備 Google OAuth 設定與測試 Workspace 帳號。Drive Approvals 的 API、帳號方案與檔案 capability 必須依最新版官方文件確認;若不可用,保留站內簽核與 Email 通知即可。
請規劃採購系統正式上線,不要先實作。
加入 Google 登入、公司 membership allowlist、立即停權、Email 或 LINE 待辦、逾時提醒、有期限代理人與營運報表。
Google Drive Approvals 只作為特定文件的選配核准,本地資料庫仍是採購狀態唯一真相來源。
外部 API 失敗不得回滾站內決策;所有同步要可重試、冪等並提供人工待辦。
請列出 OAuth 權限、資料模型、同步邊界、失敗情境、監控與驗收計畫。
Google callback 完成後,後端驗證 token 的 issuer、audience、有效期與 Email 驗證狀態,再查本地 membership。只有 active 且在有效期間內的成員可進入系統。
不要讓第一次使用公司網域登入的人自動成為一般員工,更不能自動成為管理者。邀請或同步程序建立 membership,管理者確認部門與角色。
管理者將 membership 改為 suspended 或 ended 後,後端每次敏感操作都重新檢查,不只依賴登入時寫入的前端狀態。高風險系統可縮短 session 或在停權時撤銷現有 session。
停權不刪除使用者與事件。待處理簽核要重新指派,並記錄原核准者、代理人與原因。
請實作 Google 登入後的 membership gate。
後端驗證 Google token,再檢查本地 membership 的狀態、有效期、部門與角色。
同網域新帳號不可自動取得存取。membership 停權後,所有敏感 API 立即拒絕,既有事件與姓名快照保留。
請測試停權前已開啟頁面仍嘗試核准的情境。

圖 29-1:Bob 即使仍開著舊頁,下一次核准請求仍被伺服器拒絕,待辦則重派給代理人。
新增 notification_deliveries 或 outbox,保存 request、approval step、收件人、通道、範本、預定時間、狀態與嘗試次數。簽核交易只建立 outbox,不同步等待 Email 或 LINE。
通知內容包含申請編號、用途、金額、目前動作與站內連結。附件不直接附在 Email 或 LINE,收件人登入後再依權限取得短效 URL。
逾時提醒依政策設定,例如 24 小時後提醒、48 小時後升級到代理人或管理待辦。通知成功與否不改變 approval step。

圖 29-2:代理人具有明確起訖與原因;Email timeout 進入 retrying,dedupe key 防止重複寄送。
新增 delegations:委託人、代理人、適用角色或部門、開始/結束、原因、建立者。代理人在有效期間可處理新待辦,但事件同時記錄實際操作者與被代理者。
禁止代理給自己、停權帳號或會造成自我核准的人。代理到期後立即失效,尚未處理工作回到原核准者或管理待辦。
請新增有期限的 approval delegation。
代理設定包含委託人、代理人、範圍、開始與結束時間,使用 Asia/Taipei 顯示。
後端必須拒絕停權代理人、自我代理,以及代理後造成申請人核自己申請的情況。
決策事件同時記錄 actor 和 delegated_for。到期後不再授權,既有歷史保留。
只有需要正式文件共同核准時才加入,例如合約或報價比較表。流程:
本地表 external_approvals 保存 provider、revision、外部 IDs、status、sync cursor/時間與錯誤。所有同步冪等。
Google Drive 文件在核准期間若內容變更,外部核准可能重設;系統應提示重新檢查,不沿用舊證據。若 API 或方案不可用,回退到站內附件與核准,不阻塞核心流程。
本案例規則:
這些規則應顯示在 UI,避免使用者誤以為兩套系統永遠即時一致。

圖 29-3:Drive timeout 或文件修改只影響外部證據;站內 approval step 仍是唯一真相。
管理者需要:
報表使用聚合資料,不預設顯示完整附件或不必要個資。系統 activity log 與 Lovable/Workspace 平台 audit log 各有用途,不能互相取代。

圖 29-4:逾期待辦、代理、通知失敗、停權未重派與證據過期分別進入治理佇列,人工處理需留下原因。
測試:
請執行採購系統正式上線故障演練。
測試同網域未授權帳號、停權後舊頁面操作、通知 timeout 與重送、代理起訖和自我核准、Drive API outage、外部事件重送、文件修改與新 revision。
證明本地簽核是唯一真相來源,外部整合失敗不會破壞既有決策。
逐項提供權限、事件、outbox、external approval 與畫面證據。
建立一筆需要主管、財務與文件核准的 80,000 元採購。設定主管明天休假並委託代理人,模擬 Email timeout、Drive API timeout 與文件修改。接著在原主管已開啟待辦頁時停權帳號。
預期成果是代理在有效期間能核准且事件清楚,通知與 Drive 失敗各自進入待辦,停權帳號的舊頁面無法完成操作,站內 revision 與決策沒有被外部狀態覆寫。
你可以接著問 Lovable:「請依我的 Workspace、代理政策與通知 SLA,產生正式上線 runbook 和離職停權演練。」下一章將用全書的 Agentic 檢查清單,重新審查這四個台灣案例是否真的達到可交付標準。
嗨!我是 Wolke,曾任 Google Developer Expert(GDE,2019–2023) 與 LINE API Expert。我熱衷於研究 AI Agent、n8n 自動化工作流及全端開發架構,致力於將 AI 技術轉化為實際的生產力工具。
如果你喜歡這篇文章,歡迎透過以下方式與我交流,獲取更多技術實戰內容:
📚 技術著作:《實用的 Gemini API 開發點子書》,帶你運用 Gemini App、Google AI Studio、Gemini CLI 與 Antigravity IDE,打造 AI Agent 與實用產品。
📝 技術部落格:歡迎追蹤我的 Medium,我會持續分享 Agentic Automation、架構設計與實際開發的踩坑心得。
🎤 技術講座:我持續受邀至技術社群及研討會,分享 AI Agent、自動化工作流、DevOps 與全端開發實戰。曾於 2026 年 6 月 26 日的 DevOpsDays Taipei 2026 主講「不再只是寫腳本!讓 AI 代理人成為你的 SRE 最佳夥伴」工作坊。
如果你的企業、社群或學校正在尋找相關主題講者,歡迎私訊與我聯繫、洽談講座合作!
🎁 免費送 Lovable 額度給讀者!
我每個月會開放 10 個名額,每人 50 點 Lovable 額度,讓大家實際動手打造自己的網站或 App。
參加方式:
確認後,我會邀請你加入 Lovable workspace 並設定 50 點額度。名額有限,送完為止!