n8n Thai
by n8n Thai

สร้าง Telegram Bot ด้วย n8n: แจ้งเตือนและสั่งงาน

คู่มือสร้าง Telegram Bot ด้วย n8n ตั้งแต่สร้าง Bot ผ่าน BotFather จนถึงสร้าง Workflow แจ้งเตือนอัตโนมัติและรับคำสั่งจาก Telegram

สร้าง Telegram Bot ด้วย n8n: แจ้งเตือนและสั่งงาน

Telegram Bot เป็นช่องทางที่ developer และ power user นิยมใช้สำหรับ automation notification เพราะ Telegram API ฟรี, ไม่มี rate limit ที่เข้มงวดเหมือน LINE, และ Bot API ใช้งานง่ายมาก n8n มี Telegram node สำเร็จรูปที่ส่งและรับข้อความได้โดยไม่ต้องเขียนโค้ด server เลย

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

  • Telegram account
  • n8n instance (cloud หรือ self-host) พร้อม public URL
  • เวลาประมาณ 20 นาที

ขั้นตอนที่ 1: สร้าง Telegram Bot ด้วย BotFather

BotFather คือ official bot สำหรับสร้างและจัดการ Bot บน Telegram

  1. เปิด Telegram แล้วค้นหา @BotFather
  2. พิมพ์ /newbot
  3. ตั้งชื่อ Bot (ชื่อที่แสดง เช่น “My n8n Bot”)
  4. ตั้ง username ของ Bot ต้องลงท้ายด้วย bot เช่น mycompany_n8n_bot
  5. BotFather จะส่ง Bot Token กลับมา เก็บไว้ให้ดี อย่าแชร์ให้ใคร

ตัวอย่าง token: 7234567890:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ขั้นตอนที่ 2: ตั้งค่า Telegram Credential ใน n8n

  1. ใน n8n ไปที่ Settings → Credentials → New
  2. เลือก “Telegram API”
  3. ใส่ Bot Token ที่ได้จาก BotFather
  4. กด Save

ขั้นตอนที่ 3: หา Chat ID

ก่อนส่งข้อความได้ ต้องรู้ Chat ID ของปลายทางก่อน

Chat ID ของตัวเอง (Personal Chat)

  1. เปิด Telegram แล้วส่งข้อความให้ Bot ที่เพิ่งสร้าง
  2. เปิด URL ใน browser: https://api.telegram.org/bot<TOKEN>/getUpdates
  3. หาค่า message.chat.id ในผลลัพธ์ (เป็นตัวเลข เช่น 123456789)

Chat ID ของกลุ่ม (Group Chat)

  1. เพิ่ม Bot เข้ากลุ่ม Telegram ก่อน
  2. ส่งข้อความใดก็ได้ในกลุ่ม
  3. เรียก getUpdates เช่นเดิม Chat ID ของกลุ่มจะขึ้นต้นด้วย - เช่น -987654321

Workflow 1: ส่งแจ้งเตือนจาก n8n ไปยัง Telegram

ตัวอย่าง: แจ้งเตือนเมื่อมีออเดอร์ใหม่

Webhook Trigger (รับออเดอร์จาก WooCommerce/Shopify)
  → Set node (เตรียมข้อมูลสำหรับข้อความ)
  → Telegram node
      Operation: Send Message
      Chat ID: -987654321 (กลุ่ม admin)
      Text: |
        🛒 ออเดอร์ใหม่!
        ลูกค้า: {{ $json.customer_name }}
        สินค้า: {{ $json.product_name }}
        ยอด: {{ $json.total }} บาท
        ที่อยู่: {{ $json.shipping_address }}

ตัวอย่าง: แจ้งเตือน Server Error

Error Trigger (รับ error จาก workflow อื่น)
  → Telegram node
      Chat ID: 123456789 (ส่วนตัว devops)
      Text: |
        ⚠️ Workflow Error!
        Workflow: {{ $json.workflow.name }}
        Error: {{ $json.error.message }}
        เวลา: {{ $now.toISO() }}

ส่ง Markdown และ HTML

Telegram รองรับ formatting ใน message ตั้ง Parse Mode เป็น Markdown หรือ HTML

Text (Markdown):
*ออเดอร์ใหม่* #{{ $json.order_id }}
- ลูกค้า: `{{ $json.name }}`
- ยอดเงิน: *{{ $json.amount }} บาท*
[ดูรายละเอียด]({{ $json.order_url }})

Workflow 2: รับคำสั่งจาก Telegram และทำงาน

Telegram Bot รับข้อความจากผู้ใช้ได้ผ่าน Webhook ทำให้ใช้ Telegram เป็น “command interface” สำหรับ trigger workflow ต่างๆ

