チャットのカスタマイズを理解する

🚧

2018年11月にリリースされた新チャット機能が対象となります

古いチャットタイプの接客サービスについては、こちらのドキュメントの対象外となりますので、ご了承ください。

チャットタイプのアクションでは、chat というアクション内の JavaScript で利用できるローカルオブジェクトを用いて、チャットの表示・非表示のコントロールや、表示についてのカスタマイズが可能です。

Widget 内から chat を呼び出すことで、利用できます。

🚧

chat オブジェクトは tracker.js のグローバルなインスタンスです

chat オブジェクトはひとつの tracker.js に対して、ひとつだけインスタンスが生成され、グローバルから参照することができます。そのため、あるページから複数のウェブチャットテンプレートを配信する場合には注意が必要です。例えば、それぞれのテンプレートから chat.option() 関数を呼び出す場合に意図しない設定が反映されてしまう可能性があります。

事前準備

以下を行うことで、チャットタイプのアクションを作成できるようになります。

  • プラグイン「KARTE Talk」をインストールする
  • プラグイン「ウェブチャット」をインストールする

chat オブジェクトの基本的な使い方

chat の各コンポーネント

Launcher

chat.open()を実行すると Launcher が表示されます。

ChatPanel

chat.open() を実行した後に、Launcher をクリックあるいは chat.activate() を実行するとChatPanel が表示されます。ChatPanel からメッセージの送信が可能です。

Script の記載方法

Script の記載方法の例は以下のようになります。
2018年11月にリリースされた新チャット機能では、バージョンに「2」を指定する必要があります。

chat.option({
  // バージョン
  version: 2,
  // テーマ色
  theme_color: "#2aab9f",
  // ヘッダータイトル
  header_title: "KARTEサポートチーム",
  // ヘッダー説明文
  header_description: "ご質問があればお尋ねください。\nKARTEサポート担当者につながります。サポート受付時間は平日10:30-17:30です。",
  // 画像アップロードを有効化
  enable_image_upload: true,
  // メール通知設定を有効化
  show_notification_email_setting_view: true,
  // デフォルトのランチャーを隠す
  hide_launcher: false,
  // チャットオペレーター名(未設定時)
  default_operator_name: "サポート担当",
  // アカウント画像(未設定時)
  default_operator_image: "https://default-image.png",
  // チャットオペレーター名(上書き)
  force_operator_name: "",
  // アカウント画像(上書き)
  force_operator_image: ""
});

// チャットの起動
chat.open();

// チャット送信
chat.send({text: '何かお探しですか?'});

Widget からチャットを開く・閉じる

Launcher 部分を Widget で作って、Widget からチャットを開閉することができます。

記述例

// Launcherを表示しない
chat.option({
  (...中略...)
  hide_launcher: true
});

// ChatPanelが開いたらWidgetを非表示
chat.emitter.on('activate', function() {
   widget.hide();
});

// ChatPanelが閉じたらWidgetを表示
chat.emitter.on('deactivate', function() {
   widget.setState(1);
});

// chatをバックグラウンドで起動
chat.open();

// ボタンクリックでChatPanelを表示
widget.method('onClick', function(){
   chat.activate();
});

// チャットで対応済みになった時にWidgetを表示
chat.emitter.on('talk_chat_status_changed', function(data) {
    if(data.chatStatus == 'closed') {
        widget.show();
    }
});

// Widgetを表示
widget.show();

ブラウザタブ通知をする

未読メッセージがあるエンドユーザーに対して、ブラウザタブの文言変更で通知を行います。

記述例

// ブラウザタブを使う場合のoption設定例
chat.option({
  (...中略...)
  // ブラウザタブ通知を有効化
  enable_tab_notification: true,
  // ブラウザタブ通知の文言
  tab_notification_text: "新着メッセージあり"
});