2026年10月24日 星期六

進階 LINE 智能客服(2):自動將使用者訊息記錄到 Google 試算表

在上一篇文章中,我們學會了如何透過 Google Apps Script (GAS) 建立一個簡單的 LINE 回音機器人。然而,對於一個真正的客服系統來說,只有「回覆」是不夠的,我們還需要將客戶的問題、建議與對話紀錄保存下來,以便後續追蹤或進行數據分析。今天,我們就要將 LINE 客服與雲端免費的強大資料庫——Google 試算表 (Google Sheets) 完美結合。

1. 為什麼要使用 Google 試算表當作資料庫?

在初期建置系統時,比起租用與維護傳統關聯式資料庫 (如 MySQL),Google 試算表不僅完全免費,而且具備直覺的圖形化介面。客服人員可以直接打開試算表查看最新的客訴紀錄,甚至利用內建的篩選、圖表功能來進行簡單的客情分析,是輕量級專案的最佳選擇。

2. 準備你的 Google 試算表

  • 首先,在你的 Google 雲端硬碟建立一個新的試算表。
  • 在第一列建立標題:例如 A1 填入「時間」、B1 填入「使用者 ID」、C1 填入「訊息內容」。
  • 從網址列複製這份試算表的 ID(即 /d/ 與 /edit 之間的那長串英數混合字元),我們等一下會在程式碼中用到它。

3. 修改 GAS 程式碼實作資料寫入

我們將上一篇的程式碼稍微擴充,使用 GAS 內建的 SpreadsheetApp 服務。當收到 LINE 的 Webhook 請求時,除了回覆訊息,同步將資料寫入試算表的最底端。

✏️ 結合資料庫紀錄的完整實作範例

function doPost(e) {
  // 1. 基本設定
  var channelToken = "你的_LINE_CHANNEL_ACCESS_TOKEN";
  var sheetId = "你的_GOOGLE_SHEET_ID"; // 貼上剛剛複製的試算表 ID
  
  // 2. 解析 LINE 傳來的訊息
  var msg = JSON.parse(e.postData.contents);
  var replyToken = msg.events[0].replyToken;
  var userId = msg.events[0].source.userId;
  var userMessage = msg.events[0].message.text;
  
  // 取得現在時間並格式化
  var currentTime = Utilities.formatDate(new Date(), "Asia/Taipei", "yyyy-MM-dd HH:mm:ss");
  
  // 3. 將資料寫入 Google 試算表
  var sheet = SpreadsheetApp.openById(sheetId).getSheets()[0]; // 取得第一個工作表
  sheet.appendRow([currentTime, userId, userMessage]); // 依序寫入 A, B, C 欄位
  
  // 4. 回覆使用者訊息
  var url = "https://api.line.me/v2/bot/message/reply";
  var options = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer " + channelToken
    },
    "payload": JSON.stringify({
      "replyToken": replyToken,
      "messages": [{
        "type": "text",
        "text": "我們已收到您的訊息,客服人員將盡快處理!"
      }]
    })
  };
  
  // 執行回覆
  UrlFetchApp.fetch(url, options);
}

將這段程式碼部署後,你的 LINE 官方帳號不僅會自動回覆「我們已收到您的訊息...」,同時也會安靜地在後台把每一筆客人的發言連同時間戳記,整齊地排列在 Google 試算表裡。透過這個簡單的機制,你就完成了一個具備資料持久化能力的客服自動化雛形!

沒有留言:

張貼留言

熱門文章