ヘルプセンターで関連するチケットフォームのみをカスタマーに表示することで、カスタマイズされたサポート体験を作成します。このチュートリアルでは、ユーザーの組織に基づいて特定のチケットフォームを非表示にする方法をご説明します。
このワークフローには以下のステップが含まれます。
このワークフローは、認証されていないユーザーまたは組織に所属していないユーザーには機能しません。これらのユーザーには、すべてのフォームが表示されます。
使用するテーマがGuideのテンプレートV2の場合は、jQueryをインポートする必要があります。詳細については、次の記事を参照してください:「jQueryのインポートまたはアップグレード」
ステップ1:チケットフォームIDを確認する
- チケットフォームで、適切なチケットフォームを開きます
- URLの最後のスラッシュの後にあるID番号を見つけます
ステップ2:組織名を確認する
ステップ3:JavaScriptを編集する
使用するテーマがGuideのテンプレートV2の場合は、jQueryをインポートする必要があります。詳細については、次の記事を参照してください:「jQueryのインポートまたはアップグレード」コードはDOMNodeInserted Mutation Eventを利用しています。ChromeおよびChromiumの新しいバージョンでは、ミューテーションイベントのサポートが終了しています。DOMNodeInsertedをサポートしていないブラウザとの互換性を高めるには、Mutation Observerのガイダンスに従って、新しい関数に移行してください。
- Guideで、サイドバーにある「デザインをカスタマイズ」アイコン()をクリックします
- 編集するテーマの名前をクリックします
- オプションメニューをクリックし、「コードを編集」を選択して、
Script.js
を選択します - 下記のコードブロックをコピーします
$(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); }); } });
- コードをヘルプセンターコードのJavaScriptテンプレートに貼り付けます
- 変数
formID = 6502769669773
を、非表示にするチケットフォームIDに置き換えます -
"ZENDESK"
をチケットフォームを表示する組織の名前に置き換えます - ユーザーがテンプレートから
;
や}
などの文字をコピーしないと、コードによってページが崩れる可能性があります。 - テンプレートを保存し、変更を公開します
提供されたコードは、別の組織のためのスペースを確保します。フォームと組織を追加するには、上記の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();
}