サンプルコード(ログデータの記録)

サンプルコード(ログデータの記録)

1. メタデータの記録

カスタマーが入力した情報をセッションのメタデータとして記録できます。
記録される情報は、セッション開始前にキュー画面の「メタデータ」欄で確認できます。

図1 HTML組み込みページのイメージ


図2 カスタマーから送信されたセッションをオペレーターが応答する際のイメージ


ソースコード(HTML)
  1. <form>
  2. <p>以下のフォームに情報を入力し、Surflyによるサポートサービスを開始します。</p>
  3. お名前<br />
  4. <input type="text" name="input_name" placeholder="海橋太郎"><br />
  5. メールアドレス<br />
  6. <input size="60" type="email" name="input_email" placeholder="umihashi@oceanbridge.jp"><br />
  7. <button type="button" id="button_submit">送信</button><br />
  8. </form>
ソースコード(JavaScript)
  1. <script type="text/javascript">
  2. (function (s, u, r, f, l, y) {
  3. s[f] = s[f] || { init: function () { s[f].q = arguments } };
  4. l = u.createElement(r); y = u.getElementsByTagName(r)[0];
  5. l.async = 1; l.src = 'https://surfly.jp/surfly.js'; y.parentNode.insertBefore(l, y);
  6. })
  7. (window, document, 'script', 'Surfly');
  8. var settings = {
  9. widget_key: 'お手持ちの Widget Key を記載してください'
  10. };
  11. Surfly.init(settings, function (initResult) {
  12. if (initResult.success) {
  13. button_submit.addEventListener('click', function () {
  14. if (!Surfly.isInsideSession) {
  15. var cname = document.getElementsByName("input_name")[0].value;
  16. var cemail = document.getElementsByName("input_email")[0].value;
  17. var metadata = { "name": cname, "email": cemail };
  18. Surfly.session().startLeader(null, metadata);
  19. }
  20. });
  21. } else {
  22. console.log(initResult.errorMsg)
  23. };
  24. });
  25. </script>

2. 監査ログの記録

セッション中に発生したイベントを監査ログ("client_log")としてセッションログに記録できます。
セッションログに記録するにはオプションの設定が必要です。詳細はこちらをご参照ください。
サンプルでは、以下の情報を監査ログに記録しています。
  1. セッション開始後にフォロワーが参加するまでの待機時間
  2. セッション中にダウンロードされたファイル(ドキュメントやプログラム)の名称
ソースコード(HTML)
  1. <div>
  2. このサンプルでは、Surflyが標準で用意しているSurlyサポートボタンを使用しています。
  3. セッションを開始するには、「お困りですか?」ボタンを押下してください。
  4. </div>

ソースコード(JavaScript)
  1. <script type="text/javascript">
  2. (function (s, u, r, f, l, y) {
  3. s[f] = s[f] || { init: function () { s[f].q = arguments } };
  4. l = u.createElement(r); y = u.getElementsByTagName(r)[0];
  5. l.async = 1; l.src = 'https://surfly.jp/surfly.js'; y.parentNode.insertBefore(l, y);
  6. })
  7. (window, document, 'script', 'Surfly');
  8. var settings = {
  9. widget_key: 'お手持ちの Widget Key を記載してください'
  10. };
  11. Surfly.init(settings, function (initResult) {
  12. if (initResult.success) {
  13. if (!Surfly.isInsideSession) {
  14. // Surlyサポートボタンを表示します
  15. Surfly.button();
  16. var currentDate;
  17. // セッションがキューに待機された時間を記録します
  18. Surfly.on('session_created', function (session, event) {
  19. currentDate = Date.now();
  20. });
  21. // フォロワーがセッションに参加した時間をcurrentDate変数から差し引いて待機時間を算出します
  22. Surfly.on('viewer_joined', function (session, event) {
  23. var waitingTime = (Date.now() - currentDate) / 1000;
  24. session.log({Client_Log1: "Agent joined after " + waitingTime + " seconds"})
  25. })
  26. // セッション内でダウンロードされたファイル(ドキュメントやプログラム)をログに記録します
  27. Surfly.on('file_download', function (session, event) {
  28. session.log({Client_Log2: "A file with the file name: " + "'" + event.filename + "'" + " was downloaded"})
  29. })
  30. }
  31. } else {
  32. console.log(initResult.errorMsg)
  33. };
  34. });
  35. </script>

    • Related Articles

    • サンプルコード(応用的な組み込み方法)

      以下は応用的な組み込み方法のサンプルコードです。 1. セッション開始時のリダイレクト 参加者がセッションに参加した際に、指定したURLへ共有画面をリダイレクトさせます。 サンプルでは、 https://www.surfly.jp を設定しています。 図1 HTML組み込みページのイメージ 図2 番号発行ボタン選択後のイメージ 図3 発行された番号をオペレーターが応答する際のイメージ 図4 オペレーター応答後のイメージ ソースコード(HTML) <div> [番号発行] ...
    • サンプルコード(基本的な組み込み方法)

      サンプルは複数を組み合わせて実装することも可能なため、お客様のご希望に近いWebサイトへの組み込みが実現できます。 サンプルの説明には「アウトバウンド」「インバウンド」などのSurflyで独自に定義する用語を使用しています。 各用語については、セッション操作マニュアルをご参照ください。 また実装したコードを修正してコブラウジングセッションを開始する際には、ブラウザに記憶されている古いデータや設定状況を削除するため、キャッシュを必ず消去することをお勧めいたします。 Google ...