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

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

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

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

メモ:使用するテーマがGuideテンプレートV2の場合は、jQueryをインポートする必要があります。このコードは、GuideテンプレートV4には適用されません。詳細については、「ヘルプセンターテーマのテンプレートバージョン」を参照してください。
免責事項:この記事は説明のみを目的として提供されています。記事内で例示したコードについて、Zendeskはサポートも保証もいたしません。また、Zendeskは、JavaScript、jQuery、CSSなどのサードパーティの技術をサポートすることができません。何か問題があった場合はコメント欄に投稿するか、インターネットで解決策を探してみてください。また、デフォルトのCopenhagenテーマコードではなく、ヘルプセンター用のカスタムテーマを使用している場合も、このコードを使用できません。

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

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

チケットフォームID

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

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

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

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

コードを編集するには、次の手順に従います。

  1. 「ナレッジベース」で、サイドバーにある「デザインのカスタマイズ」アイコン()をクリックします
  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を正しい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();
 } 

翻訳に関する免責事項:この記事は、お客様の利便性のために自動翻訳ソフ トウェアによって翻訳されたものです。Zendeskでは、翻訳の正確さを期すために相応の努力を払っておりますが、翻訳の正確性につ いては保証いたしません。

翻訳された記事の内容の正確性に関して疑問が生じた場合は、正式版である英語の記事 を参照してください。

Powered by Zendesk