← Writing
Automation

Mini Project: n8n + LINE Chatbot

สร้าง Chatbot ตอบคำถามลูกค้า

30 Aug 202525 min readRAGChatGPTAI AgentDashboard

Mini Project: n8n + LINE Chatbot

สร้าง Chatbot ตอบคำถามลูกค้า

Connect with me and follow our journey: Linkedin, Facebook

สวัสดีครับ 👋 ยินดีต้อนรับกลับมาสู่ซีรีส์ AI Automation ที่ผมตั้งใจทำขึ้นเพื่อแบ่งปันประสบการณ์จริงในการสร้าง Automation Tools ที่สามารถนำไปใช้ได้ทั้งในชีวิตประจำวันและการทำงาน

ที่ผ่านมาเราได้เรียนรู้หลายหัวข้อแล้ว เช่น

make.com

n8n

ใน Mini Project นี้ เราจะมาลองสร้าง LINE Chatbot ที่สามารถตอบคำถามลูกค้าได้อัตโนมัติ โดยใช้ n8n มาช่วยจัดการ Workflow และเชื่อมต่อกับ AI Model (เช่น Gemini หรือ ChatGPT)

Step 1: ติดตั้งบน Cloud Provider ด้วย Render.com

1.1) บน Railway

  • ควรเริ่มจากสมัคร Github ก่อน แล้วสมัคร Railway ผ่าน Github อีกที
  • เข้าไปที่ https://railway.com/new → ใครที่พึ่งสมัครจะได้ใช้งาน 30 วันฟรี แต่ถ้าใครสมัครแล้ว จะมีรายเดือน 5$ (5$ คือ minimum ถ้าใช้เกิดก็จ่ายส่วนต่าง)

  • Click รูป Profile → Workspace Settings → General → เลือก Preferred Deployment Region เป็น Singapore แล้วกด Update Region

  • Click Logo ด้านบน จะกลับมาที่หน้าหลัก แล้วเลือก + New

  • เลือก Deploy a template

  • เลือก N8N (w/ workers) → Deploy

  • กด Deploy ถ้าขึ้นเครื่องหมายถูกทั้ง 4 อันแปลว่าเรียบร้อย

  • กดไปที่ Primary → จะได้ Link → กดเข้าไปที่ Link

  • สมัครสมาชิกให้เรียบร้อย (สมัครเสร็จจะมี Email → กด Activate License Key ด้วยนะ)

  • เท่านี้ก็เรียบร้อย

1.2) บน Render (เผื่อใครสนใจ ไม่มีส่วนเพิ่ม, Free Tier ผมเปิดไม่ได้นะ ถ้าจะทำให้ใช้ 7$)

  • สมัครใช้งานให้เรียบร้อย → จากนั้นกด skip

  • กด Deploy a Web Service
    (หรืออาจจะกด + Create new project → ใส่ชื่อ → Web Services)

  • เลือก Existing Image

  • เลือก Docker → เลื่อนลงมาในหัวข้อ Using with PostgreSQL → นำ Code บรรทัดสุดท้ายมา docker.n8n.io/n8nio/n8n

  • เอาไปวางที่ Image URL → กด Connect

  • ใส่ชื่อ และ เลือก Region

  • ถ้าอยาก Free ก็เลือก Free แต่ถ้าให้แนะนำ เลือก 7$ / month ก็ดีเพราะจะสามารถลองรับ Auto-Post, Online-Chatbot หรือถ้าใครมี Traffic เยอะก็ต้องเลือกขนาดที่ใหญ่ขึ้น (แพงขึ้น)

Note: ผมลองแบบไม่เสียเงินแล้วไม่ผ่าน ผมเลยไม่ได้ใช้วิธีนี้ต่อนะครับ (แต่จะเขียนให้จบเผื่อใครอยาก Host ที่ Web นี้)

  • กด Deploy Web Service

  • เราก็จะได้ URL มา

  • เมื่อ Deploy เสร็จ ก็จะสามารถเข้าใช้งานได้ จะได้ Link มา แต่ยังเป็นบนเครื่องนะ

  • เลือก Environment → + Add
    - N8N_PROTOCOL: https
    - WEBHOOK_URL: ใส่ link จากด้านบน
    - Save and Deploy

  • ถ้าสมัครแบบเสียเงิน แนะนำให้เพิ่ม Disks เข้าไปด้วย เป็นแบบ 1GB ก็พอ

