Line OAAI AgentChatbot ขายของMessaging APILine Bot

AI Agent + Line OA — สอนสร้าง Chatbot ขายของ

เรียนรู้ AI Agent + Line OA ทีละขั้นตอน สร้าง Chatbot ขายของตอบลูกค้าอัตโนมัติ 24/7 พร้อม Webhook, LLM และ Knowledge Base สำหรับ SME ไทย เริ่มได้วันนี้

AI Unlocked Team
08/07/2569
AI Agent + Line OA — สอนสร้าง Chatbot ขายของ

AI Agent + Line OA — สอนสร้าง Chatbot ขายของ

ถ้าคุณขายของออนไลน์ในไทย คุณรู้ดีว่า Line OA คือช่องทางหลัก ที่ลูกค้าทักมาถามราคา ถามสต็อก และสั่งซื้อ แต่การตอบแชทด้วยมือตลอด 24 ชั่วโมงทำไม่ได้ และ Quick Reply แบบเดิมก็ตอบไม่ได้ทุกคำถาม

นั่นคือเหตุผลที่ AI Agent บน Line OA กำลังเป็นที่นิยมอย่างมากในกลุ่ม SME ไทย บทความนี้จะพาคุณสร้าง Chatbot ขายของตั้งแต่เริ่มต้นจนถึง Deploy จริง

สารบัญ

  1. ทำไม Line OA ถึงสำคัญสำหรับธุรกิจไทย
  2. เตรียมสิ่งที่ต้องใช้
  3. Step 1: สร้าง Line OA + เปิด Messaging API
  4. Step 2: เชื่อม Webhook กับ Backend
  5. Step 3: เพิ่ม LLM เข้าระบบ
  6. Step 4: สร้าง Knowledge Base
  7. Step 5: Test + Deploy
  8. ตัวอย่างจริง: ร้านขายของออนไลน์
  9. รับ Order + Notify ทีม
  10. ราคาแต่ละ Component
  11. ข้อจำกัด Line API ที่ต้องรู้
  12. Compliance: PDPA + Line Guideline

ทำไม Line OA ถึงสำคัญ

ประเทศไทยมีผู้ใช้ Line มากกว่า 52 ล้านคน ซึ่งคิดเป็นเกือบ 80% ของประชากรที่ใช้อินเทอร์เน็ต ต่างจากแพลตฟอร์มอื่น ลูกค้าไทยเคยชินกับการ ทักซื้อผ่าน Line ตั้งแต่ถามราคาจนถึงโอนเงิน

สิ่งที่ AI Agent ช่วยแก้ปัญหาได้:

  • ตอบนอกเวลาทำการ — Bot ไม่มีวันหยุด ตอบได้ 24/7
  • Scale ได้ทันที — ลูกค้า 100 คนทักพร้อมกัน Bot ตอบได้ทุกคน
  • ข้อมูลสินค้าครบ — ราคา, สต็อก, โปรโมชัน ดึงจาก DB จริง
  • เก็บ Lead อัตโนมัติ — ชื่อ, เบอร์, ความต้องการ บันทึกเข้า CRM ทันที

ดูภาพรวมว่า AI Agent คืออะไรและทำงานอย่างไรได้ที่ คู่มือ AI Agent ฉบับสมบูรณ์สำหรับคนไทย


เตรียมสิ่งที่ต้องใช้

สิ่งที่ต้องมีรายละเอียดราคา
Line OA Accountสมัครฟรีที่ manager.line.bizฟรี
Backend ServerNode.js / Python หรือใช้ n8n/Makeฟรี–500 บาท/เดือน
LLM APIClaude, OpenAI, หรือ Gemini500–3,000 บาท/เดือน
Knowledge BaseGoogle Sheets หรือ Notionฟรี
Domain + HTTPSต้องใช้สำหรับ Webhook300–600 บาท/ปี

Step 1: สร้าง Line OA + เปิด Messaging API

1.1 สร้าง Line OA

  1. ไปที่ https://manager.line.biz/
  2. คลิก สร้างบัญชี และเลือกประเภทบัญชีของคุณ (ร้านค้า, บริการ ฯลฯ)
  3. กรอกชื่อธุรกิจ, หมวดหมู่, และข้อมูลพื้นฐาน
  4. ยืนยันผ่านอีเมล

1.2 เปิด Messaging API

  1. ใน Line OA Manager ไปที่ การตั้งค่าMessaging API
  2. คลิก เปิดใช้ Messaging API
  3. ระบบจะพาคุณไปที่ https://developers.line.biz/console/
  4. เลือก Provider หรือสร้างใหม่
  5. สร้าง Channel ประเภท Messaging API

1.3 เก็บ Credentials สำคัญ

หลังสร้าง Channel แล้ว ให้บันทึกข้อมูลเหล่านี้ไว้:

Channel ID:           xxxxxxxxxx
Channel Secret:       xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Channel Access Token: เปิด Issue จาก Basic settings tab

สำคัญ: Channel Access Token ใช้ส่งข้อความออก, Channel Secret ใช้ verify ว่า request มาจาก Line จริง


Step 2: เชื่อม Webhook กับ Backend

2.1 ทำความเข้าใจ Webhook Flow

เมื่อลูกค้าส่งข้อความมาใน Line OA:

ลูกค้าส่งข้อความ
    ↓
Line Server
    ↓  POST request พร้อม event payload
Webhook URL ของคุณ (ต้องเป็น HTTPS)
    ↓
Backend ประมวลผล
    ↓  เรียก Reply API
ส่งข้อความตอบกลับ

2.2 ตัวอย่าง Webhook Payload

เมื่อ Line ส่ง event มาที่ server คุณจะได้รับ JSON แบบนี้:

{
  "destination": "xxxxxxxxxx",
  "events": [
    {
      "type": "message",
      "message": {
        "type": "text",
        "id": "14353798921116",
        "text": "สินค้าเหลือกี่ชิ้น?"
      },
      "timestamp": 1625665242211,
      "source": {
        "type": "user",
        "userId": "U80696558e1aa831..."
      },
      "replyToken": "b60d432864f44d079f6d8bbe...",
      "mode": "active"
    }
  ]
}

2.3 Verify Signature (สำคัญมาก)

ก่อนประมวลผลทุก request ต้อง verify ว่ามาจาก Line จริง โดยใช้ x-line-signature header:

const crypto = require('crypto');

function verifyLineSignature(body, signature, channelSecret) {
  const hash = crypto
    .createHmac('SHA256', channelSecret)
    .update(body)
    .digest('base64');
  return hash === signature;
}

// ใน Express handler
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-line-signature'];
  const body = JSON.stringify(req.body);
  
  if (!verifyLineSignature(body, signature, process.env.LINE_CHANNEL_SECRET)) {
    return res.status(403).send('Forbidden');
  }
  
  // ประมวลผล events ต่อ
  res.status(200).send('OK');
});

2.4 ส่งข้อความตอบกลับด้วย Reply API

