Website 高度な使用ガイド

Website チャネルでは、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" // 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"
/>

            
このコードブロックはフローティングウィンドウ内に表示されます

ユーザー 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: iframe にパラメータ user_id=xxxxx を追加します。

<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 インターフェース

ユーザー ID とユーザー情報を設定(標準モード)

window.addEventListener("livedesk:ready", function () { window.$livedesk.setUserId("一意のユーザー ID(user_id など)", { // 最初のパラメータは一意の識別子です email: "user@example.com", name: "ユーザー名", avatar_url: "https://example.com/avatar.jpg", // 任意 phone_number: "+1234567890" // 任意 }); });
              
              window.addEventListener("livedesk:ready", function () {
  window.$livedesk.setUserId("一意のユーザー ID(user_id など)", {  // 最初のパラメータは一意の識別子です
    email: "user@example.com",
    name: "ユーザー名",
    avatar_url: "https://example.com/avatar.jpg",  // 任意
    phone_number: "+1234567890"  // 任意
  });
});

            
このコードブロックはフローティングウィンドウ内に表示されます
注意: 設定内でのユーザー ID の指定がエンドユーザーによってトリガーされる場合は、window.addEventListener("livedesk:ready", function ()) のイベントラッパーを削除できます。

ユーザー 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'); // setUserId に追加 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');

// setUserId に追加
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: 型に応じて設定(文字列など) 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.$livdesk.toggle(); // 状態を渡してウィジェットを切り替え window.$livedesk.toggle("open"); // チャットウィジェットを開く window.$livedesk.toggle("close"); // チャットウィジェットを閉じる
              
              window.$livdesk.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.$livdesk.setLabel('support-ticket'); // 文字列のラベル識別子 window.$livdesk.removeLabel('support-ticket');
              
              window.$livdesk.setLabel('support-ticket'); // 文字列のラベル識別子
window.$livdesk.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 ランチャータイトル。 - '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, // カスタムランチャータイトル(大きなバブルモードで表示) launcherTitle: "オンラインサポート", // ウェルカムメッセージ(expanded_bubble モードで有効) welcomeTitle: "こんにちは!どのようにお手伝いできますか?", welcomeDescription: "通常、数分以内に返信します。", // オンライン / オフライン時に表示される案内文 availableMessage: "現在オンラインです。いつでもサポートいたします", unavailableMessage: "現在オフラインです。営業時間内にできるだけ早く返信いたします", // 機能スイッチ 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),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,

  // カスタムランチャータイトル(大きなバブルモードで表示)
  launcherTitle: "オンラインサポート",

  // ウェルカムメッセージ(expanded_bubble モードで有効)
  welcomeTitle: "こんにちは!どのようにお手伝いできますか?",
  welcomeDescription: "通常、数分以内に返信します。",

  // オンライン / オフライン時に表示される案内文
  availableMessage: "現在オンラインです。いつでもサポートいたします",
  unavailableMessage: "現在オフラインです。営業時間内にできるだけ早く返信いたします",

  // 機能スイッチ
  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),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
お問い合わせ