ทั้งห้าช่องทาง
เข้าได้ห้าทาง บทสนทนาเดียว ออกทางเดียว
ทุกช่องทางใช้กล่องข้อความเดียวกัน AI ตัวเดียวกัน ฐานความรู้เดียวกัน เปิดเฉพาะช่องทางที่ผู้ใช้ของคุณอยู่จริง
JavaScript แค่สองบรรทัด ใช้ได้กับทุกเว็บไซต์ React, WordPress, HTML ธรรมดา แล้วแต่คุณเลย
วิธีทำงาน
1 คัดลอกโค้ดฝังของเว็บไซต์คุณจาก Settings → Channels → Web
2 วางไว้ก่อน </body> แค่สองบรรทัด
3 รีเฟรช แล้วบับเบิลแชทจะโผล่มาที่มุมล่างขวา
4 ส่งข้อมูลผู้ใช้เพิ่มเติมได้ (ไม่บังคับ) เพื่อให้ AI รู้ว่ากำลังคุยกับใคร
✺
เหมาะกับ: แอป SaaS อีคอมเมิร์ซ เว็บไซต์การตลาด ที่ไหนก็ได้ที่ผู้ใช้อยู่บนหน้าเว็บของคุณแล้ว
HTML
<script>
window.LaneChat = { site_id: "sc_8a2f...1b" };
</script>
<script async src="https://cdn.lane.chat/js/widget.js"></script>
พร้อมข้อมูลผู้ใช้ (ไม่บังคับ)
window.LaneChat = {
site_id: "sc_8a2f...1b",
user: { id: "u_123", name: "Alex", email: "[email protected] " },
locale: "th"
};
ครบทั้งสองแบบของ Telegram บอทสำหรับคุยกับลูกค้า และ group-mirror สำหรับคอมมูนิตี้ที่คุณดูแลอยู่แล้ว
วิธีทำงาน
1 ขอโทเคนบอทจาก @BotFather
2 วางที่ Settings → Channels → Telegram
3 ผู้ใช้ทัก DM มาที่บอท หรือเพิ่มบอทเข้ากลุ่ม แล้วเราจะมิเรอร์เธรดเข้ากล่องข้อความของคุณ
4 ตอบกลับจากเว็บแอป Lane.Chat ผู้ใช้จะเห็นข้อความใน Telegram
✺
เหมาะกับ: คริปโต เกม และคอมมูนิตี้ครีเอเตอร์ที่ใช้ Telegram เป็นบ้านอยู่แล้ว รวมถึง group-mirror สำหรับซัพพอร์ตแบบทีม
ตั้งค่า
BotFather → /newbot
→ LaneChat_Demo_Bot
→ 7123456789:AAH...z8
วางโทเคนที่
Settings → Channels → Telegram
ส่งจากแบ็กเอนด์
POST /api/v1/telegram/send
{
"chat_id": 6012345678,
"text": "ออเดอร์ของคุณจัดส่งแล้วค่ะ"
}
iOS / Android SDK
SDK iOS และ Android แบบเนทีฟ พร้อมพุช คิวออฟไลน์ และหน้าตาเดียวกับแอปของคุณ
วิธีทำงาน
1 เพิ่ม LaneChatKit ผ่าน SPM หรือ Gradle
2 เรียก configure() ตอนเปิดแอป พร้อม app ID และข้อมูลผู้ใช้
3 แสดงแชทได้ทุกที่ เต็มจอ โมดัล หรือฝังในหน้า
4 ลงทะเบียนโทเคน APNs/FCM เพื่อให้คำตอบพุชแจ้งเตือนได้แม้ปิดแอปอยู่
5 ส่งไฟล์แนบ ข้อความเสียง และการอ่านแล้วแบบเนทีฟ
✺
เหมาะกับ: แอปมือถือที่ต้องการประสบการณ์ช่วยเหลือในแอปจริงๆ ไม่ใช่ webview ที่ซ่อนไว้
Swift
import LaneChatKit
LaneChat.configure(
appId: "app_1f9c...",
user: .init(id: "u_123", name: "Alex")
)
// เรียกอันนี้จากปุ่ม "ช่วยเหลือ" ของคุณ
LaneChat.present(from: self)
Kotlin
LaneChat.configure(
context = applicationContext,
appId = "app_1f9c...",
user = User("u_123", "Alex")
)
LaneChat.present(activity)
REST API ที่เรียบง่าย สำหรับอะไรก็ตามที่เรายังไม่มีช่องทางให้
วิธีทำงาน
1 สร้าง API key ที่ Settings → Developer
2 ติดตั้ง SDK (Node, Python, Go) หรือเรียก REST endpoint โดยตรง
3 ส่งข้อความ แล้วสตรีมคำตอบจาก AI กลับมาด้วย SSE
4 บันทึกการเรียกเครื่องมือ การส่งต่องาน และการใช้โทเคนบนแดชบอร์ด
✺
เหมาะกับ: บอทฝ่ายหลังบ้าน วอยซ์เอเจนต์ และทุกที่ที่ต้องการเข้าถึงแบบเขียนโปรแกรมโดยไม่ต้องมี UI
curl
curl https://api.lane.chat/v1/messages \
-H "Authorization: Bearer lc_live_..." \
-H "Content-Type: application/json" \
-d '{
"conversation_id": "cv_8a2f",
"role": "user",
"content": "ออเดอร์ของฉันอยู่ไหน",
"stream": true
}'
Node SDK
import LaneChat from 'lane-chat';
const lane = new LaneChat({ apiKey: process.env.LANE_KEY });
const reply = await lane.messages.create({
conversation_id: 'cv_8a2f',
content: 'What\'s my order status?'
});
เรายิงไปที่ endpoint ของคุณทันทีที่มีเหตุการณ์เกิดขึ้น เหมาะสำหรับส่งเข้าระบบของคุณเอง
วิธีทำงาน
1 เพิ่ม URL endpoint ของคุณที่ Settings → Developer → Webhooks
2 เราจะ POST เหตุการณ์ (message.created, conversation.closed, handover ฯลฯ) เป็น JSON
3 ตรวจสอบ header X-Lane-Signature ด้วย webhook secret ของคุณ
4 ตอบกลับ 2xx ภายใน 10 วินาที ถ้าไม่ตอบ เราจะลองส่งใหม่แบบ backoff
✺
เหมาะกับ: ส่งบทสนทนาเข้า CRM คลังข้อมูลวิเคราะห์ หรือ Slack channel ภายในของคุณ
สิ่งที่เรา POST ไปหาคุณ
POST https://your-app.com/webhooks/lane
X-Lane-Signature: t=1713340800,v1=3f7d...
{
"event": "message.created",
"conversation_id": "cv_8a2f",
"channel": "telegram",
"message": {
"role": "user",
"content": "สวัสดีค่ะ การชำระเงินของฉันไม่ผ่าน",
"created_at": 1713340800
}
}
ตรวจสอบลายเซ็น
import crypto from "node:crypto";
const sig = req.headers["x-lane-signature"];
const [, ts, v1] = sig.match(/t=(\d+),v1=(\w+)/);
const mac = crypto.createHmac("sha256", SECRET)
.update(`${ts}.${rawBody}`).digest("hex");
if (mac !== v1) return res.status(401).end();