LINE 節點清單與欄位 mapping
這份是搭配
11-line-echo-bot-webhook.json一起使用的中文對照表。你在 n8n 裡匯入後,可以一邊看節點,一邊對照這份欄位表。
這份檔案在幫你解什麼問題
很多人匯入 workflow 之後,知道節點有接起來,卻不知道每個節點到底在拿什麼資料、吐出什麼資料。這份對照表的用途,就是把:
- 節點用途
- 核心欄位
- expression 來源
- 常見使用情境
一次整理清楚。
一、回聲機器人節點清單
1. Line Webhook
用途:
- 接收 LINE 事件
- 驗證 signature
- 依事件類型分 output
這個範例使用哪個 output:
text
必填:
PathWebhook credential,裡面放Channel Secret
你在 LINE 後台要填的 webhook URL:
https://你的公開網域/webhook/line-echo-demo二、第一個節點拿到的原始資料
收到文字訊息後,Line Webhook 的 text output 會有兩個關鍵欄位:
{
"destination": "xxxx",
"event": {
"type": "message",
"replyToken": "xxxx",
"timestamp": 1710000000000,
"source": {
"type": "user",
"userId": "Uxxxx"
},
"message": {
"id": "1111111111",
"type": "text",
"text": "你好"
}
}
}所以你真正常抓的是 event 裡面的值。
三、Normalize Text Event 欄位 mapping
這個節點的目的,是把 LINE 原始 payload 轉成比較好用的標準欄位。
| 新欄位 | Expression | 說明 |
|---|---|---|
eventType | {{$json.event.type}} | 事件類型 |
replyToken | {{$json.event.replyToken}} | 回覆這次事件用 |
receivedText | `{{$json.event.message.text | |
userId | `{{$json.event.source.userId | |
sourceType | `{{$json.event.source.type | |
messageId | `{{$json.event.message.id | |
receivedAt | `{{$json.event.timestamp |
為什麼要多這一步
因為你後面幾乎一定會做這些事:
- 寫入 Google Sheets
- 分類訊息
- 交給 AI 摘要或判斷
- 依 userId 查使用者資料
如果一開始不先正規化,後面每個節點都要一直寫很長的 expression。
四、Build Echo Message 節點
節點類型:
Line Message
Message Type:
Text
欄位:
| 欄位 | 值 |
|---|---|
Text | ={{'你剛剛說:' + $node["Normalize Text Event"].json.receivedText}} |
輸出結果:
{
"message": {
"type": "text",
"text": "你剛剛說:你好"
}
}注意:
- 這個節點只負責組 message object
- 它不會幫你送出
- 它的輸出主要就是
message
五、Reply to LINE 節點
節點類型:
Line Messaging API
Operation:
Send Message
欄位 mapping:
| 欄位 | Expression | 用途 |
|---|---|---|
ReplyToken | {{$node["Normalize Text Event"].json.replyToken}} | 對這次事件回覆 |
Message | {{$json.message}} | 拿上一個節點組好的 message object |
這裡有一個初學者常見誤會:
Reply to LINE 的輸入資料來自 Build Echo Message,所以 $json 只有 message。如果你想拿 replyToken,就不能直接寫 $json.replyToken,而要回頭抓:
{{$node["Normalize Text Event"].json.replyToken}}這是因為 Line Message 節點本身不會保留前一個節點所有欄位。
六、Respond to Webhook 節點
用途:
- 回傳 HTTP 200 給 LINE
在這個範例裡,回傳內容是:
{
"ok": true,
"message": "LINE webhook processed"
}這個回傳不是給 LINE 使用者看的,而是給 LINE 平台看的 HTTP 回應。
七、常見欄位總表
你最常遇到的 LINE event 欄位
| 欄位 | 位置 | 代表什麼 |
|---|---|---|
replyToken | event.replyToken | 回覆這次事件 |
userId | event.source.userId | 使用者對象 ID |
groupId | event.source.groupId | 群組對象 ID |
roomId | event.source.roomId | room 對象 ID |
message.id | event.message.id | 取多媒體內容 |
message.type | event.message.type | text/image/audio/video/location/sticker |
message.text | event.message.text | 使用者文字內容 |
timestamp | event.timestamp | 事件時間 |
八、常見場景對應哪個欄位
場景 1. 回覆當前訊息
你要用:
replyToken
場景 2. 排程主動推播
你要用:
userId- 或
groupId - 或
roomId
場景 3. 下載圖片或音訊
你要用:
message.id
場景 4. 記錄是誰送來的
你要用:
source.typeuserId
九、這個套件目前比較適合怎麼用
最適合先拿來做:
- 文字回覆 Bot
- 關鍵字分流 Bot
- LINE 通知出口
- 基本圖片接收與後續處理
比較不建議一開始就重壓:
- 複雜 Flex 編排
- 音訊訊息發送
- 高度正式商業流程且沒有備援方案
十、下一個你可以自己改的方向
如果你已經把回聲機器人跑通,下一步最值得改的是:
- 加
IF,做關鍵字分流 - 加
Get User Profile - 加
Google Sheets記錄對話 - 加
OpenAI做自動摘要或分類