คู่มือการใช้งานขั้นสูงของเว็บไซต์

ช่องทาง Website รองรับตัวเลือกการกำหนดค่าเพิ่มเติมผ่านอินเทอร์เฟซ LiveDesk Widget SDK หรือการใช้งานผ่าน iframe เพื่อตอบสนองความต้องการของผู้ใช้ที่แตกต่างกัน

การตั้งค่าที่เกี่ยวข้องกับ iframe

ข้ามหน้าจอต้อนรับ

ในโหมด iframe ผู้ใช้สามารถข้ามหน้าจอต้อนรับเมื่อเปิด bubble ได้โดยเพิ่มพารามิเตอร์ action=autoStart ซึ่งจะนำผู้ใช้ไปยังกล่องแชทโดยตรงเพื่อเริ่มการสนทนา

<iframe class="livedesk-widget-iframe" src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart" // แทนที่ website_token ด้วยค่าที่เกี่ยวข้องซึ่งสร้างขึ้นหลังจากสร้างช่องทางแล้ว title="Live desk" allow="camera;microphone" />
              
              <iframe
    class="livedesk-widget-iframe"
    src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart" // แทนที่ website_token ด้วยค่าที่เกี่ยวข้องซึ่งสร้างขึ้นหลังจากสร้างช่องทางแล้ว
    title="Live desk"
    allow="camera;microphone"
/>

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่า 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' }, }), '*', ), );
              
              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" />
              
              <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 () {
  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"  // ไม่บังคับ
  });
});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
หมายเหตุ: หากผู้ใช้ปลายทางเป็นผู้เรียกใช้การตั้งค่า user ID ในคอนฟิก คุณสามารถลบตัวห่อหุ้มอีเวนต์ window.addEventListener("livedesk:ready", function ()) ออกได้

ตั้งค่า User ID และข้อมูลผู้ใช้ (โหมดเข้ารหัส)

เปิดใช้งานการยืนยันตัวตน (แนะนำ): เพื่อป้องกันการปลอมแปลงและทำให้เซสชันคงอยู่ข้ามเบราว์เซอร์ ให้เปิดใช้งาน HMAC ในการกำหนดค่า (ใช้ SHA256 เพื่อสร้าง identifier_hash) ตัวอย่าง (JavaScript):

const crypto = require('crypto'); const key = 'Your HMAC Token'; // คัดลอกจากการตั้งค่า Inbox const message = 'Unique user ID'; const identifier_hash = crypto.createHmac('sha256', key).update(message).digest('hex'); // แนบใน setUser window.$livedesk.setUserId("Unique user ID", { ...Other information, identifier_hash: identifier_hash });
              
              const crypto = require('crypto');
const key = 'Your HMAC Token';  // คัดลอกจากการตั้งค่า Inbox
const message = 'Unique user ID';
const identifier_hash = crypto.createHmac('sha256', key).update(message).digest('hex');

// แนบใน setUser
window.$livedesk.setUserId("Unique user ID", {
  ...Other information,
  identifier_hash: identifier_hash
});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าตัวแปรกำหนดเองของการสนทนา

