用 n8n 打造AI LINE客服機器人(保姆級教學,0 程式基礎也能上手)

 

為什麼要用 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 專案

  1. 前往 Google Cloud Console
  2. 使用您的 Google 帳號登入
  3. 點擊頁面頂部的專案選擇器,然後點擊「新增專案」
  4. 為專案命名(例如:「line」),然後點擊「建立」
  5. 等待專案建立完成,確保您已切換到新建立的專案

0.2 啟用 Google Sheets API

  1. 在 Google Cloud Console 中,前往左側選單的「API 和服務」→「程式庫」
  2. 在搜尋欄中輸入「Google Sheets API」
  3. 點擊「Google Sheets API」結果
  4. 點擊「啟用」按鈕
  5. 等待 API 啟用完成

0.3 建立服務帳戶

  1. 在左側選單中選擇「API 和服務」→「憑證」
  2. 點擊頁面頂部的「+ 建立憑證」
  3. 選擇「服務帳戶」
  4. 填寫服務帳戶詳細資訊:
    • 服務帳戶名稱:例如「n8n-sheets-access」
    • 服務帳戶 ID:會自動產生
    • 說明:可選填,例如「用於 n8n 存取 Google Sheets」
  5. 點擊「建立並繼續」
  6. 在「將這個服務帳戶的存取權授予專案」步驟中,可以跳過(點擊「繼續」)
  7. 在「將存取權授予使用者」步驟中,也可以跳過(點擊「完成」)

0.4 產生服務帳戶金鑰

  1. 在「憑證」頁面中,找到您剛建立的服務帳戶,點擊服務帳戶名稱
  2. 切換到「金鑰」標籤頁
  3. 點擊「新增金鑰」→「建立新金鑰」
  4. 選擇「JSON」格式,然後點擊「建立」
  5. JSON 檔案會自動下載到您的電腦,請妥善保存此檔案

0.5 準備您的 Google Sheets 文件

  1. 建立或開啟您的 Google Sheets 文件
    • 前往 Google Sheets
    • 建立新的試算表或開啟現有的試算表
    • 將您的常見問答資料整理好(例如:A欄放問題,B欄放答案)
  2. 複製Sheets 文件的URL
  3. 分享權限給服務帳戶
    • 在您的 Google Sheets 中,點擊右上角的「共用」按鈕
    • 在分享對象欄位中,輸入您在步驟 0.3 中建立的服務帳戶電子郵件地址
    • 服務帳戶電子郵件格式通常是:服務帳戶名稱@專案ID.iam.gserviceaccount.com
    • 您可以在 Google Cloud Console 的憑證頁面找到完整的服務帳戶電子郵件
    • 設定權限為「檢視者」(只需讀取權限即可)
    • 點擊「傳送」

0.6 在 n8n 中設定 Google Sheets 憑證

稍後在設定 Google Sheets 節點時,您需要:

  1. 選擇「Service Account」認證方式
  2. 上傳您在步驟 0.4 下載的 JSON 檔案,或複製其中的內容
  3. 主要需要的資訊包括:
    • 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:

  1. 前往 Business ID 註冊頁面
  2. 您可以選擇使用現有的 LINE 帳號或電子郵件地址來註冊
  3. 完成註冊流程

1.2 建立 LINE 官方帳號

註冊 Business ID 後:

  1. 系統會自動導向 LINE Official Account 申請表單
  2. 填寫必要資訊,包括:
    • 帳號名稱
    • 帳號類型
    • 行業類別
    • 其他相關資訊
  3. 完成表單提交後,您的 LINE Official Account 就建立完成了

1.3 確認官方帳號已建立

  1. 前往 LINE Official Account Manager
  2. 確認您剛建立的官方帳號出現在帳號列表中
  3. 記下帳號名稱,接下來會用到

1.4 為官方帳號啟用 Messaging API

現在要為您的官方帳號啟用 Messaging API 功能:

  1. LINE Official Account Manager 中選擇您的官方帳號
  2. 在左側選單找到「設定」→「Messaging API」
  3. 點擊「開始使用 Messaging API」

重要提醒: 如果您的帳號是第一次使用 LINE Developers Console,系統會要求您註冊開發者資訊,請輸入姓名和電子郵件。

1.5 選擇 Provider

在啟用 Messaging API 時,您需要選擇一個 Provider 來管理您的官方帳號:

  • 如果您計劃將此官方帳號與現有的 LINE 服務(如 LINE Login)整合,請選擇相同的 Provider
  • 如果這是您的第一個 LINE 開發專案,可以建立新的 Provider
  • 注意: 一旦指定 Provider 後就無法更改,請慎重選擇

1.6 進入 LINE Developers Console

  1. 前往 LINE Developers Console
  2. 使用您在 LINE Official Account Manager 中使用的同一個帳號登入
  3. 選擇您在步驟 1.5 中選擇的 Provider
  4. 確認您看到剛建立的 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 後台:

  1. 在 n8n 的 Webhook 節點中,您會看到 Test URL 和 Production URL。請複製Test URL。
  2. 回到剛剛的 LINE Developers Console Messaging API 標籤頁。
  3. 找到 Webhook URL 的欄位,點擊 Edit,然後貼上您剛剛從 n8n 複製的 URL,並儲存。
webhook line setting

步驟三:設定 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 }}(可直接拖曳)
lien機器人設定User Message

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」來建立新的憑證:

  1. 認證類型選擇: 選擇「Service Account」
  2. 填入憑證資訊: 您需要從步驟 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
設定line HTTP Request

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)
HTTP輸入line的金鑰示範

Body 設定:

  • Send Body: 啟用
  • Body Content Type: JSON
  • JSON: 貼上以下程式碼:

範例JSON檔案:

🔒

以下內容為免費會員專屬內容

註冊免費會員即可解鎖🔑閱讀完整內容

已經是會員了嗎? 點此登入

步驟六:測試與啟用工作流

6.1 儲存並啟用工作流

  1. 點擊畫面右上角的「Save」按鈕儲存工作流
  2. 將畫面右上角的開關切換為「Active」狀態

6.2 測試您的 LINE Bot

  1. 加入您的 LINE 官方帳號為好友:
    • 回到 LINE Official Account Manager
    • 找到您的官方帳號,取得 QR Code 或 LINE ID
    • 用您的個人 LINE 帳號掃描 QR Code 或搜尋加入好友
  2. 發送測試訊息:
    • 對您的 LINE Bot 發送與您 Google Sheets 中相關的問題
    • 觀察 Bot 是否能正確回覆
  3. 檢查執行狀況:
    • 回到 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 筆常見問答就能快速部署。但如果你的知識庫龐大或文件非常多,建議改用向量資料庫來提升檢索效率與回覆品質。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端