ตั้งค่า Telegram Webhook

n8n Telegram Trigger node จัดการ Webhook registration ให้อัตโนมัติ เพียงแค่

  1. เพิ่ม Telegram Trigger node
  2. เลือก Credential
  3. เลือก Updates: Message
  4. Activate Workflow

n8n จะลงทะเบียน Webhook กับ Telegram ให้เองโดยอัตโนมัติ

ตัวอย่าง: Bot ที่รับคำสั่งและตอบกลับ

Telegram Trigger (รับทุก message)
  → IF node: text เริ่มต้นด้วย "/" (คำสั่ง)?
    → YES: Switch node (แยกตามคำสั่ง)
      → /status: HTTP Request (ดึงสถานะ server) → Telegram Reply
      → /report: Google Sheets (ดึงยอดขายวันนี้) → Telegram Reply
      → /help: Telegram Reply (แสดงรายการคำสั่ง)
    → NO: Telegram Reply "ส่ง /help เพื่อดูคำสั่ง"

Code ตรวจสอบ Command

// Code node แยกคำสั่งและ arguments
const text = $json.message.text;
const parts = text.trim().split(' ');
const command = parts[0].toLowerCase();
const args = parts.slice(1);

return [{
  json: {
    command,
    args,
    chatId: $json.message.chat.id,
    userId: $json.message.from.id,
    username: $json.message.from.username
  }
}];

ตอบกลับ Message เดิม (Reply)

Telegram node
  Operation: Send Message
  Chat ID: {{ $('Telegram Trigger').item.json.message.chat.id }}
  Text: รายงานยอดขายวันนี้: {{ $json.total }} บาท
  Reply To Message ID: {{ $('Telegram Trigger').item.json.message.message_id }}

Workflow 3: Bot ส่งรายงานประจำวัน

Schedule Trigger (ทุกวัน 08.00)
  → Google Sheets (ดึงยอดขายเมื่อวาน)
  → Code node (คำนวณสรุป)
  → Telegram node
      Chat ID: -987654321 (กลุ่ม admin)
      Text: |
        📊 รายงานยอดขายเมื่อวาน {{ $now.minus({days:1}).toFormat('dd/MM/yyyy') }}
        
        ยอดขายรวม: {{ $json.total_sales }} บาท
        จำนวนออเดอร์: {{ $json.order_count }} รายการ
        ออเดอร์เฉลี่ย: {{ $json.avg_order }} บาท
        สินค้าขายดี: {{ $json.top_product }}

เพิ่มความปลอดภัย: จำกัดผู้ใช้

ถ้า Bot เป็น private ควรตรวจสอบ User ID ก่อนทำคำสั่ง

// Code node ตรวจสอบสิทธิ์
const allowedUsers = [123456789, 987654321]; // User IDs ที่อนุญาต
const userId = $json.message.from.id;

if (!allowedUsers.includes(userId)) {
  // ส่งข้อความปฏิเสธ แล้ว stop workflow
  return [{ json: { authorized: false, chatId: $json.message.chat.id } }];
}

return [{ json: { authorized: true, ...($json) } }];

เคล็ดลับเพิ่มเติม

ส่งรูปภาพหรือไฟล์: Telegram node รองรับ Send Photo, Send Document, Send Video เหมาะสำหรับส่งรายงานเป็น PDF หรือส่ง screenshot

Inline Keyboard: ใช้ Reply Markup ใน Telegram node เพื่อสร้างปุ่มที่ผู้ใช้กดได้ในแชท เช่น ปุ่ม “ยืนยัน” / “ยกเลิก” สำหรับ approval workflow

Bot ใน Group vs. Private Chat: Bot ใน group จะรับข้อความได้เฉพาะที่ mention ด้วย @botusername หรือขึ้นต้นด้วย / เท่านั้น ถ้าต้องการรับทุกข้อความ ต้องให้ Bot เป็น admin ใน group


สรุป

n8n + Telegram Bot เป็น combination ที่ทรงพลังสำหรับ developer และ operator ที่ต้องการ notification system ที่ยืดหยุ่น ตั้งแต่ alert อัตโนมัติ ไปจนถึง command bot ที่ trigger workflow ได้จาก Telegram โดยตรง ทดสอบด้วย Telegram personal chat ก่อน แล้วย้ายไปใช้กลุ่มทีมเมื่อพร้อม

บทความที่เกี่ยวข้อง: n8n x Slack: แจ้งเตือนทีมอัตโนมัติ | คู่มือ Webhook ใน n8n ฉบับสมบูรณ์

อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co

Related posts