สำหรับใคร Deploy ไม่สำเร็จ ก็ใช้ Local-Host Run ไปก่อนถ้าใครทำสำเร็จ

  • ตัวอย่าง Link จาก Railway Host: https://primary-production-xxxx.up.railway.app/home/workflows
  • ตัวอย่าง Link จาก Render Host: https://n8n-testchatbot-20250812.onrender.com/webhook-test/Chatbot_test_20250812
  • ตัวอย่าง Link จาก Local Host: http://localhost:5678/webhook-test/Chatbot_test_20250812 (ถ้าให้จะใช้ Local Host ต้องไปทำ Step สร้าง https link ด้วย Ngrok ก่อนนะครับ)

Step 2: สร้าง Line Chatbot

  • ไปที่ Line Developer
  • กด Create ที่ Provider → ตั้งชื่อ (ในที่นี้ผมใช้ Chatbot_test_20250812) → กด Create

  • เลือก Create a Messaging API channel

  • กรอกข้อมูลต่างๆให้เรียบร้อย

  • กด เสร็จสิ้น

  • ถ้าถึงหน้านี้แปลว่า ok

  • ไปที่ Line Official Account → เลือก Account ที่พึ่งสร้างไป (ถ้ามีถามข้อตกลง ให้กด ยอมรับ ไป)

  • ไปที่ Setting → Messaging API → Enable Messaging API

  • เลือก Provider → กด Agree → ok → ok

  • ถ้าขึ้นหน้านี้แปลว่า ok

Step 3: Set up Chatbot in n8n

  • Add Webhook

  • เปลี่ยนชื่อ Path เสร็จแล้วอย่าลืม Copy Link (โดยการ Click)

  • ไปที่ Response settings แล้วเปิด Webhooks

  • กลับไปที่ n8n → Webhook setting เปลี่ยนจาก Get → Post → กด Listen for test event

  • ลองพิม Chat ทดสอบใน Line

  • จะเห็นว่า n8n ได้รับ information แล้ว
    (ถ้าใครไม่ได้ลองกด save ใน n8n แล้วกด Listen for test event อีกที)

  • กด + แล้วเลือก Edit

  • ลาก 1)ข้อความของเรา และ 2) Reply Token เข้ามาที่ Fields to Set → เปลี่ยนชื่อเป็น chat_text และ reply_token → กด Test

การทำแบบนี้ จะทำให้เราดูค่าง่ายขึ้น

  • Add AI Agent

  • เลือก Define below → แล้วกด Back to canvas ที่มุมซ้ายบน

  • กด + ที่ Chat Model → เลือก Generative AI Model ที่ต้องการ (ในที่นี้ขอเลือกเป็น Google Gemini Chat Model)

สำหรับคนที่เลือก ChatGPT

  • ข้าม Invite team ไปโดยกด I’ll invite my team later
  • กรอก API key name และ Project name → กด Generate API Key

  • Copy Key เก็บไว้ (อาจวางใน Notepad ก็ได้) แล้วกด Continue

  • เลือกจำนวนเงินที่ต้องการ → กด Purchase credits → กรอกข้อมูลการชำระเงินให้เรียบร้อย

  • Edit budget ตามที่ต้องการ

  • ไปที่ API keys แล้วเลือก + Create new secret key

  • ใส่ชื่อ Project แล้วกด Create secret key → Copy เก็บไว้

สำหรับคนที่เลือก Gemini Model

  • กด Create API Key → ใส่ชื่อ Project ที่ต้องการ (หรือเลือก Project ที่มีอยู่) → กด Create API key in existing project → Copy API key ที่ได้มาเก็บไว้

กลับมาต่อที่ n8n

  • กด Create Credential

  • นำ API_Key ที่ได้มาวาง → กด Save

  • ในส่วนของ Memory เลือก Simple Memory

  • ตั้งค่าตามนี้
    - Session ID: Define below
    - Key: {{ $(‘Edit Fields’).item.json.user_id }}
    - Context Window Length: 5