async function replyMessage(replyToken, messages) {
  const response = await fetch('https://api.line.me/v2/bot/message/reply', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${process.env.LINE_CHANNEL_ACCESS_TOKEN}`
    },
    body: JSON.stringify({
      replyToken: replyToken,
      messages: messages
    })
  });
  return response.json();
}

// ตัวอย่างการใช้
await replyMessage(replyToken, [
  {
    type: 'text',
    text: 'ขอบคุณที่ติดต่อมานะคะ รอสักครู่ได้เลยค่ะ'
  }
]);

หมายเหตุ: Reply API ใช้ได้ภายใน 30 วินาทีหลังได้รับ event ถ้าต้องการส่งข้อความทีหลังให้ใช้ Push API แทน

2.5 ใช้ n8n แทนการเขียน Code

ถ้าไม่อยากเขียน code เอง สามารถใช้ n8n ได้ ซึ่งมี Line node ให้ใช้งานสำเร็จรูป ดูวิธีสร้าง bot ด้วย n8n ได้ที่ สร้าง Telegram Bot ด้วย n8n (แนวคิดเดียวกัน แค่เปลี่ยนจาก Telegram เป็น Line)


Step 3: เพิ่ม LLM เข้าระบบ

3.1 เลือก LLM ที่เหมาะสม

LLMจุดเด่นราคา (ต่อ 1M tokens)
Claude Sonnetเก่งภาษาไทย, ตอบฉลาด~900 บาท input / ~4,500 บาท output
GPT-4o miniราคาถูก, เร็ว~60 บาท input / ~250 บาท output
Gemini Flashฟรี tier มีฟรี–ถูก

สำหรับ Chatbot ขายของทั่วไป GPT-4o mini หรือ Gemini Flash ประหยัดกว่า แต่ถ้าต้องการคุณภาพสูงใช้ Claude

3.2 System Prompt สำหรับ Chatbot ขายของ

const systemPrompt = `คุณคือผู้ช่วยขายของของร้าน [ชื่อร้าน] ทำหน้าที่:
1. ตอบคำถามเกี่ยวกับสินค้าและราคา
2. แนะนำสินค้าที่เหมาะกับความต้องการลูกค้า
3. รับ Order และสรุปรายการสั่งซื้อ
4. แจ้งข้อมูลการจัดส่ง

กฎสำคัญ:
- ตอบภาษาไทยเสมอ
- ถ้าไม่มีสินค้าในระบบ ให้บอกว่าหมดและเสนอสินค้าใกล้เคียง
- ถ้าลูกค้าต้องการสั่งซื้อ ให้ขอชื่อ, เบอร์โทร, ที่อยู่จัดส่ง
- ห้ามให้ข้อมูลที่ไม่มีในฐานข้อมูล`;

async function callLLM(userMessage, conversationHistory, productContext) {
  const response = await fetch('https://api.openai.com/v1/chat/completions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-4o-mini',
      messages: [
        { role: 'system', content: systemPrompt + '\n\nข้อมูลสินค้าปัจจุบัน:\n' + productContext },
        ...conversationHistory,
        { role: 'user', content: userMessage }
      ],
      max_tokens: 500
    })
  });
  const data = await response.json();
  return data.choices[0].message.content;
}

Step 4: สร้าง Knowledge Base

4.1 ใช้ Google Sheets (ง่ายที่สุด)

สร้าง Google Sheet ที่มีคอลัมน์:

product_idnamepricestockdescriptioncategory
P001เสื้อยืดขาว29950เสื้อยืด Cotton 100%เสื้อผ้า
P002กางเกงยีนส์59930Slim fit สีน้ำเงินกางเกง

จากนั้นใช้ Google Sheets API ดึงข้อมูลมาใส่ใน Context ของ LLM:

async function getProductContext() {
  const sheets = google.sheets({ version: 'v4', auth });
  const response = await sheets.spreadsheets.values.get({
    spreadsheetId: process.env.SHEET_ID,
    range: 'Products!A2:F100'
  });
  
  const rows = response.data.values;
  return rows.map(row => 
    `${row[1]} (ID: ${row[0]}) ราคา ${row[2]} บาท สต็อก ${row[3]} ชิ้น - ${row[4]}`
  ).join('\n');
}

4.2 ใช้ Notion Database

ถ้าคุณจัดการสินค้าผ่าน Notion อยู่แล้ว สามารถดึงข้อมูลผ่าน Notion API ได้โดยตรง วิธีนี้เหมาะสำหรับทีมที่อัปเดตสินค้าบ่อย เพราะอัปเดต Notion แล้ว Bot จะรู้ทันที

4.3 Vector Database (สำหรับ Catalog ใหญ่)

ถ้ามีสินค้ามากกว่า 500 รายการ แนะนำให้ใช้ Vector DB อย่าง Pinecone หรือ Supabase pgvector เพื่อค้นหาสินค้าที่เกี่ยวข้องกับคำถามลูกค้าแบบ Semantic Search แทนการยัด catalog ทั้งหมดใน prompt


Step 5: Test + Deploy

5.1 ทดสอบด้วย Line Webhook Tester

  1. ใน https://developers.line.biz/console/ ไปที่ Channel ของคุณ
  2. คลิกแท็บ Messaging API
  3. เลื่อนลงหา Webhook URL กรอก URL ของ server คุณ
  4. คลิก Verify เพื่อทดสอบ connection
  5. ส่งข้อความทดสอบจากมือถือ

5.2 ใช้ ngrok สำหรับ Local Testing

# ติดตั้ง ngrok แล้วรัน
ngrok http 3000

# คุณจะได้ URL แบบนี้
# https://xxxx-xx-xx-xx-xx.ngrok-free.app

# นำ URL นี้ไปใส่ใน Line Webhook URL:
# https://xxxx-xx-xx-xx-xx.ngrok-free.app/webhook

5.3 Deploy ขึ้น Production

ตัวเลือกที่แนะนำ:

  • Railway.app — Deploy Node.js ง่าย, ฟรี tier มี, $5/เดือนสำหรับ production
  • Render.com — คล้าย Railway, มี free tier แต่ sleep เมื่อไม่มีการใช้งาน
  • VPS บน Hetzner/DigitalOcean — ควบคุมได้เต็มที่, $5–$10/เดือน

ข้อควรระวัง: Line Webhook ต้องการ HTTPS เท่านั้น ถ้าใช้ VPS ต้องติดตั้ง SSL certificate (ใช้ Let's Encrypt ฟรี)


ตัวอย่างจริง: ร้านขายของออนไลน์

สมมติคุณขายเสื้อผ้าออนไลน์ มีสินค้า 200 รายการ ต่อไปนี้คือ flow จริงที่ Bot จะทำงาน:

ลูกค้า: "มีเสื้อยืดสีขาวไหมคะ ราคาเท่าไหร่?"

Bot ทำงานเบื้องหลัง:

  1. รับข้อความผ่าน Webhook
  2. ค้นหาใน Knowledge Base ด้วยคำว่า "เสื้อยืดสีขาว"
  3. พบสินค้า P001 ราคา 299 บาท สต็อก 50 ชิ้น
  4. ส่งข้อมูลให้ LLM สร้างคำตอบ
  5. ส่งตอบกลับผ่าน Reply API ภายใน 2-3 วินาที

Bot ตอบ: "มีค่ะ เสื้อยืด Cotton 100% สีขาว ราคา 299 บาท ตอนนี้มีสต็อก 50 ตัวค่ะ ต้องการสั่งซื้อเลยไหมคะ? รับส่งทั่วประเทศ ส่งฟรีเมื่อซื้อครบ 500 บาทค่ะ"

ลูกค้า: "เอา 2 ตัวเลยนะ"

Bot: "รับออเดอร์ 2 ตัว รวม 598 บาทค่ะ ขอชื่อและที่อยู่จัดส่งได้เลยค่ะ"


รับ Order + Notify ทีม

เมื่อลูกค้ายืนยัน Order Bot ควรทำสิ่งเหล่านี้อัตโนมัติ:

บันทึก Order ลง Database

async function saveOrder(userId, items, customerInfo) {
  const order = {
    lineUserId: userId,
    items: items,
    total: items.reduce((sum, item) => sum + item.price * item.qty, 0),
    customerName: customerInfo.name,
    phone: customerInfo.phone,
    address: customerInfo.address,
    status: 'pending',
    createdAt: new Date().toISOString()
  };
  
  // บันทึกลง Supabase / Google Sheets / Airtable
  await saveToDatabase(order);
  return order;
}

แจ้งทีมผ่าน Line Group หรือ Push Message

async function notifyTeam(order) {
  // ส่งผ่าน Push API ไปยัง userId ของแอดมิน
  await fetch('https://api.line.me/v2/bot/message/push', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${process.env.LINE_CHANNEL_ACCESS_TOKEN}`
    },
    body: JSON.stringify({
      to: process.env.ADMIN_USER_ID,
      messages: [
        {
          type: 'text',
          text: `🛍️ ออเดอร์ใหม่!\nลูกค้า: ${order.customerName}\nสินค้า: ${order.items.map(i => i.name).join(', ')}\nยอดรวม: ${order.total} บาท\nที่อยู่: ${order.address}`
        }
      ]
    })
  });
}

