為什麼要用 n8n 建立AI LINE客服機器人?
選擇 n8n 建立 LINE 官方 AI 客服機器人的主要原因是它提供了視覺化的拖拉式介面,讓非技術人員也能輕鬆建立複雜的客服流程,同時作為開源平台具有成本效益,可自行部署確保資料安全。n8n 內建完整的 LINE Bot API 支援,能處理多元化訊息格式,並可靈活整合各種 AI 服務如 OpenAI GPT,打造 24/7 不間斷的智能客服系統,讓企業以最小技術門檻實現專業級自動化客服,有效提升客戶滿意度並降低營運成本。
想要一個 24 小時、不需寫程式的 LINE 官方 AI 客服嗎?這篇教學會一步步帶你從建立 LINE 官方帳號、設定 webhook、串接 OpenAI(或其他模型)、到用 Google Sheets 當作簡易知識庫,最後把回覆結果發回給使用者。
工作流概覽
在我們開始之前,先來看看整個工作流的藍圖:
- Webhook (接收訊息):作為起點,接收從 LINE 平台發送過來的使用者訊息。
- AI Agent (大腦中樞):這是整個流程的核心,負責接收訊息、思考、並決定要使用哪個工具 (例如:查詢 Google Sheets)。
- OpenAI Chat Model (AI 模型):提供 AI Agent 所需的語言理解與生成能力。
- Simple Memory (短期記憶):讓機器人能記得最近的對話內容,使對話更流暢。
- Google Sheets Tool (外部知識庫):讓 AI Agent 可以讀取 Google Sheets 上的資料,用來回答特定問題。
- HTTP Request (回覆訊息):將 AI 生成的回覆,透過 LINE 的 API 傳送回給使用者。
步驟零:設定 Google Sheets API 憑證
在開始設定 n8n 之前,我們需要先準備 Google Sheets 的存取權限,這樣 AI Agent 才能讀取您的知識庫資料。
0.1 建立 Google Cloud Platform 專案
- 前往 Google Cloud Console
- 使用您的 Google 帳號登入
- 點擊頁面頂部的專案選擇器,然後點擊「新增專案」
- 為專案命名(例如:「line」),然後點擊「建立」
- 等待專案建立完成,確保您已切換到新建立的專案
0.2 啟用 Google Sheets API
- 在 Google Cloud Console 中,前往左側選單的「API 和服務」→「程式庫」
- 在搜尋欄中輸入「Google Sheets API」
- 點擊「Google Sheets API」結果
- 點擊「啟用」按鈕
- 等待 API 啟用完成
0.3 建立服務帳戶
- 在左側選單中選擇「API 和服務」→「憑證」
- 點擊頁面頂部的「+ 建立憑證」
- 選擇「服務帳戶」
- 填寫服務帳戶詳細資訊:
- 服務帳戶名稱:例如「n8n-sheets-access」
- 服務帳戶 ID:會自動產生
- 說明:可選填,例如「用於 n8n 存取 Google Sheets」
- 點擊「建立並繼續」
- 在「將這個服務帳戶的存取權授予專案」步驟中,可以跳過(點擊「繼續」)
- 在「將存取權授予使用者」步驟中,也可以跳過(點擊「完成」)
0.4 產生服務帳戶金鑰
- 在「憑證」頁面中,找到您剛建立的服務帳戶,點擊服務帳戶名稱
- 切換到「金鑰」標籤頁
- 點擊「新增金鑰」→「建立新金鑰」
- 選擇「JSON」格式,然後點擊「建立」
- JSON 檔案會自動下載到您的電腦,請妥善保存此檔案
0.5 準備您的 Google Sheets 文件
- 建立或開啟您的 Google Sheets 文件
- 前往 Google Sheets
- 建立新的試算表或開啟現有的試算表
- 將您的常見問答資料整理好(例如:A欄放問題,B欄放答案)
- 複製Sheets 文件的URL
- 分享權限給服務帳戶
- 在您的 Google Sheets 中,點擊右上角的「共用」按鈕
- 在分享對象欄位中,輸入您在步驟 0.3 中建立的服務帳戶電子郵件地址
- 服務帳戶電子郵件格式通常是:
服務帳戶名稱@專案ID.iam.gserviceaccount.com - 您可以在 Google Cloud Console 的憑證頁面找到完整的服務帳戶電子郵件
- 設定權限為「檢視者」(只需讀取權限即可)
- 點擊「傳送」
0.6 在 n8n 中設定 Google Sheets 憑證
稍後在設定 Google Sheets 節點時,您需要:
- 選擇「Service Account」認證方式
- 上傳您在步驟 0.4 下載的 JSON 檔案,或複製其中的內容
- 主要需要的資訊包括:
- Client Email:服務帳戶的電子郵件地址
- Private Key:JSON 檔案中的私鑰
步驟一:建立與設定 LINE 官方帳號 (從零開始)
在開始設定 n8n 之前,我們必須先建立 LINE 官方帳號,然後為該帳號啟用「Messaging API」功能,這樣 n8n 才能與之溝通。
重要提醒: 從 2024 年 9 月 4 日起,LINE 不再允許直接從 LINE Developers Console 建立 Messaging API 頻道,必須透過 LINE Official Account 來建立。
1.1 註冊 Business ID
首先需要註冊 Business ID:
- 前往 Business ID 註冊頁面
- 您可以選擇使用現有的 LINE 帳號或電子郵件地址來註冊
- 完成註冊流程
1.2 建立 LINE 官方帳號
註冊 Business ID 後:
- 系統會自動導向 LINE Official Account 申請表單
- 填寫必要資訊,包括:
- 帳號名稱
- 帳號類型
- 行業類別
- 其他相關資訊
- 完成表單提交後,您的 LINE Official Account 就建立完成了
1.3 確認官方帳號已建立
- 前往 LINE Official Account Manager
- 確認您剛建立的官方帳號出現在帳號列表中
- 記下帳號名稱,接下來會用到
1.4 為官方帳號啟用 Messaging API
現在要為您的官方帳號啟用 Messaging API 功能:
- 在 LINE Official Account Manager 中選擇您的官方帳號
- 在左側選單找到「設定」→「Messaging API」
- 點擊「開始使用 Messaging API」
重要提醒: 如果您的帳號是第一次使用 LINE Developers Console,系統會要求您註冊開發者資訊,請輸入姓名和電子郵件。
1.5 選擇 Provider
在啟用 Messaging API 時,您需要選擇一個 Provider 來管理您的官方帳號:
- 如果您計劃將此官方帳號與現有的 LINE 服務(如 LINE Login)整合,請選擇相同的 Provider
- 如果這是您的第一個 LINE 開發專案,可以建立新的 Provider
- 注意: 一旦指定 Provider 後就無法更改,請慎重選擇
1.6 進入 LINE Developers Console
- 前往 LINE Developers Console
- 使用您在 LINE Official Account Manager 中使用的同一個帳號登入
- 選擇您在步驟 1.5 中選擇的 Provider
- 確認您看到剛建立的 Messaging API 頻道
1.7 取得重要資訊 & 進行關鍵設定
點進您的 Messaging API 頻道,進入「Messaging API」標籤頁:
取得 Channel Access Token:
- 往下滑找到「Channel access token」區塊,點擊「Issue」按鈕
- 這會產生一長串的權杖,請先將它複製下來,我們在後面的步驟五會用到
- 這是 n8n 用來發送訊息給 LINE 的鑰匙
關閉自動回應訊息:
- 往下滑找到「LINE Official Account features」區塊,點擊「Edit」
- 找到「Auto-reply messages」(自動回應訊息),請確保它是「Disabled」(停用) 的
- 這樣才不會跟 n8n 的回覆產生衝突
啟用 Webhook:
- 在「Webhook settings」區塊,請確保「Use webhook」是「Enabled」(啟用) 的
步驟二:設定 Webhook 節點 (接收 LINE 訊息)
現在回到 n8n。Webhook 是整個自動化流程的起點,它會產生一個專屬網址,用來接收來自 LINE 的資料。
新增節點: 在 n8n 畫布中,點擊 + 號,搜尋並選擇 Webhook 節點。
節點設定:
- HTTP Method: 設定為 POST。LINE 發送訊息給我們時,會使用 POST 請求。
- Path: 為您的 Webhook 設定一個獨特的路徑,例如
line。這會成為您 Webhook URL 的一部分。 - Authentication: 在此案例中,我們選擇 None。
將 Webhook URL 貼回 LINE Developers 後台:
- 在 n8n 的 Webhook 節點中,您會看到 Test URL 和 Production URL。請複製Test URL。
- 回到剛剛的 LINE Developers Console Messaging API 標籤頁。
- 找到 Webhook URL 的欄位,點擊 Edit,然後貼上您剛剛從 n8n 複製的 URL,並儲存。

步驟三:設定 AI Agent (流程的大腦)
AI Agent 是 n8n Langchain 節點中的一種,它扮演著指揮官的角色,能夠根據收到的指令(Prompt)和可用的工具(Tools)來決定下一步的行動。
新增節點: 在畫布中新增 AI Agent 節點,並將 Webhook 節點的輸出端連接到 AI Agent 的輸入端。
節點設定:
Prompt Type: 選擇 Define。
Text (使用者輸入): 我們要從 Webhook 接收到的資料中提取出訊息內容。
- 點擊欄位右邊的 Expression 按鈕。
- 輸入表達式:
={{ $('Webhook').item.json.body.events[0].message.text }}(可直接拖曳)

Options (系統訊息/指令):
- 點擊 Add Option -> System Message。
- 這裡要貼上給 AI 的角色設定和行為準則,以下是範例:
你是一個專業、親切且高效率的客服助理,服務於「小明的餐廳」。
你的目標是以友善的語氣,快速、準確地解答顧客關於餐廳的任何問題,並引導他們完成訂位、外帶、外送或其他需求。
【餐廳資訊】
- 店名:小明的餐廳
- 營業時間:週一至週日 11:00 - 22:00
- 地址:台北市中山區中山路 123 號
- 電話:02-1234-5678
- 提供服務:內用、外帶、外送(外送範圍 5 公里內)
- 外送平台合作:Uber Eats、Foodpanda
- 支付方式:現金、信用卡、行動支付(Line Pay、Apple Pay)
【回覆風格】
1. 使用親切、自然的中文對話,不使用過於制式的客服口吻。
2. 對顧客的需求給予明確指引,例如訂位要收集日期、時間、人數與姓名電話。
3. 若遇到餐點或營業資訊不在資料中,禮貌告知並提供替代解法(例如建議顧客致電查詢)。
4. 保持對話簡潔,避免一次丟出過多訊息。
【特殊規則】
- 當顧客要求訂位,詢問完整資料後回覆:「好的,已幫您登記!」並重複確認資訊。
- 當顧客詢問菜單,簡短介紹招牌菜(招牌牛肉麵、麻辣火鍋、蜜汁烤雞),並提供前往官網或 PDF 菜單連結。
- 若顧客有抱怨或負面回饋,先致歉並表示會轉交店長處理,保持禮貌。
- 不主動提及競爭對手,專注介紹小明的餐廳服務與特色。
請隨時保持熱情,讓顧客感覺像與一位貼心服務員對話。
步驟四:連接 AI 模型、記憶體與工具
AI Agent 本身沒有思考能力,它需要連接語言模型 (LLM)、記憶體 (Memory) 和工具 (Tools) 才能運作。
4.1 OpenAI Chat Model (思考核心)
新增節點: 新增 OpenAI Chat Model 節點。
連接: 將 OpenAI Chat Model 節點的輸出端連接到 AI Agent 節點左側的 AI Language Model 輸入端。
節點設定:
- Credential for OpenAI API: 選擇或新增您的 OpenAI API 金鑰。
- Model: 選擇您要使用的模型,例如 gpt-4o-mini。
4.2 Simple Memory (短期記憶)
新增節點: 新增 Simple Memory (或 Buffer Window Memory) 節點。
連接: 將 Simple Memory 節點的輸出端連接到 AI Agent 節點左側的 AI Memory 輸入端。
節點設定:
- Session ID Type: 選擇 Custom Key。
- Session Key: 為了讓機器人能區分不同的使用者,我們需要一個獨一無二的 ID。
- 輸入表達式:
={{ $('Webhook').item.json.body.events[0].source.userId }}
- 輸入表達式:
- Context Window Length: 設定要記住的對話輪數,例如 10。
4.3 Google Sheets Tool (知識庫)
新增節點: 新增 Google Sheets 節點。
連接: 將 Google Sheets 節點的輸出端連接到 AI Agent 節點左側的 AI Tool 輸入端。
節點設定:
Credential for Google Sheets API: 點擊「Create New Credential」來建立新的憑證:
- 認證類型選擇: 選擇「Service Account」
- 填入憑證資訊: 您需要從步驟 0.4 下載的 JSON 檔案中取得以下資訊:
- Service Account Email: JSON 檔案中的
client_email欄位值 - Private Key: JSON 檔案中的
private_key欄位值(包含-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----)
- Service Account Email: JSON 檔案中的
操作設定:
- Operation: 選擇「Read Rows」(讀取行)
- Document ID: 貼上您在步驟 0.5 中取得的 Google Sheets 文件 ID
- Sheet Name: 選擇您要讀取的工作表名稱(例如「Sheet1」或您自訂的工作表名稱)
- Options -> Return All: 建議啟用,這樣可以讀取所有資料行
AI Tool 設定:
- Options -> Name for Tool: 為這個工具取一個 AI 能理解的名字,例如「G股網常見QA資料庫」
- Options -> Description for Tool: 詳細描述這個工具的用途,例如:「當使用者詢問關於G股網的常見問題時,使用此工具查詢答案。資料格式為第一欄是問題,第二欄是對應答案。」
步驟五:設定 HTTP Request 節點 (回覆 LINE 訊息)
當 AI Agent 處理完畢並生成回覆後,我們需要將這個回覆傳送回 LINE。
新增節點: 新增 HTTP Request 節點。
連接: 將 AI Agent 節點的 main 輸出端連接到 HTTP Request 節點的輸入端。
節點設定:
- Method: POST
- URL:
https://api.line.me/v2/bot/message/reply - Authentication: Generic Credential Type
- Generic Auth Type: HTTP Header Auth

