為什麼要用 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 才能讀取您的知識庫資料。
前往 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 文件
複製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。
新增節點: 新增 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-----)
操作設定:
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檔案:
[membership level=”1,2,3,4,5,6″]
{
"replyToken":"{{ $('Webhook').item.json.body.events[0].replyToken }}",
"messages":[
{
"type":"text",
"text":"{{ (typeof $json.output === 'string' ? $json.output : JSON.stringify($json.output)).replace(/\\/g,'\\\\').replace(/\"/g,'\\\"').replace(/\r?\n/g,'\\n') }}"
}
]
}
[/membership]
步驟六:測試與啟用工作流
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 資料格式清楚,建議第一列放標題(如「問題」、「答案」),後續列放實際資料。
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 筆常見問答就能快速部署。但如果你的知識庫龐大或文件非常多,建議改用向量資料庫來提升檢索效率與回覆品質。