สำหรับ Use Case Customer Service เพิ่มเติม ดูที่ AI Agent สำหรับ SME ไทย


ราคาแต่ละ Component

นี่คือ ค่าใช้จ่ายในการรันระบบต่อเดือน (ไม่ใช่ค่า AI Unlocked):

Componentตัวเลือกประหยัดตัวเลือกมาตรฐาน
Line OAฟรี (500 msg/เดือน)1,200 บาท/เดือน (ส่งไม่จำกัด)
LLM API~500 บาท/เดือน (Gemini/GPT-mini)~2,000–3,000 บาท/เดือน (Claude)
Backend Serverฟรี (Railway free tier)~500 บาท/เดือน (VPS)
Knowledge Baseฟรี (Google Sheets)ฟรี (Notion)
รวมทั้งหมด~500 บาท/เดือน~5,000 บาท/เดือน

Note สำคัญเรื่อง Line OA ฟรี tier: Plan ฟรีจะ limit Broadcast message ที่ 500 ข้อความต่อเดือน แต่ Reply API ไม่มี limit นั่นคือ bot ตอบแชทได้ไม่จำกัด มีค่าใช้จ่ายเพิ่มเฉพาะเมื่อคุณ Push หรือ Broadcast ออกไปเอง


ข้อจำกัด Line API ที่ต้องรู้

