การเชื่อมต่อ API

เชื่อมต่อ API ภายนอกของคุณกับ enuchat เพื่อให้ AI และกฎสามารถดึงข้อมูลแบบเรียลไทม์จากระบบของคุณ

วิธีการทำงาน

การเชื่อมต่อ API ให้คุณรวม enuchat กับระบบ backend ของคุณเอง — เครื่องมือจอง CRM การจัดการคำสั่งซื้อ สินค้าคงคลัง และอื่น ๆ เมื่อผู้เยี่ยมชมถามคำถาม enuchat สามารถเรียก API ของคุณเพื่อรับข้อมูลจริงและรวมไว้ในการตอบกลับ

ขั้นตอน

  1. กำหนดค่าการเชื่อมต่อ — URL ฐานและการรับรองความถูกต้องของ API ของคุณ
  2. เพิ่มเอนด์พอยต์ — การเรียก API เฉพาะพร้อมเทมเพลตเส้นทางและการแมปการตอบกลับ
  3. สร้างกฎ — กฎ AI หรือกฎคงที่พร้อมการกระทำ CALL_API
  4. ผู้เยี่ยมชมถามคำถาม — กฎทริกเกอร์ เรียก API ของคุณ แมปการตอบกลับเป็นตัวแปรเซสชัน
  5. AI ตอบกลับด้วยข้อมูลจริง — ตัวแปรเซสชันมีให้ AI ใช้ในการสร้างคำตอบที่แม่นยำ

ตัวอย่าง: ความพร้อมใช้งานห้องโรงแรม

ผู้เยี่ยมชม: "ห้อง 205 ว่างสัปดาห์หน้าหรือไม่?"

กฎ AI ตรงกัน: "เมื่อผู้เยี่ยมชมถามเกี่ยวกับความพร้อมใช้งานห้อง"

การกระทำ CALL_API: GET https://api.hotel.com/rooms/205/availability

การตอบกลับที่แมป: room_available = true, price = "€120/คืน"

AI ตอบกลับ: "ห้อง 205 ว่างสัปดาห์หน้าที่ €120/คืน คุณต้องการจองหรือไม่?"

การตั้งค่าการเชื่อมต่อ

ไปที่ การตั้งค่า → การเชื่อมต่อ API ในแดชบอร์ดของคุณ

1. สร้างการเชื่อมต่อ

การเชื่อมต่อแสดง API ภายนอกหนึ่งรายการ คุณต้องการ:

ฟิลด์คำอธิบายตัวอย่าง
ชื่อป้ายกำกับสำหรับการเชื่อมต่อนี้API การจองโรงแรม
URL ฐานURL รากของ APIhttps://api.hotel.com/v1
ประเภทการรับรองความถูกต้องวิธีการรับรองความถูกต้องBearer Token, OAuth2 ฯลฯ

2. ประเภทการรับรองความถูกต้อง

None

สำหรับ API สาธารณะที่ไม่ต้องการการรับรองความถูกต้อง

API Key

ส่งคีย์คงที่เป็นส่วนหัวหรือพารามิเตอร์การค้นหา

ฟิลด์คำอธิบาย
คีย์ค่าคีย์ API ของคุณ
ชื่อส่วนหัวส่วนหัวที่จะใช้ (ค่าเริ่มต้น: X-Api-Key)

คีย์ถูกส่งเป็น: X-Api-Key: your_key_here

Bearer Token

ส่งโทเค็นคงที่ในส่วนหัว Authorization

ส่งเป็น: Authorization: Bearer your_token_here

Basic Auth

ส่งชื่อผู้ใช้และรหัสผ่าน เข้ารหัส base64

ส่งเป็น: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (Client Credentials)

ดึงโทเค็นการเข้าถึงโดยอัตโนมัติและแคชจนกว่าจะหมดอายุ ดีที่สุดสำหรับ API ทันสมัยเช่น Salesforce, Google หรือเซิร์ฟเวอร์ OAuth ที่กำหนดเอง

ฟิลด์คำอธิบาย
URL โทเค็นเอนด์พอยต์โทเค็น OAuth (เช่น https://auth.example.com/oauth/token)
Client IDOAuth client ID ของคุณ
Client SecretOAuth client secret ของคุณ
ScopeScope แยกด้วยช่องว่าง (เช่น read write)

enuchat จัดการวงจรชีวิตโทเค็นโดยอัตโนมัติ — ดึงในการเรียกครั้งแรก แคชจนกว่าจะหมดอายุ รีเฟรชเมื่อจำเป็น

ความปลอดภัย: ข้อมูลรับรองทั้งหมดถูกเข้ารหัสในที่เก็บโดยใช้ libsodium พวกมันไม่เคยถูกเปิดเผยในการตอบกลับ API — แสดงเฉพาะค่าที่ปกปิดในแดชบอร์ด

การกำหนดค่าเอนด์พอยต์

การเชื่อมต่อแต่ละรายการสามารถมีเอนด์พอยต์หลายรายการ — การเรียก API เฉพาะที่คุณต้องการทำ

ฟิลด์คำอธิบายตัวอย่าง
ชื่อป้ายกำกับสำหรับเอนด์พอยต์นี้ตรวจสอบความพร้อมใช้งาน
เมธอดเมธอด HTTPGET, POST, PUT, DELETE
เส้นทางเส้นทาง URL (เพิ่มไปยัง URL ฐาน) ใช้ {'{'}variable} สำหรับค่าแบบไดนามิก/rooms/{'{'}roomId}/availability
พารามิเตอร์การค้นหาพารามิเตอร์ URL เป็นคู่คีย์-ค่า ค่ารองรับ {'{'}variable}date={'{'}checkIn}
เทมเพลตเนื้อหาเนื้อหา JSON สำหรับ POST/PUT รองรับการแทรก {'{'}variable}{'{'}"guest": "{'{'}name}"}
การแมปการตอบกลับแมปฟิลด์การตอบกลับ JSON เป็นตัวแปรเซสชันโดยใช้สัญกรณ์จุดdata.available → room_available
คำอธิบายบริบทสำหรับ AI (เอนด์พอยต์นี้ส่งคืนข้อมูลใด)ส่งคืนความพร้อมใช้งานห้องและราคา