(Optional) เพิ่มความสะดวกในการ Test ครั้งต่อไป: ถอด Webhook ออกแล้วใส่ Chat Trigger เพื่อจะได้พิมข้อความในนี้ได้เลย (อย่าลืมไปปรับ parameter อื่นๆด้วย) → ถ้าพอใจแล้วเปลี่ยนกลับมาที่ Webhook แบบเดิม

  • ในส่วนของ AI Agent

🏢 System Prompt: Donato Residence Virtual Assistant

You are Donato Residence Virtual Assistant, a friendly and professional rental consultant for Donato Residence apartments in Bangkok.

This is the customer’s question: {{ $json.chat_text }}

🎯 Your Role & Tone

  • Act as a knowledgeable rental consultant.
  • Tone: Warm, polite, concise, professional.
  • Bilingual: Support Thai and English (respond in the language the customer uses).
  • Focus exclusively on Donato Residence apartments (do not answer unrelated topics).

🏠 Knowledge Base: Donato Residence Information
📍 Location

  • Bangkok, ใกล้ BTS ศาลาแดง และ MRT สีลม
  • ใกล้ห้างสรรพสินค้าและร้านสะดวกซื้อ
    🏘️ Room Types
  • Studio 25 ตร.ม. — THB 25,000 / month
  • 1 Bedroom 50 ตร.ม. — THB 40,000 / month
    🛋️ Amenities (ทุกห้องมี)
  • แอร์
  • ตู้เย็น
  • ทีวี
  • เครื่องทำน้ำอุ่น
    📑 Lease Terms
  • สัญญาขั้นต่ำ: 1 ปี
  • มัดจำ: 2 เดือน + ล่วงหน้า: 1 เดือน
  • รวมค่าส่วนกลางแล้ว (ค่าน้ำ–ไฟตามมิเตอร์จริง)
  • ไม่อนุญาตให้เลี้ยงสัตว์
  • เข้าอยู่ได้ทันที
    📞 Contact
  • Phone: 081-234-5678
  • LINE: @DonatoResidence
  • Email: donato.residence@email.com

💬 FAQ Reference
ค่าใช้จ่าย & สัญญา

  • ราคานี้รวมอะไรบ้าง? → รวมค่าส่วนกลาง ค่าน้ำ–ไฟคิดตามมิเตอร์
  • มัดจำ/ล่วงหน้าเท่าไหร่? → มัดจำ 2 เดือน + ล่วงหน้า 1 เดือน
  • ต่อสัญญา/ปรับราคาปีถัดไปอย่างไร? → ต่อสัญญารายปี เงื่อนไขและราคาปรับตามประกาศ แจ้งล่วงหน้าก่อนครบสัญญา
  • ยกเลิกสัญญาก่อนกำหนดได้ไหม? → เป็นไปตามเงื่อนไขในสัญญา (อาจมีค่าปรับ/ริบมัดจำ)
  • วิธีชำระค่าเช่า? → โอนเงิน/พร้อมเพย์
    สิ่งอำนวยความสะดวก
  • มีอินเทอร์เน็ตไหม? → ไม่มีในแพ็กเกจ แนะนำใช้ซิมหรือติดตั้งเพิ่ม
  • มีบริการแม่บ้านไหม? → มี, 1,500 บาท/เดือน ทำความสะอาดสัปดาห์ละ 1 ครั้ง
  • มีเครื่องซักผ้า/บริการซักรีดไหม? → มีบริการซักผ้าโดยแม่บ้าน (ติดต่อเพิ่มเติมที่นิติบุคคล)
    การอยู่อาศัย
  • พักได้กี่คน? → 25 ตร.ม. = ไม่เกิน 2 คน / 50 ตร.ม. = ไม่เกิน 3 คน
  • ที่จอดรถมีไหม? → มี คันละ 1,500 บาท/เดือน (ที่จอดประจำ)
  • สูบบุหรี่ได้ไหม? → ห้ามในห้อง, ระเบียงตามกฎนิติบุคคล
  • ทำอาหารได้ไหม? → ได้ แต่เฉพาะแบบเบา ๆ ต้องระบายอากาศ และรักษาความสะอาด
  • ผู้มาเยือน/ค้างคืนได้ไหม? → ได้ตามสมควร แต่ไม่เกินจำนวนผู้พักที่กำหนด
    บริการอื่น ๆ
  • การบำรุงรักษา/แจ้งซ่อม → แจ้งผู้ให้เช่าหรือนิติบุคคล ผ่านโทร/LINE
  • รับพัสดุได้ที่ไหน? → เคาน์เตอร์/ล็อบบี้ของนิติบุคคล
  • เอกสารที่ใช้ทำสัญญา? → สำเนาบัตรประชาชน/พาสปอร์ต + หลักฐานรายได้/งาน + ข้อมูลติดต่อฉุกเฉิน
    ความปลอดภัย & ทำเล
  • มีมาตรการความปลอดภัยอะไรบ้าง? → รปภ. 24 ชม., CCTV, Keycard Access
  • เวลาเงียบสงบ? → ตามกฎนิติบุคคล (ช่วงกลางคืน)
  • ทำเล/การเดินทาง? → ใกล้ BTS ศาลาแดง, MRT สีลม, ห้างและร้านสะดวกซื้อ
    การเข้าอยู่
  • เข้าอยู่ได้เมื่อไหร่? → เข้าอยู่ได้ทันที
  • นัดชมได้อย่างไร? → จองคิวล่วงหน้า 1 วัน โทร 081-234-5678 หรือ LINE @DonatoResidence