ก่อน Deploy ต้องเข้าใจ limitation เหล่านี้:

1. Reply Token หมดอายุ 30 วินาที

Reply API ใช้ได้เฉพาะภายใน 30 วินาทีหลังได้รับ event ถ้า LLM ตอบช้า ต้องใช้ Push API แทน (ซึ่งนับ quota)

2. Rate Limit ของ Push API

Plan ฟรีได้ฟรี 500 Push messages/เดือน Plan เสียเงินมี rate limit ที่ 2,000 requests/วินาที ถ้าเกินต้องใช้ Multicast API

3. ประเภทข้อความที่รองรับ

Line Messaging API รองรับ: text, image, video, audio, file, sticker, location, flex message, quick reply เป็นต้น แต่ ไม่รองรับ voice note หรือ emoji แบบ custom

4. User ID vs Group ID

Line OA สามารถเพิ่มเข้า Group ได้ แต่ userId ที่ได้ใน Group events จะต่างจาก userId ใน 1-on-1 chat ต้องจัดการ mapping ให้ถูกต้อง

5. ไม่สามารถเริ่ม Conversation ก่อนได้

Line Policy ไม่อนุญาตให้ Bot ส่ง Push message ไปยัง userId ที่ยังไม่เคย add OA (ยกเว้น Broadcast ที่ผู้ใช้ยอมรับ)


Compliance: PDPA + Line Guideline

PDPA (พ.ร.บ.คุ้มครองข้อมูลส่วนบุคคล)

เมื่อ Bot เก็บข้อมูลลูกค้า (ชื่อ, เบอร์, ที่อยู่) คุณมีหน้าที่:

  1. แจ้งวัตถุประสงค์ — บอกชัดเจนว่าเก็บข้อมูลไปทำอะไร
  2. ขอ Consent — แนะนำให้มีข้อความแจ้งก่อนขอข้อมูล เช่น "เพื่อจัดส่งสินค้า ทางร้านจะเก็บชื่อและที่อยู่ของคุณ ยืนยันได้เลยนะคะ"
  3. เก็บข้อมูลเท่าที่จำเป็น — ไม่เก็บ LINE User ID นานเกินจำเป็น
  4. ให้สิทธิ์ลบข้อมูล — มีช่องทางให้ลูกค้าขอลบข้อมูลได้

Line Developer Guideline

  • ห้ามส่ง spam หรือ unsolicited messages
  • Bot ต้องบอกว่าเป็น AI ได้ถ้าลูกค้าถาม (ไม่ควรแกล้งทำเป็นคนจริง)
  • ห้ามเก็บ Line User ID ไปขายต่อหรือแชร์กับ third party โดยไม่ได้รับอนุญาต
  • ต้อง comply กับ Line's Messaging API Policy

สรุปและขั้นตอนต่อไป

การสร้าง AI Agent บน Line OA ไม่ได้ยากอย่างที่คิด โดยเฉพาะถ้าใช้เครื่องมือ no-code อย่าง n8n ช่วย ต้นทุนเริ่มต้นอยู่ที่ประมาณ 500 บาท/เดือน แต่ให้ผลตอบแทนชัดเจน ทั้งประหยัดเวลาตอบแชท เพิ่มยอดขายนอกเวลาทำการ และเก็บ Lead ได้อัตโนมัติ

ถ้าอยากเรียนรู้เรื่อง AI Agent เชิงลึกขึ้น ดูเพิ่มเติมได้ที่:

พร้อมสร้าง AI Agent ของตัวเองแล้วใช่ไหม? ดูแพ็กเกจและหลักสูตรที่ AI Unlocked Pricing เพื่อเรียนรู้กับผู้เชี่ยวชาญที่จะช่วยให้คุณ Deploy Bot ของคุณเองได้ภายใน 1 วัน

เขียนโดย

AI Unlocked Team