チケットフォーム
このガイドでは、GitLab における Zendesk チケットフォームを作成、編集、管理する方法について説明します。管理者は管理者タスクセクションを確認してください。
技術的な詳細
- デプロイタイプ:
Standard - 同期リポジトリ
CustSuppOps Zendesk Test Suite Generatorが有効
チケットフォームを理解する
チケットフォームとは
チケットフォームは、ユーザーがチケットを作成するために使用するフォームです(Web UI を使用する場合)。フォーム上の回答は、チケットのメタデータに変換されます。
これらは次の 2 種類のいずれかです:
- パブリック: エージェントとエンドユーザーの両方が閲覧できます
- 内部: エージェントのみが閲覧できます
チケットフォームの管理方法
Zendesk は UI を通じてチケットフォームを完全に管理する方法を提供していますが、私たちはよりバージョン管理されたメソドロジーを採用しています。これにより、定められたレビュープロセス、必要に応じたロールバックの実行などが可能になります。
このため、同期リポジトリを使用しています。
同期リポジトリの仕組み
同期リポジトリのワークフローは次のプロセスに従います:
graph TD; A-->C; B-->C; C-->D; A(Scheduled time for pipeline to run) B(Scheduled pipeline triggered manually) C(bin/sync runs) D(Changes synced to Zendesk)
チケットフォームは条件ロジックを使用します
チケットフォームでは、条件を使用してフィールドを動的に表示または非表示にできます:
end_user_conditions: エンドユーザーが選択内容に基づいて表示するフィールドを制御しますagent_conditions: エージェントに表示するフィールドと必須になるタイミングを制御します
親フィールドが特定の値を持つ場合、子フィールドが表示されます(必要に応じて必須にできます)。例: 「プロダクトカテゴリが「GitLab.com」の場合、「GitLab.com ユーザー ID」フィールドを表示する」
チケットフォームで条件を使用する必要はありません。条件がない場合、フォームデータで詳述されたすべてのフィールドが表示されます。
これは、チケットフォームで_条件付き要件_を設定する方法でもあります。
UI では、エンドユーザー条件の形式は次のとおりです:
TICKET_FIELD の値が VALUE の場合、LIST_OF_TICKET_FIELDS を表示する
LIST_OF_TICKET_FIELDS の各項目では、何らかの方法でチケットフィールド項目を必須にするオプションがあります。
2 種類のバックエンドは、要件定義の主な違いを除けば類似しています。
エンドユーザー条件
エンドユーザー条件のバックエンド値の形式は次のとおりです:
- parent_field_id: 'Field title'
value: 'tag_or_value_used_by_field'
child_fields:
- id: 'Field title 2'
is_required: true
内訳は次のとおりです:
parent_field_idは、値を確認するfieldですvalueは、確認するfieldの値ですchild_fieldsは表示するフィールドのリストで、各項目には次が含まれます:idは表示するフィールドですis_requiredは、新しく表示されたフィールドが送信時に必須かどうかを詳述します
エージェント条件
エージェント条件のバックエンド値の形式は、次の 2 つの形式のいずれかです:
- parent_field_id: 'Field title'
value: 'tag_or_value_used_by_field'
child_fields:
- id: 'Field title 2'
is_required: true
required_on_statuses:
type: 'ALL_STATUSES'
- parent_field_id: 'Field title'
value: 'tag_or_value_used_by_field'
child_fields:
- id: 'Field title 2'
is_required: true
required_on_statuses:
type: 'SOME_STATUSES'
statuses:
- 'pending'
- 'hold'
- 'solved'
内訳は次のとおりです:
parent_field_idは、値を確認するfieldですvalueは、確認するfieldの値ですchild_fieldsは表示するフィールドのリストで、各項目には次が含まれます:idは表示するフィールドですis_requiredは、新しく表示されたフィールドが何らかの方法で必須かどうかを詳述します
違いを決めるのは、新しいフィールドが_必須_かどうか、および必須となる方法です:
すべてのステータスで必須にする場合:
- id: 'Field title 2' is_required: true required_on_statuses: type: 'ALL_STATUSES'どのステータスでも必須にしない場合(つまり必須にしない場合):
- id: 'Field title 2' is_required: true required_on_statuses: type: 'NO_STATUSES'特定のステータスでのみ必須にする場合:
- id: 'Field title 2' is_required: true required_on_statuses: type: 'SOME_STATUSES' statuses: - 'list' - 'of' - 'statuses'
管理者以外としてチケットフォームを作成する
チケットフォームを作成するには、機能リクエスト Issueを作成してください(Customer Support Systems チームによる手動介入が必要になるためです)。
管理者以外としてチケットフォームを編集する
チケットフォームを変更するには、機能リクエスト Issueを作成してください(Customer Support Systems チームによる手動介入が必要になるためです)。
管理者以外としてチケットフォームを非アクティブ化する
チケットフォームの非アクティブ化をリクエストするには、機能リクエスト Issueを作成してください(Customer Support Systems チームによる手動介入が必要になるためです)。
人が読める形式の置換
注記
- YAML ファイルを通じてチケットフォームを作成または編集する
administratorsにのみ適用されます
現在、同期リポジトリでは、人が読める形式(つまりチケットフィールドの title 属性)からチケットフィールドとブランドの置換を実行できます。
そのため、Preferred Region for Support という値を検出すると、そのタイトルを持つチケットフィールドを特定し、それが含まれていたチケットフォーム属性に必要なテキストに変換することを認識します。ブランドについても同様です(ただし、name 属性を使用します)。
現在のフォーム
Zendesk Global の現在のフォーム
| 内部名 | パブリック名 | 可視性 | 利用資格が必要か? | 直接リンク |
|---|---|---|---|---|
| SaaS | Support for GitLab.com | Public | Y | リンク |
| 2FA Removal | 2FA Reset | Public | Y | リンク |
| SaaS Account | GitLab.com user accounts and login issues | Public | N | リンク |
| Self-Managed | Support for a self-managed GitLab instance | Public | Y | リンク |
| GitLab Dedicated | Support for GitLab Dedicated instances | Public | Y | リンク |
| L&R | Subscription, License or Customers Portal Problems | Public | N | リンク |
| Billing | Billing inquiries/refunds | Public | N | リンク |
| Alliance Partners | Support for alliance partners | Public | Y | リンク |
| Support Ops | Support portal related matters | Public | N | リンク |
| Emergencies | File an emergency request | Public | N | リンク |
| Support Internal Request | Internal | N | ||
| GitLab Incidents | Internal | N | ||
| Customer Support Internal Requests | Customer Support Internal Requests | Internal | N | リンク |
| L&R Support Internal Requests | L&R Support Internal Requests | Internal | N | リンク |
| CustSuppOps Support Internal Requests | CustSuppOps Support Internal Requests | Internal | N | リンク |
Zendesk US Government の現在のフォーム
| 内部名 | パブリック名 | 可視性 | 利用資格が必要か? | 直接リンク |
|---|---|---|---|---|
| Support | Technical Support Requests | Public | Y | リンク |
| GitLab Dedicated | GitLab Dedicated Technical Support Requests | Public | Y | リンク |
| Upgrade Assistance | Upgrade Planning Assistance Request | Public | Y | リンク |
| Support Ops | Support portal related matters | Public | Y | リンク |
| L&R | License, Subscription, and Renewals Request | Public | Y | リンク |
| Emergency | Emergency Support Request | Public | Y | リンク |
| License Issue | Internal | N | ||
| L&R Support Internal Requests | L&R Support Internal Requests | Internal | N | リンク |
| CustSuppOps Support Internal Requests | CustSuppOps Support Internal Requests | Internal | N | リンク |
管理者タスク
注記
- このセクションのすべての項目には、Zendesk の
Administratorレベルのアクセス権が必要です。
チケットフォームを表示する
Zendesk でチケットフォームを表示するには:
- Zendesk インスタンスの管理パネルに移動します
Objects and rules > Tickets > formsに移動します
注記: 非アクティブなチケットフォームを表示する場合は、Filter ボタンをクリックしてアクティブなフィルターを変更する必要がある場合があります
チケットフォームを作成する
警告
- これは、対応するリクエスト Issue(機能リクエスト、管理、バグなど)がある場合にのみ実行してください。存在しない場合は、まず作成し、作業を開始する前に標準プロセスを経る必要があります。
チケットフォームを作成するには、同期リポジトリで MR を作成する必要があります。正確な変更内容はリクエスト自体によって異なります。使用できる開始テンプレートは次のとおりです:
---
name: 'Your form name here'
previous_name: 'Your form name here'
display_name: 'Customer visible name'
raw_display_name: 'Customer visible name' # Dynamic content placeholder can be used here
active: true
position: 1 # Integer representing ticket form position
ticket_field_ids:
- 'Field title'
- 'Field title 2'
- 'Field title 3'
- 'Field title 4'
default: false # Is the form the default form for this account
in_all_brands: false # Is the form available for use in all brands on this account (should always be false)
restricted_brand_ids:
- 'Brand name'
end_user_conditions:
- parent_field_id: 'Field title'
value: 'tag_or_value_used_by_field'
child_fields:
- id: 'Field title 2'
is_required: true
- id: 'Field title 3'
is_required: false
agent_conditions:
- parent_field_id: 'Field title'
value: 'tag_or_value_used_by_field'
child_fields:
- id: 'Field title 2'
is_required: true
required_on_statuses:
type: 'ALL_STATUSES'
- id: 'Field title 3'
is_required: true
required_on_statuses:
type: 'NO_STATUSES'
- id: 'Field title 4'
is_required: true
required_on_statuses:
type: 'SOME_STATUSES'
statuses:
- 'pending'
- 'hold'
- 'solved'
チケットフォームはゼロから作成すると非常に複雑になる可能性があるため、迷った場合は同期リポジトリ内の既存のものを有効な例として使用してください。
ピアが MR をレビューして承認した後、MR をマージできます。次回のデプロイ時に Zendesk に同期されます。
チケットフォームを編集する
警告
- これは、対応するリクエスト Issue(機能リクエスト、管理、バグなど)がある場合にのみ実行してください。存在しない場合は、まず作成し、作業を開始する前に標準プロセスを経る必要があります。
チケットフォームを編集するには、同期リポジトリで MR を作成する必要があります。正確な変更内容はリクエスト自体によって異なります。
ピアが MR をレビューして承認した後、MR をマージできます。次回のデプロイ時に Zendesk に同期されます。
チケットフォームの名前を変更する
チケットフォームのタイトルを変更する必要がある場合は、現在の値を previous_name 属性にコピーしてから、name 属性を変更します。これにより、同期は更新対象のチケットフォームを引き続き特定できます。
チケットフォームを非アクティブ化する
警告
- これは、対応するリクエスト Issue(機能リクエスト、管理、バグなど)がある場合にのみ実行してください。存在しない場合は、まず作成し、作業を開始する前に標準プロセスを経る必要があります。
チケットフォームを非アクティブ化するには、同期リポジトリで MR を作成する必要があります。この MR では、対応するチケットフォームの YAML ファイルに対して次を実行してください:
ファイルを
activeパスからinactiveパスに移動しますactive属性の値をfalseに変更しますticket_field_idsの値を次のように変更します:- 'Status' - 'Group' - 'Assignee' - 'Ticket status' - 'Subject' - 'Description'end_user_conditionsの値を空の配列(つまり[])に変更しますagent_conditionsの値を空の配列(つまり[])に変更します
ピアが MR をレビューして承認した後、MR をマージできます。次回のデプロイ時に Zendesk に同期されます。
チケットフォームを削除する
警告
- チケットフォームは、非アクティブ化されている場合にのみ削除できます。
- これは、対応するリクエスト Issue(機能リクエスト、管理、バグなど)がある場合にのみ実行してください。存在しない場合は、まず作成し、作業を開始する前に標準プロセスを経る必要があります。
同期リポジトリは削除を実行しないため、Zendesk 自体を使用してこれを行う必要があります。
チケットフォームを削除するには:
- Zendesk インスタンスの管理パネルに移動します
Objects and rules > Tickets > formsに移動します- フィルターを
Inactiveに変更します - 削除するチケットフォームを特定し、その名前をクリックします
- 3 つの縦並びのドットをクリックします(チケットフォームデータの右上)
DeleteをクリックしますDeleteをクリックして変更を送信します
例外デプロイを実行する
警告
- これはチケットフォームとチケットフィールドの両方に適用されます
チケットフォームの例外デプロイを実行するには、対象のチケットフォーム同期プロジェクトに移動し、スケジュール済みパイプラインページに移動して、同期項目の再生ボタンをクリックします。これにより、チケットフォームの同期ジョブがトリガーされます。
一般的な問題とトラブルシューティング
マージ後にチケットフォームの変更が表示されない
チケットフォームは Standard デプロイタイプに従うため、通常のデプロイサイクル中(または例外デプロイが実行された場合)にのみデプロイされます
c955a93f)