คู่มือการใช้งานเว็บไซต์ขั้นสูง
ช่องทางเว็บไซต์รองรับการกำหนดค่าเพิ่มเติมผ่านอินเทอร์เฟซ LiveDesk Widget SDK หรือการใช้ iframe เพื่อให้ตรงกับความต้องการของคุณ
การตั้งค่าที่เกี่ยวข้องกับ iframe
ข้ามหน้าจอต้อนรับ
ในโหมด iframe คุณสามารถเพิ่มพารามิเตอร์ action=autoStart เพื่อข้ามหน้าจอต้อนรับที่แสดงขึ้นเมื่อเปิดบับเบิล และเข้าสู่หน้าต่างแชทได้โดยตรง
<iframe
class="livedesk-widget-iframe"
src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart"
title="LiveDesk"
allow="camera;microphone"
/>
website_tokenคือค่าที่สร้างขึ้นและสอดคล้องกับช่องทางหลังจากสร้างช่องทางแล้ว
ตั้งค่า User ID
มี 2 วิธีในการกำหนดค่า
วิธีที่ 1:
Array.from(document.getElementsByTagName('iframe'))
.filter((iframe) => iframe.src && iframe.src.includes('livedesk'))
.forEach((iframe) =>
iframe.contentWindow?.postMessage(
'livedesk-widget:' +
JSON.stringify({
event: 'set-user',
identifier: 'your_user_id',
user: { name: 'Display name', email: 'user@example.com' },
}),
'*',
),
);
วิธีที่ 2: เพิ่มพารามิเตอร์ user_id=xxxxx ลงใน iframe
<iframe
class="livedesk-widget-iframe"
src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=Etsz4XtvqKi7iqbHf8Ma6ZLR&action=autoStart&user_id=5002"
title="LiveDesk"
allow="camera;microphone"
/>
อินเทอร์เฟซ LiveDesk Widget SDK
ตั้งค่า User ID และข้อมูลผู้ใช้ (โหมดมาตรฐาน)
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setUserId("Unique user ID (such as user_id)", {
// พารามิเตอร์ตัวแรกคือตัวระบุที่ไม่ซ้ำกัน
email: "user@example.com",
name: "User name",
avatar_url: "https://example.com/avatar.jpg", // ไม่บังคับ
phone_number: "+1234567890", // ไม่บังคับ
});
});
window.addEventListener("livedesk:ready", function ()) ออกได้
ตั้งค่า User ID และข้อมูลผู้ใช้ (โหมดเข้ารหัส)
เปิดใช้งานการยืนยันตัวตน (แนะนำ) เพื่อป้องกันการปลอมแปลงและทำให้เซสชันคงอยู่ข้ามเบราว์เซอร์ เปิดใช้งาน HMAC ในการกำหนดค่า และใช้ SHA-256 เพื่อสร้าง identifier_hash
ตัวอย่าง (JavaScript):
const crypto = require("crypto");
const key = "Your HMAC Token"; // คัดลอกจากการตั้งค่า Inboxes
const message = "Unique user ID";
const identifier_hash = crypto
.createHmac("sha256", key)
.update(message)
.digest("hex");
// ผนวกไปยัง setUser
window.$livedesk.setUserId("Unique user ID", {
...OtherInformation,
identifier_hash: identifier_hash,
});
ตั้งค่าแอตทริบิวต์แบบกำหนดเองของบทสนทนา
window.$livedesk.setConversationCustomAttributes({
utm_source: "google", // ตัวอย่าง: UTM ระดับบทสนทนา
session_type: "support",
});
แอตทริบิวต์แบบกำหนดเองเหล่านี้จะแสดงใน LiveDesk > Conversation > Conversation Information
ตั้งค่าแอตทริบิวต์แบบกำหนดเองของผู้ใช้
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setCustomAttributes({
pricing_plan: "premium", // Key: ตัวระบุที่ไม่ซ้ำกันซึ่งกำหนดไว้ล่วงหน้า; value: ค่าตามประเภท เช่น สตริง
signup_date: new Date(), // ตัวอย่าง: ประเภทวันที่
account_id: 123, // ตัวอย่าง: ประเภทตัวเลข
});
});
แอตทริบิวต์แบบกำหนดเองเหล่านี้จะแสดงใน LiveDesk > Conversation > Contact Attributes
ลบแอตทริบิวต์ผู้ใช้
ลบแอตทริบิวต์แบบกำหนดเองที่ระบุ
window.$livedesk.deleteCustomAttribute("pricing_plan"); // คีย์แอตทริบิวต์ประเภทสตริง
สลับสถานะการเปิดของบับเบิลแชท
สลับสถานะเปิดหรือปิดของวิดเจ็ต
window.$livedesk.toggle();
// สลับสถานะวิดเจ็ตโดยระบุสถานะ
window.$livedesk.toggle("open"); // เปิดวิดเจ็ตแชท
window.$livedesk.toggle("close"); // ปิดวิดเจ็ตแชท
แสดงหรือซ่อนบับเบิลแชท
window.$livedesk.toggleBubbleVisibility("hide"); // แสดงหรือซ่อน
โหมดป๊อปอัป
เปิดอินเทอร์เฟซแชทในหน้าต่างป๊อปอัป
window.$livedesk.popoutChatWindow();
ตั้งค่าภาษา
ตั้งค่าภาษาของวิดเจ็ต
window.$livedesk.setLocale("en"); // รหัสภาษาประเภทสตริง เช่น zh-CN
เพิ่มหรือลบป้ายกำกับ
เพิ่มป้ายกำกับให้กับบทสนทนาปัจจุบันก่อนที่บทสนทนาจะเริ่มต้น ระบบจะนำป้ายกำกับไปใช้กับบทสนทนาโดยอัตโนมัติ
window.$livedesk.setLabel("support-ticket"); // ตัวระบุป้ายกำกับประเภทสตริง
window.$livedesk.removeLabel("support-ticket");
ออบเจ็กต์การกำหนดค่า LiveDesk Widget
ออบเจ็กต์ส่วนกลางนี้จะถูกตั้งค่าระหว่างการเริ่มต้นระบบ ก่อนโหลด SDK เพื่อปรับแต่งลักษณะการทำงานของวิดเจ็ต โดยกำหนดค่าผ่าน window.livedeskSettings จากนั้นส่งต่อไปยัง window.livedeskSDK.run()
คุณสมบัติของออบเจ็กต์
| Property Name | Type | Description | Default Value | Example |
|---|---|---|---|---|
hideMessageBubble |
boolean | ซ่อนบับเบิลข้อความ | false |
true |
showUnreadMessagesDialog |
boolean | แสดงกล่องโต้ตอบข้อความที่ยังไม่ได้อ่าน | true |
false |
position |
string | ตำแหน่งของวิดเจ็ต | 'right' |
'left' |
locale |
string | รหัสภาษาเริ่มต้น | ภาษาของแดชบอร์ด | 'zh-CN' |
useBrowserLanguage |
boolean | ใช้ภาษาของเบราว์เซอร์โดยไม่สนใจ locale |
false |
true |
type |
string | ประเภทของวิดเจ็ต | 'standard' |
'expanded_bubble' |
darkMode |
boolean | เปิดใช้งานโหมดมืด | false |
true |
baseDomain |
string | โดเมนพื้นฐาน ใช้เป็นตัวเลือกสำหรับหลายโดเมน | — | 'example.com' |
launcherTitle |
string | ชื่อ Launcher | — | 'Support' |
showPopoutButton |
boolean | แสดงปุ่มป๊อปอัป | true |
false |
welcomeTitle |
string | ชื่อเรื่องต้อนรับ | — | 'Welcome!' |
welcomeDescription |
string | คำอธิบายต้อนรับ | — | 'How can we help you?' |
availableMessage |
string | ข้อความเมื่อออนไลน์ | — | 'We are online.' |
unavailableMessage |
string | ข้อความเมื่อออฟไลน์ | — | 'We will reply later.' |
enableFileUpload |
boolean | เปิดใช้งานการอัปโหลดไฟล์ | true |
false |
enableEmojiPicker |
boolean | เปิดใช้งานตัวเลือกอีโมจิ | true |
false |
enableEndConversation |
boolean | เปิดใช้งานปุ่มจบบทสนทนา | true |
false |
โค้ดตัวอย่าง
<script>
// 1. ตั้งค่าคอนฟิกส่วนกลางก่อนโหลด sdk.js
// ต้องวางไว้ที่จุดเริ่มต้นของสคริปต์
window.livedeskSettings = {
// ตำแหน่งวิดเจ็ต: ล่างซ้าย (ค่าเริ่มต้นคือล่างขวา)
position: "left",
// บังคับใช้ภาษาจีนตัวย่อ (จะแสดงภาษาจีนแม้เบราว์เซอร์ตั้งค่าเป็นภาษาอังกฤษ)
locale: "zh-CN",
// ตรวจจับภาษาของเบราว์เซอร์โดยอัตโนมัติ หากต้องการให้ความสำคัญ
// กับภาษาของเบราว์เซอร์ของผู้ใช้เป็นอันดับแรก ให้ตั้งค่านี้เป็น true และลบ locale ด้านบนออก
// useBrowserLanguage: true,
// ประเภทวิดเจ็ต: expanded_bubble = บับเบิลขนาดใหญ่พร้อมข้อความต้อนรับ;
// standard = บับเบิลขนาดเล็กแบบคลาสสิก
type: "expanded_bubble",
// โหมดมืด (ตามการตั้งค่าระบบโดยอัตโนมัติหรือบังคับใช้โหมดมืด)
darkMode: "auto", // ค่าที่เลือกได้: true | false | "auto"
// ซ่อนไอคอนบับเบิลขนาดเล็กที่ด้านล่าง (เหมาะสำหรับใช้งานร่วมกับปุ่มแบบกำหนดเอง)
hideMessageBubble: false,
// ซ่อนปุ่มลูกศรหน้าต่างป๊อปอัปที่มุมขวาล่าง
showPopoutButton: false,
// ชื่อ Launcher แบบกำหนดเอง (แสดงในโหมด expanded_bubble)
launcherTitle: "Online Support",
// ข้อความต้อนรับ (มีผลในโหมด expanded_bubble)
welcomeTitle: "Hello! How can we help you?",
welcomeDescription: "We usually reply within a few minutes.",
// ข้อความแจ้งที่แสดงเมื่อออนไลน์หรือออฟไลน์
availableMessage: "We are online and ready to help",
unavailableMessage:
"We are currently offline and will reply as soon as possible during business hours",
// สวิตช์เปิด/ปิดฟีเจอร์
enableFileUpload: true, // อนุญาตให้อัปโหลดไฟล์
enableEmojiPicker: true, // อนุญาตให้ใช้อีโมจิ
enableEndConversation: true, // อนุญาตให้ผู้ใช้จบบทสนทนาได้ด้วยตนเอง
// ตัวเลือกขั้นสูงอื่น ๆ (เปิดใช้งานตามต้องการ)
// showUnreadMessagesDialog: true, // แสดงกล่องโต้ตอบแจ้งเตือนเมื่อมีข้อความที่ยังไม่ได้อ่าน (ค่าเริ่มต้นคือ true)
// baseDomain: "yourcompany.com", // ใช้สำหรับการติดตั้งใช้งานหลายโดเมน
};
</script>
<!-- 2. โหลด LiveDesk Widget SDK (แทนที่ด้วยโดเมนและโทเค็นของคุณเอง) -->
<script>
(function (d, t) {
var BASE_URL = "https://www.engagelab.com"; // เปลี่ยนเป็นที่อยู่ LiveDesk ของคุณ
var g = d.createElement(t);
var s = d.getElementsByTagName(t)[0];
g.src = BASE_URL + "/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g, s);
g.onload = function () {
window.livedeskSDK.run({
websiteToken: "abcdefgh1234567890abcdefgh123456", // เปลี่ยนเป็น Website Token ของคุณ
baseUrl: BASE_URL,
});
};
})(document, "script");
</script>
ตัวดักฟังเหตุการณ์ของ LiveDesk Widget
| Event Name | Description | Listener Example |
|---|---|---|
livedesk:ready |
ทริกเกอร์เมื่อ SDK โหลดเสร็จสิ้นและสามารถเรียกใช้เมธอดได้อย่างปลอดภัย | window.addEventListener('livedesk:ready', () => { /* Initialization */ }); |
livedesk:on-message |
ทริกเกอร์เมื่อได้รับข้อความใหม่ | window.addEventListener('livedesk:on-message', (data) => { console.log(data); }); |
livedesk:error |
ทริกเกอร์เมื่อเกิดข้อผิดพลาดของ SDK (v2.3.0 ขึ้นไป) | window.addEventListener('livedesk:error', (error) => { console.error(error); }); |










