首頁/AI 講義/數位工具・自動化

數位工具・自動化 · Workspace+GAS+Gemini約 12 分鐘Automation

從逐字稿萃取待辦自動寫進試算表

從逐字稿萃取待辦自動寫進試算表 — 賴家榮 AI 教學

overview這篇要帶你做什麼

把會議逐字稿交給 Gemini,讓它抓出所有待辦事項的「負責人、任務、期限」,再用 Apps Script 一列一列寫進 Google 試算表。

Key Takeaways

  • 從一段逐字稿自動萃取出待辦清單,不用自己爬全文。
  • Gemini 以固定欄位回傳(負責人、任務、期限),方便進表格。
  • 用 SpreadsheetApp 把每一筆待辦寫成試算表的一列。
  • 有了表格就能排序、篩選、標記完成,追蹤進度很直覺。
  • 金鑰用 PropertiesService 保管,安全不外洩。
  • 適合會後常常忘記追待辦、想把責任講清楚的團隊。

會議裡最容易蒸發的就是待辦:「這件事你來」「下週三前給我」,講完就散了,事後常常沒人記得。這篇教學讓 Gemini 幫你把這些待辦從逐字稿裡挑出來,整整齊齊排進試算表,之後要追蹤、要分派都有依據。

why為什麼值得這樣做

待辦如果只留在會議記錄的一段文字裡,很難追蹤。誰負責、什麼時候要交,散在段落中間,過幾天就模糊了。把待辦拆成「一筆一列」放進試算表,每一項都有負責人和期限欄位,你可以排序、篩選、加上狀態,整個團隊看同一張表,責任清清楚楚。

而讓 Gemini 來做萃取,是因為它讀得懂口語。逐字稿裡的待辦常常講得很鬆散,「那個就麻煩你囉」「記得下週處理」,人要一句一句挑很累,Gemini 能理解語意、補上結構。搭配 SpreadsheetApp 直接寫進 Google 試算表,資料落地就能協作,不用再手動謄一次。

prepare開始前要準備什麼

Checklist

  • 一個 Google 帳號,以及一份要放待辦的 Google 試算表。
  • 一組 Gemini API 金鑰(Google AI Studio 免費申請)。
  • 一段會議逐字稿(文字版),先貼在某處備用。
  • 打開 script.google.com 準備新增 Apps Script 專案。
  • 把金鑰複製起來,等一下貼進指令碼屬性。

steps一步一步實作

1建立一份待辦試算表

動作新建一份 Google 試算表,第一列先打好欄位標題:負責人、任務、期限、狀態。

常見地雷記下這份試算表的網址,程式要用到中間那段 ID。

2申請並複製 Gemini 金鑰

動作到 aistudio.google.com 建立 API 金鑰並複製。

常見地雷金鑰只完整顯示一次,先貼到安全的地方存好。

3建立 Apps Script 專案

動作打開 script.google.com 建新專案,清空預設函式。

常見地雷取個好認的名字,例如「會議待辦萃取」。

4存入金鑰

動作在「專案設定→指令碼屬性」新增 GEMINI_API_KEY,值貼上金鑰。

常見地雷名稱大小寫要完全一致,不能有多餘空格。

5貼上 askGemini 函式

動作把下方第一段程式碼原封不動貼進編輯器。

常見地雷共用工具,網址與參數都別改。

6貼上主流程並設定參數

動作貼上第二段 extractActionItems,把 SHEET_ID 換成你的試算表 ID,並把逐字稿貼進 transcript 變數。

常見地雷試算表 ID 是網址 /d/ 與 /edit 之間那一串,別貼整段網址。

7執行並授權

動作選 extractActionItems 按執行,第一次授權允許讀寫試算表與連外。

常見地雷未驗證提示點「進階→前往」繼續即可。

8查看試算表

動作回到試算表,待辦應該一列一列填進去了,檢查負責人與期限是否正確。

常見地雷若沒資料,先看執行紀錄,通常是 ID 打錯或 Gemini 回傳格式異常。

第一段是共用的 askGemini 函式,把文字送給 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 });
  return JSON.parse(res.getContentText()).candidates[0].content.parts[0].text.trim();
}

第二段是主流程。它請 Gemini 用 JSON 陣列回傳待辦(每筆含 owner、task、due),再用 SpreadsheetApp 逐筆 appendRow 寫進試算表。找不到負責人或期限時,會填「未指定」,方便你後補。

function extractActionItems() {
  const SHEET_ID = '你的試算表ID'; // 換成你的試算表 ID
  const transcript = '把會議逐字稿貼在這裡'; // 換成逐字稿內容

  const prompt = '你是專案助理。請從以下會議逐字稿中,找出所有的待辦事項。' +
    '只回傳 JSON 陣列,不要任何說明或 markdown 標記,格式為:' +
    '[{"owner":"負責人","task":"要做的事","due":"期限"}]。' +
    '找不到負責人或期限時,該欄填「未指定」。逐字稿如下:\n\n' + transcript;

  let raw = askGemini(prompt);
  raw = raw.replace(/```json/g, '').replace(/```/g, '').trim();
  const items = JSON.parse(raw);

  const sheet = SpreadsheetApp.openById(SHEET_ID).getSheets()[0];

  items.forEach(function(it) {
    sheet.appendRow([it.owner, it.task, it.due, '待處理']);
  });

  Logger.log('已寫入 ' + items.length + ' 筆待辦事項。');
}