⚙️ Rules of Interaction

  • ตอบชัดเจนและเป็นมิตร ใช้ bullet points หรือย่อหน้าไม่ยาวเกินไป
  • ถ้าคำถามเกี่ยวกับห้องพัก ราคา ทำเล เงื่อนไข → ใช้ข้อมูลใน Knowledge Base / FAQ
  • ถ้าผู้ใช้สนใจนัดชม → แนะนำช่องทางติดต่อ (Phone, LINE, Email)
  • ถ้ามีคำถามที่ไม่เกี่ยวข้อง (เช่น เรื่องการเมือง, อพาร์ทเมนต์อื่น) → ปฏิเสธอย่างสุภาพ พร้อม redirect เช่น:
    "ฉันสามารถให้ข้อมูลได้เฉพาะเกี่ยวกับ Donato Residence เท่านั้น คุณสนใจอยากทราบเรื่องห้องพัก ราคา หรือการนัดชมใช่ไหมครับ?" หรือ
    “I can only provide information about Donato Residence. Would you like to know about our rooms, pricing, or booking a visit?”
    ภาษา: ถามภาษาไทย → ตอบไทย / ถามอังกฤษ → ตอบอังกฤษ
  • Add Code เข้าไปหลัง AI Agent

return [{
json: {
replyToken: $json.replyToken,
output: String($json.output || "")
.trim()
.replace(/\n/g, "\n") // escape newline
.replace(/"/g, '\"') // escape double quotes
}
}];

  • Add HTTP Request

  • กด Import cURL → ใส่ code ด้านล่างเข้าไปแล้วกด Import

curl -X POST https://api.line.me/v2/bot/message/reply \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {CHANNEL_ACCESS_TOKEN}" \
-d '{
"replyToken": "{REPLY_TOKEN}",
"messages": [
{
"type": "text",
"text": "สนใจรายละเอียดส่วนไหนคะ?",
"quickReply": {
"items": [
{ "type": "action", "action": { "type": "message", "label": "ดูห้องว่าง", "text": "ขอรายละเอียดห้องว่าง" } },
{ "type": "action", "action": { "type": "message", "label": "ราคา", "text": "ขอทราบราคาเช่า" } },
{ "type": "action", "action": { "type": "message", "label": "เงื่อนไขเช่า", "text": "ขอทราบเงื่อนไขการเช่า" } },
{ "type": "action", "action": { "type": "uri", "label": "นัดชม", "uri": "https://forms.gle/YOUR_GOOGLE_FORM_ID" } }
]
}
}
]
}'

  • ไปที่ https://developers.line.biz/console/: ไปที่ Admin ที่สร้างไว้ เข้ามาหัวข้อ Messaging API ไปด้านล่างเพื่อ Generate Channel access token

  • กลับมาที่ n8n: ใส่ Channel secret เข้าไปหลังคำว่า Bearer

  • นำ output กับ reply_token ไปแทนที่ test กับ {REPLY_TOKEN}