Credentials for HTTP Header Auth:
- 點擊「Create New Credential」
- Name: Authorization
- Value:
Bearer YOUR_CHANNEL_ACCESS_TOKEN(請將 YOUR_CHANNEL_ACCESS_TOKEN 換成您在步驟 1.7 從 LINE Developers 後台取得的 Channel Access Token)

Body 設定:
- Send Body: 啟用
- Body Content Type: JSON
- JSON: 貼上以下程式碼:
範例JSON檔案:
步驟六:測試與啟用工作流
6.1 儲存並啟用工作流
- 點擊畫面右上角的「Save」按鈕儲存工作流
- 將畫面右上角的開關切換為「Active」狀態
6.2 測試您的 LINE Bot
- 加入您的 LINE 官方帳號為好友:
- 回到 LINE Official Account Manager
- 找到您的官方帳號,取得 QR Code 或 LINE ID
- 用您的個人 LINE 帳號掃描 QR Code 或搜尋加入好友
- 發送測試訊息:
- 對您的 LINE Bot 發送與您 Google Sheets 中相關的問題
- 觀察 Bot 是否能正確回覆
- 檢查執行狀況:
- 回到 n8n,點擊左側選單的「Executions」
- 查看最近的執行紀錄,確認每個節點都正常運作
新手常見錯誤與 QA
Q1: Google Sheets 節點出現認證錯誤?
A1: 請檢查以下幾點:
- 服務帳戶權限: 確認您已將 Google Sheets 分享給服務帳戶(步驟 0.5)
- API 已啟用: 確認您在 Google Cloud Console 中已啟用 Google Sheets API(步驟 0.2)
- 憑證格式: 確認 Private Key 包含完整的
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY----- - Email 格式: 服務帳戶 Email 應該是
xxx@xxx.iam.gserviceaccount.com格式
Q2: 我的 Webhook 測試時有收到資料,但 LINE 機器人沒反應?
A2: 請檢查以下幾點:
- 工作流是否啟用 (Active)? 在 n8n 畫面的右上角,有一個開關可以啟用/停用工作流。請確保它是 Active 狀態。
- Channel Access Token 是否正確? 檢查 HTTP Request 節點的憑證,Bearer 後面有一個空格,且 Token 是完整的。
- Webhook URL 是否正確? 請確認 LINE Developers 後台的 URL 和 n8n Webhook 節點的 Production URL 完全一致。
- LINE 後台設定是否正確? 回到步驟一,確認「自動回應訊息」已關閉,「Webhook」已啟用。
Q3: AI 回覆的內容不如預期,或是說它找不到資料?
A3: 這通常與 Prompt 或 Tool 的設定有關:
- System Message 不夠明確: AI Agent 中的系統訊息是 AI 行為的最高指導原則。試著把規則寫得更明確、更嚴格。
- Tool 描述不清楚: AI Agent 是根據你給工具的 Name 和 Description 來判斷何時該使用它。請用 AI 能理解的語言來描述。
- Google Sheets 資料格式: 確認您的 Google Sheets 資料格式清楚,建議第一列放標題(如「問題」、「答案」),後續列放實際資料。
Q4: n8n 節點出現 ERROR: The data is not in the format n8n expects 錯誤?
A4: 這個錯誤通常發生在資料傳遞的格式不對。
- 檢查 JSON Body: 在 HTTP Request 節點中,確認 JSON Body 的內容是合法的 JSON 格式。
- AI 輸出格式: 有時候 AI 的輸出可能不是單純的文字字串。在 HTTP Request 節點的 text 欄位,可以改用更安全的表達式來處理這種情況:
{{ (typeof $json.output === 'string' ? $json.output : JSON.stringify($json.output)) }}。
Q5: 如何查看每個節點的詳細執行狀況?
A5: n8n 的除錯功能非常強大。
- 手動執行: 點擊 Execute Workflow 按鈕,手動觸發一次流程。
- 查看節點輸出: 流程跑完後,點擊任何一個節點,你可以在右側的 Output 標籤頁看到該節點的輸入和輸出資料。
- Executions 列表: 在左側導覽列點擊 Executions,可以看到所有工作流的執行紀錄。
後續優化建議
提升 AI 回覆品質
- 在 Google Sheets 中加入更多常見問答
- 優化系統 Prompt,讓 AI 的回覆更符合您的品牌語調
- 考慮使用更進階的 AI 模型(如 gpt-4)來提升理解能力
增加功能
- 加入圖片回覆功能
- 連接更多外部資料來源(如資料庫、CRM 系統)
- 實作更複雜的對話流程和狀態管理
監控與分析
- 定期檢查 Executions 紀錄,了解使用者常問的問題
- 分析 AI 無法回答的問題,持續優化知識庫
- 考慮加入使用統計和分析功能
FAQ(常見問題)
- Q:這個架構要花多少錢?
A:n8n 建議小額付費在雲端平台,例如Zeabur,以確保穩定性。OpenAI API 是付費的;基本實驗可以用低成本方案(例如每月 $5 的信用額度)開始。Google Cloud 需輸入信用卡資訊,但小量使用通常不會產生大量費用。
- Q:為什麼 webhook 驗證失敗?
A:通常是因為 n8n 未在 Execute 模式或 URL 錯誤(包含 Test 與 Production 的差異)。先按 n8n Webhook 的 Execute 再到 LINE 點 Verify;或檢查防火牆、HTTPS 憑證、URL 路徑是否正確。
- Q:AI 回覆很慢或找不到答案怎麼辦?
A:若用 Google Sheets 當知識庫,搜尋速度與準確度受限。建議優化 QA 結構、縮短 prompt,或改用向量資料庫做語意檢索。
- Q:如何處理訊息中的換行導致回覆失敗?
A:在送出前用正則或字串替換把 \n 換成空格或移除不可見字元,可參考團長文章內的範例JSON程式碼解決。
- Q:我需要把工作流程設成 Active 嗎?
A:是的,只有把 workflow 啟用並部署在可公開存取的伺服器上,LINE 才能持續把事件送到你的 webhook 並得到回覆。
結語:什麼場景適合這個教學?
這套流程非常適合小型商家或正在試驗 AI 客服的新手:成本低、上手快、只要 10–30 筆常見問答就能快速部署。但如果你的知識庫龐大或文件非常多,建議改用向量資料庫來提升檢索效率與回覆品質。