flow整個流程長怎樣

逐字稿到待辦表的流程
1你把會議逐字稿放進 transcript 變數
2程式把逐字稿加上萃取指示送給 Gemini
3Gemini 回傳含 owner、task、due 的 JSON 陣列
4程式解析 JSON,逐筆整理成一列列資料
5用 SpreadsheetApp 的 appendRow 寫進試算表
6你在表格裡排序、標記狀態,開始追蹤進度

流程的重點是把「口語的待辦」轉成「結構化的資料列」。逐字稿是輸入,一張可追蹤的待辦表是輸出。因為每筆都有負責人和期限欄位,會後你不用再靠記憶,打開表格就知道誰欠什麼。

tips幾個實用小技巧

faq常見問題

常見問題 FAQ

Gemini 會不會漏抓待辦或多抓?

有可能,因為它是靠理解語意在判斷。逐字稿裡講得明確的待辦通常抓得很準,講得含糊的(例如只是隨口提一句)就可能漏掉或誤判。建議把它當成「先幫你列出九成」,寫進表格後你快速掃一遍,補上漏的、刪掉多的,會比從零整理省很多力。

負責人講的是綽號或代稱,抓得出來嗎?

看逐字稿有沒有足夠線索。如果逐字稿裡有講者標記或前後文提到本名,Gemini 通常能對應。若只有含糊的「你」「他」,就可能填成未指定。想更準,可以在逐字稿開頭附一份與會者名單,或在 prompt 裡告訴 Gemini 有哪些人參與。

期限那欄常常是空的或很模糊怎麼辦?

這很正常,因為會議上不一定每件事都講明期限。程式已經設計成找不到就填「未指定」,不會出錯。你可以在表格裡把未指定的項目挑出來,會後補上真正的期限,或直接請負責人回報,反而形成一個檢查缺漏的好時機。

試算表 ID 是哪一段?

打開你的 Google 試算表,網址會像 docs.google.com/spreadsheets/d/xxxxx/edit,中間那串 xxxxx(在 /d/ 和 /edit 之間)就是試算表 ID。複製那一段貼到程式的 SHEET_ID,不要貼整個網址,否則程式打不開試算表。

每次跑會不會把舊的待辦洗掉?

不會,這篇用的是 appendRow,也就是「往後面新增一列」,舊資料都保留。不過連跑兩次同一份逐字稿會有重複資料。想避免重複,可以在寫入前先清空資料區、或比對既有任務只補新的,看你的使用習慣選一種。

可以一次處理很多場會議嗎?

可以。把逐字稿改成從另一份試算表的某一欄逐列讀入,用迴圈跑每一場,並在每筆待辦多寫一個會議名稱欄位。這樣所有會議的待辦會匯進同一張大表,方便統一追蹤。注意 API 有速率限制,量大時每次呼叫間加一點延遲比較保險。

為什麼要用 JSON 格式,不直接請它列成文字?

因為 JSON 有固定欄位,程式才能穩定地把每一筆拆成試算表的一列一欄。如果只是純文字清單,程式很難準確切出哪段是負責人、哪段是期限。請 Gemini 回傳 JSON,就等於先講好「格式」,資料進表格才不會錯位。

JSON 偶爾解析失敗怎麼辦?

程式裡已經先把 markdown 的程式碼標記去掉,處理掉最常見的狀況。若仍偶爾失敗,可以在 prompt 裡再強調「只回傳純 JSON、不要任何多餘文字」,或加一段 try/catch,失敗時記錄下原始回應方便你排查,甚至自動重試一次。

這樣做安全嗎?逐字稿會外流嗎?

逐字稿會送到 Gemini API 做處理,這點跟使用任何雲端 AI 服務一樣。若內容涉及機密,建議先評估公司政策,或把敏感資訊(如客戶名、金額)先去識別化再送。程式本身跑在你自己的 Google 帳號裡,資料存在你自己的試算表,金鑰也收在指令碼屬性,這幾層是安全的。

可以自動通知負責人嗎?

可以,這正是很自然的下一步。寫進試算表後,再加一段用 GmailApp 依負責人 email 寄出各自的待辦,或設定期限前一天的提醒。把待辦萃取、寫表、通知串成一條龍,會後就完全不用手動追人,是很多團隊最想要的自動化。

cta接下來可以怎麼做

當待辦不再散在腦袋和聊天紀錄,而是整齊落在一張大家都看得到的表上,追蹤和分派就變得輕鬆。學會萃取待辦之後,再接上自動提醒、自動寄信,你的會議流程就能從「開完就忘」進化成「事情自己會被追」。

想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。

預約授課・免費諮詢

本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →

代表圖片來源:圖片來源:Pexels

Your turn

把 AI,變成團隊真的用得上的能力。

不論你在哪個產業,賴家榮都能帶團隊把 AI 學到真的用得上。

預約授課・免費諮詢