ถ้าอยากปรับเป็น Production

  • Click Webhook

  • เลือก Production URL → Copy Link

  • ไปที่ n8n → เปิด Active

Step 3: เพิ่ม Human in the loop (เขียนแบบรวบรัด)

เผื่อไม่ให้ Blog ยาวเกินไป เราจะอธิบายจากภาพจบ ไล่ไปทีละ Node

  • Add Google Sheets: Append or update row in sheet มาด้านหลัง HTTP Request

  • กด + credential

  • กด Enable (ถ้าขึ้น Manage แปลว่าเรียบร้อยแล้ว)

  • ทำแบบเดิมอีกที กับ Google Sheet API และ Google Doc API

  • ไปที่ APIs & ServicesCredentials

  • เลือก + Create credentialsOAuth client ID

  • เลือก Web application → ตั้งชื่อที่ต้องการ

  • ในช่อง Authorized JavaScript origins → นำ URLs จาก n8n ไปวาง

  • ในช่อง Authorized redirect URLs → นำ OAuth Redirect URL ไปวาง

  • กด Create

  • Copy Client ID กับ Client secret

  • นำ Client ID กับ Client SecretSave

  • กด Sign in with Google (กดดำเนินการต่อ และ เลือกทั้งหมด)

ถ้าใครพึ่งทำครั้งแรก แนะนำให้ทำต่อให้ครบทั้ง Google Doc และ Google Drive

  • กด +Credential

  • ค้นหา Google DriveContinue

กลับมาต่อกัน

  • สร้าง Google Sheet สำหรับเก็บ Data

  • มาที่ n8n → Google sheet: Append or update row in sheet → เลือก File ที่เราสร้างไว้ และ Link ข้อมูลต่างๆให้ครบ

  • เพิ่ม If เข้าไปหน้า AI Agent → เพื่อ Detect ว่าเรียก แอดมิน หรือไม่

  • เพิ่ม HTTP Request และ Google sheet: Append or update row in sheet → เพื่อให้ตอบกลับไปว่า “รอสักครู่นะคะ เดี๋ยวรีบตามแอดมินมาให้ค่ะ”

  • เพิ่ม node ต่างๆตามด้านล่าง ใครเป็นผู้ Chat เข้ามา หรือเป็น new user

  • ถ้าเป็น user ที่มี status: Call Admin ให้ Chatbot ไม่สามารถตอบได้ (รอ admin มาตอบ)

  • ผลลัพธ์ที่ได้

สนทนาปกติ

เมื่อลูกค้าพิม “ติดต่อ Admin” + Admin มาตอบ

(Optional): การเพิ่ม RAG

  • เปิด Workflow ใหม่
  • Add Trigger manually

  • Add: Google Docs: Get a document

  • เราต้องมี Document ใน Google Doc (ผมจำลองเป็นข้อมูลผู้เช่าแล้วกันนะครับ) → Copy Document ID

  • กลับมาที่ n8n → วาง Doc ID ลงไป
  • (Under Construction)

โปรเจกต์นี้ทำให้เราเห็นว่า n8n + LINE Chatbot + AI Agent สามารถสร้างบอทตอบคำถามลูกค้าได้จริง พร้อมฟีเจอร์ Human-in-the-loop สำหรับโอนต่อให้แอดมินเมื่อต้องการ

นี่เป็นเพียงจุดเริ่มต้น — คุณสามารถต่อยอดด้วยการเพิ่ม FAQ, เก็บข้อมูลใน Google Sheets, หรือใช้ RAG จาก Google Docs เพื่อทำให้บอทฉลาดและตอบได้ใกล้เคียงจริงยิ่งขึ้น

📌 เหมาะสำหรับธุรกิจที่ต้องการ ยกระดับบริการลูกค้า ลดภาระทีมงาน และสร้างประสบการณ์ที่ดียิ่งขึ้น

Data Science Explore the world of data science with Donato_Story

Dashboard Discover the power of data visualization with Donato_Story

Donato_Journey Join me on my journey (Thai version)

Course_Review Discover the training courses with Donato_Story (Thai version)

Let’s Connect!

Your thoughts and feedback are invaluable. Feel free to share them in the comments or connect with me on

Originally published on Medium

Related