การแทรกตัวแปร

ใช้ {'{'}variableName} ในเส้นทาง พารามิเตอร์การค้นหา และเทมเพลตเนื้อหา ตัวแปรมาจาก:

  • ตัวแปรเซสชัน — ตั้งโดยกฎก่อนหน้า (การกระทำ SET_VARIABLE)
  • พารามิเตอร์การกระทำ — ฮาร์ดโค้ดในการกระทำกฎ CALL_API

การแมปการตอบกลับ

แมปฟิลด์การตอบกลับ JSON เป็นตัวแปรเซสชันโดยใช้สัญกรณ์จุด:

// API returns:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Mapping:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

ตัวแปรที่แมปจะถูกเก็บเป็นตัวแปรเซสชันในการสนทนาและมีให้ AI ใช้ในการสร้างการตอบกลับ

การใช้กับกฎ

การเรียก API ถูกทริกเกอร์โดยการกระทำ CALL_API ในกฎ คุณสามารถรวมกับการกระทำอื่น ๆ

สูตร: การค้นหาสถานะคำสั่งซื้อ

การเชื่อมต่อ: API การจัดการคำสั่งซื้อ — https://api.shop.com/v2 — Bearer Token

เอนด์พอยต์: GET /orders/{'{'}orderId} → แมป data.statusorder_status, data.etadelivery_eta

กฎ (ประเภท AI): "เมื่อผู้เยี่ยมชมถามเกี่ยวกับสถานะคำสั่งซื้อหรือการจัดส่งของพวกเขา"

การกระทำ:

  1. CALL_API → เอนด์พอยต์สถานะคำสั่งซื้อ
  2. REPLY_AI → AI ใช้ order_status และ delivery_eta เพื่อตอบกลับ

ผลลัพธ์: ผู้เยี่ยมชม: "คำสั่งซื้อ #4521 ของฉันอยู่ที่ไหน?" — AI: "คำสั่งซื้อ #4521 ของคุณกำลังถูกจัดส่งและควรมาถึงในวันพฤหัสบดี"

สูตร: ราคาแบบเรียลไทม์

การเชื่อมต่อ: API ราคา — https://pricing.example.com — API Key

เอนด์พอยต์: GET /products/{'{'}productId}/price → แมป pricecurrent_price, currencyprice_currency

กฎ (คงที่): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

การกระทำ:

  1. CALL_API → เอนด์พอยต์ราคา
  2. REPLY_TEXT → "ราคาปัจจุบันคือ {'{'}current_price} {'{'}price_currency}"

การทดสอบ

ทดสอบการเชื่อมต่อและเอนด์พอยต์ของคุณเสมอก่อนใช้งานในกฎ:

  • ทดสอบการเชื่อมต่อ — ตรวจสอบว่าการรับรองความถูกต้องทำงาน (สำหรับ OAuth2: ดึงโทเค็น)
  • ทดสอบเอนด์พอยต์ — ทำการเรียก API จริงด้วยตัวแปรตัวอย่างและแสดงการตอบกลับ
  • ทดสอบกฎ (dry-run) — บนหน้ากฎ ทดสอบว่ากฎจะตรงกันหรือไม่และการกระทำใดจะดำเนินการ

เคล็ดลับ: เริ่มต้นโดยทดสอบการเชื่อมต่อ จากนั้นแต่ละเอนด์พอยต์ จากนั้นกฎที่สมบูรณ์ ด้วยวิธีนี้คุณสามารถแยกปัญหาในแต่ละระดับ

ความปลอดภัย

  • การเข้ารหัสในที่เก็บ — ข้อมูลรับรองทั้งหมดถูกเข้ารหัสโดยใช้ libsodium ก่อนการจัดเก็บ
  • ไม่เปิดเผย — การตอบกลับ API ไม่เคยรวมข้อมูลรับรองที่ถอดรหัส มีเพียงค่าที่ปกปิด
  • การป้องกัน SSRF — enuchat บล็อกการเรียกไปยัง localhost, IP ส่วนตัว และชื่อโฮสต์ภายใน
  • การหมดเวลา — การเรียก API ภายนอกมีการหมดเวลา 5 วินาทีเพื่อป้องกันการแขวน
  • การแคชโทเค็น OAuth2 — โทเค็นการเข้าถึงถูกแคชอย่างปลอดภัยและรีเฟรชโดยอัตโนมัติ
  • การแยก tenant — การเชื่อมต่อถูกจำกัดขอบเขตให้กับ tenant ของคุณ ไม่สามารถเข้าถึงได้โดยผู้อื่น

พร้อมที่จะเชื่อมต่อ API ของคุณ?

เริ่มรวมระบบของคุณกับ enuchat วันนี้

เริ่มต้นฟรี