window.$livedesk.setConversationCustomAttributes({ utm_source: "google", // ตัวอย่าง: UTM ระดับการสนทนา session_type: "support" });
              
              window.$livedesk.setConversationCustomAttributes({
  utm_source: "google",  // ตัวอย่าง: UTM ระดับการสนทนา
  session_type: "support"
});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • ตัวแปรกำหนดเองเหล่านี้จะแสดงใน LiveDesk - Conversation - Conversation Info

ตั้งค่าตัวแปรกำหนดเองของผู้ใช้

window.addEventListener("livedesk:ready", function () { window.$livedesk.setCustomAttributes({ pricing_plan: "premium", // key: ตัวระบุที่ไม่ซ้ำกันที่กำหนดไว้ล่วงหน้า; value: ตั้งค่าตามประเภท (เช่น string) signup_date: new Date(), // ตัวอย่าง: ประเภทวันที่ account_id: 123 // ตัวอย่าง: ประเภทตัวเลข }); });
              
              window.addEventListener("livedesk:ready", function () {
  window.$livedesk.setCustomAttributes({
    pricing_plan: "premium",  // key: ตัวระบุที่ไม่ซ้ำกันที่กำหนดไว้ล่วงหน้า; value: ตั้งค่าตามประเภท (เช่น string)
    signup_date: new Date(),  // ตัวอย่าง: ประเภทวันที่
    account_id: 123           // ตัวอย่าง: ประเภทตัวเลข
  });
});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • ตัวแปรกำหนดเองเหล่านี้จะแสดงใน LiveDesk - Conversation - Contact Attributes

ลบแอตทริบิวต์ผู้ใช้

ลบแอตทริบิวต์กำหนดเองที่ระบุ

window.$livedesk.deleteCustomAttribute("pricing_plan"); // ชื่อคีย์แอตทริบิวต์แบบสตริง
              
              window.$livedesk.deleteCustomAttribute("pricing_plan"); // ชื่อคีย์แอตทริบิวต์แบบสตริง

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

สลับสถานะเปิดของ Chat Bubble

สลับสถานะเปิด/ปิดของวิดเจ็ต

window.$livdesk.toggle(); // สลับวิดเจ็ตโดยระบุสถานะ window.$livedesk.toggle("open"); // เปิดวิดเจ็ตแชท window.$livedesk.toggle("close"); // ปิดวิดเจ็ตแชท
              
              window.$livdesk.toggle();

// สลับวิดเจ็ตโดยระบุสถานะ
window.$livedesk.toggle("open"); // เปิดวิดเจ็ตแชท
window.$livedesk.toggle("close"); // ปิดวิดเจ็ตแชท

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

แสดง/ซ่อน Chat Bubble

window.$livedesk.toggleBubbleVisibility('hide'); // แสดง/ซ่อน
              
              window.$livedesk.toggleBubbleVisibility('hide'); // แสดง/ซ่อน

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

โหมด Pop-Out

เปิดอินเทอร์เฟซแชทในโหมดหน้าต่างป๊อปเอาต์

window.$livedesk.popoutChatWindow();
              
              window.$livedesk.popoutChatWindow();

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าภาษา

ตั้งค่าภาษาของวิดเจ็ต

window.$livedesk.setLocale("en"); // รหัสภาษาสตริง เช่น zh-CN
              
              window.$livedesk.setLocale("en"); // รหัสภาษาสตริง เช่น zh-CN

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

เพิ่ม/ลบป้ายกำกับ

เพิ่มป้ายกำกับให้กับเซสชันปัจจุบัน (ก่อนเริ่มการสนทนา) โดยป้ายกำกับจะถูกนำไปใช้กับการสนทนาโดยอัตโนมัติ

window.$livdesk.setLabel('support-ticket'); // ตัวระบุป้ายกำกับแบบสตริง window.$livdesk.removeLabel('support-ticket');
              
              window.$livdesk.setLabel('support-ticket'); // ตัวระบุป้ายกำกับแบบสตริง
window.$livdesk.removeLabel('support-ticket');

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

อ็อบเจ็กต์การกำหนดค่า LiveDesk Widget

อ็อบเจ็กต์แบบ global ที่ตั้งค่าระหว่างการเริ่มต้นระบบ (ก่อนโหลด SDK) เพื่อปรับแต่งพฤติกรรมของวิดเจ็ต กำหนดผ่าน window.livedeskSettings จากนั้นส่งไปยัง window.livedeskSDK.run()

คุณสมบัติของอ็อบเจ็กต์

Property Name Type Description Default Value Example
hideMessageBubble boolean ซ่อน message bubble false true
showUnreadMessagesDialog boolean แสดงกล่องโต้ตอบข้อความที่ยังไม่ได้อ่าน true false
position string ตำแหน่งของวิดเจ็ต 'right' 'left'
locale string รหัสภาษาเริ่มต้น ภาษาของ Dashboard '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 ให้ตั้งค่าคอนฟิกแบบ global ก่อน (ต้องวางไว้ตอนต้นของสคริปต์) window.livedeskSettings = { // ตำแหน่งวิดเจ็ต: ล่างซ้าย (ค่าเริ่มต้นคือล่างขวา) position: "left", // บังคับใช้ภาษาจีนตัวย่อ (จะแสดงภาษาจีนแม้ว่าเบราว์เซอร์จะเป็นภาษาอังกฤษ) locale: "zh-CN", // ตรวจจับภาษาของเบราว์เซอร์โดยอัตโนมัติ (หากต้องการให้ภาษาของเบราว์เซอร์ผู้ใช้มีลำดับความสำคัญ ให้ตั้งค่าเป็น true และลบ locale ด้านบนออก) // useBrowserLanguage: true, // ประเภทวิดเจ็ต: expanded_bubble = bubble ขนาดใหญ่ (พร้อมข้อความต้อนรับ), standard = bubble ขนาดเล็กแบบคลาสสิก type: "expanded_bubble", // โหมดมืด (ทำตามระบบอัตโนมัติหรือบังคับใช้โหมดมืด) darkMode: "auto", // ค่าที่เลือกได้: true | false | "auto" // ซ่อนไอคอน bubble ขนาดเล็กด้านล่าง (เหมาะสำหรับวางในปุ่มแบบกำหนดเอง) hideMessageBubble: false, // ซ่อนปุ่มลูกศร "หน้าต่างป๊อปเอาต์" ที่มุมขวาล่าง showPopoutButton: false, // ชื่อ launcher แบบกำหนดเอง (แสดงในโหมด large 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 assist you at any time", 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 (แทนที่ด้วยโดเมนและ token ของคุณเอง) --> <script> (function(d,t) { var BASE_URL="https://www.engagelab.com"; // ← แทนที่ด้วยที่อยู่ LiveDesk ของคุณ var g=d.createElement(t),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>
              
              <script>
// 1. ก่อนโหลด sdk.js ให้ตั้งค่าคอนฟิกแบบ global ก่อน (ต้องวางไว้ตอนต้นของสคริปต์)
window.livedeskSettings = {
  // ตำแหน่งวิดเจ็ต: ล่างซ้าย (ค่าเริ่มต้นคือล่างขวา)
  position: "left",

  // บังคับใช้ภาษาจีนตัวย่อ (จะแสดงภาษาจีนแม้ว่าเบราว์เซอร์จะเป็นภาษาอังกฤษ)
  locale: "zh-CN",

  // ตรวจจับภาษาของเบราว์เซอร์โดยอัตโนมัติ (หากต้องการให้ภาษาของเบราว์เซอร์ผู้ใช้มีลำดับความสำคัญ ให้ตั้งค่าเป็น true และลบ locale ด้านบนออก)
  // useBrowserLanguage: true,

  // ประเภทวิดเจ็ต: expanded_bubble = bubble ขนาดใหญ่ (พร้อมข้อความต้อนรับ), standard = bubble ขนาดเล็กแบบคลาสสิก
  type: "expanded_bubble",

  // โหมดมืด (ทำตามระบบอัตโนมัติหรือบังคับใช้โหมดมืด)
  darkMode: "auto",        // ค่าที่เลือกได้: true | false | "auto"

  // ซ่อนไอคอน bubble ขนาดเล็กด้านล่าง (เหมาะสำหรับวางในปุ่มแบบกำหนดเอง)
  hideMessageBubble: false,

  // ซ่อนปุ่มลูกศร "หน้าต่างป๊อปเอาต์" ที่มุมขวาล่าง
  showPopoutButton: false,

  // ชื่อ launcher แบบกำหนดเอง (แสดงในโหมด large 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 assist you at any time",
  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 (แทนที่ด้วยโดเมนและ token ของคุณเอง) -->
<script>
  (function(d,t) {
    var BASE_URL="https://www.engagelab.com";          // ← แทนที่ด้วยที่อยู่ LiveDesk ของคุณ
    var g=d.createElement(t),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); });
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย