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

ช่องทางเว็บไซต์รองรับการกำหนดค่าเพิ่มเติมผ่านอินเทอร์เฟซ 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" />
              
              <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' }, }), '*', ), );
              
              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 ในการกำหนดค่า และใช้ 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, });
              
              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", });
              
              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, // ตัวอย่าง: ประเภทตัวเลข }); });
              
              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.deleteCustomAttribute("pricing_plan"); // คีย์แอตทริบิวต์ประเภทสตริง

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

สลับสถานะการเปิดของบับเบิลแชท

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

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

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

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

แสดงหรือซ่อนบับเบิลแชท

window.$livedesk.toggleBubbleVisibility("hide"); // แสดงหรือซ่อน
              
              window.$livedesk.toggleBubbleVisibility("hide"); // แสดงหรือซ่อน

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

โหมดป๊อปอัป

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

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

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

ตั้งค่าภาษา

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

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

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

เพิ่มหรือลบป้ายกำกับ

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

window.$livedesk.setLabel("support-ticket"); // ตัวระบุป้ายกำกับประเภทสตริง window.$livedesk.removeLabel("support-ticket");
              
              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>
              
              <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); });
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย