ヘルプセンターで関連するチケットフォームのみをカスタマーに表示することで、カスタマイズされたサポート体験を作成します。このチュートリアルでは、ユーザーの組織に基づいて特定のチケットフォームを非表示にする方法をご説明します。

このワークフローには以下のステップが含まれます。

  • ステップ1:チケットフォームIDを確認する
  • ステップ2:組織名を確認する
  • ステップ3:JavaScriptを編集する

このワークフローは、認証されていないユーザーまたは組織に所属していないユーザーには機能しません。これらのユーザーには、すべてのフォームが表示されます。

使用するテーマがGuideのテンプレートV2の場合は、jQueryをインポートする必要があります。詳細については、次の記事を参照してください:「jQueryのインポートまたはアップグレード」

免責事項:この記事は説明のみを目的として提供されています。記事内で例示したコードについて、Zendeskはサポートも保証もいたしません。また、Zendeskは、JavaScript、jQuery、CSSなどのサードパーティの技術をサポートすることができません。何か問題があった場合はコメント欄に投稿するか、インターネットで解決策を探してみてください。

ステップ1:チケットフォームIDを確認する

  1. チケットフォームで、適切なチケットフォームを開きます
  2. URLの最後のスラッシュの後にあるID番号を見つけます

チケットフォームID

ステップ2:組織名を確認する

  1. Supportで、「カスタマー」タブを開きます
  2. 組織を参照または検索して、適切な組織名を見つけます

ステップ3:JavaScriptを編集する

使用するテーマがGuideのテンプレートV2の場合は、jQueryをインポートする必要があります。詳細については、次の記事を参照してください:「jQueryのインポートまたはアップグレード」コードはDOMNodeInserted Mutation Eventを利用しています。ChromeおよびChromiumの新しいバージョンでは、ミューテーションイベントのサポートが終了しています。DOMNodeInsertedをサポートしていないブラウザとの互換性を高めるには、Mutation Observerのガイダンスに従って、新しい関数に移行してください。

  1. Guideで、サイドバーにある「デザインをカスタマイズ」アイコン()をクリックします
  2. 編集するテーマの名前をクリックします
  3. オプションメニューをクリックし、「コードを編集」を選択して、Script.jsを選択します
  4. 下記のコードブロックをコピーします
    $(document).ready(function() {
      var formID = 6502769669773; // Change this to the form ID you wish to remove
        var userOrgs = window.HelpCenter.user.organizations;
        var userOrgNames = userOrgs.map(org => org.name);
    
    if (!(userOrgNames.includes("ZENDESK"))) { // Specify the organization name here
    
          // If the user does not belong to the organization specified, remove the form option from the dropdown
          $('#request_issue_type_select option[value="' + formID + '"]').remove();
          $('.nesty-panel').on('DOMNodeInserted', function(e) {
            $(this).children('ul').children().remove('#' + formID);
          });
        }
      });
  5. コードをヘルプセンターコードのJavaScriptテンプレートに貼り付けます
  6. 変数formID = 6502769669773を、非表示にするチケットフォームIDに置き換えます
  7. "ZENDESK"をチケットフォームを表示する組織の名前に置き換えます
  8. ユーザーがテンプレートから ; や } などの文字をコピーしないと、コードによってページが崩れる可能性があります。
  9. テンプレートを保存し、変更を公開します

提供されたコードは、別の組織のためのスペースを確保します。フォームと組織を追加するには、上記のifステートメントをコピーし、以下のように既存のifステートメントの下に置きます。チケットフォームIDを正しいものに置き換え、さらにユーザーが入っているかどうかを確認する組織に置き換えます。必要に応じてチケットフォームと組織でこれを繰り返します。

指定された組織を除くすべての組織に1つのチケットフォームを表示するようにコードの動作を変更するには、NOT演算子(!)をifステートメントから削除します。

for (var c in HelpCenter.user.organizations) {
if (HelpCenter.user.organizations[c].name !== "ZENDESK"){
$("#TICKT_FORM_ID").remove();
}


if (HelpCenter.user.organizations[c].name !== "MYORG"){
$("#TICKET_FORM_ID2").remove();
}
Powered by Zendesk