顧客がサポートを求めて連絡を取るとき、彼らが使用するフォームは彼らの経験全体を形作ります。適切に設計されたリクエストフォームは、適切な情報を事前に収集し、チケットを適切なチームに自動的にルーティングし、顧客とエージェントの両方をイライラさせるやり取りを減らします。
Zendeskは、リクエストフォームをカスタマイズするいくつかの方法を提供していますが、オプションはプランレベルと技術リソースによって大きく異なります。このガイドでは、簡単な管理設定から完全なAPI開発まで、あらゆるアプローチを説明し、ニーズに合った適切な方法を選択できるようにします。
Zendeskリクエストフォームとは?
Zendeskは、顧客リクエストを収集するための3つの異なるタイプのフォームを提供します。
-
チケットフォームは、ヘルプセンターに表示され、顧客が構造化されたサポートリクエストを送信できるようにします。これらは最も一般的であり、対象となるプランではアカウントごとに最大300種類のフォームをサポートします。
-
プレチャットフォームは、ライブチャットセッションが開始される前に表示され、名前、メールアドレス、部署の希望などの訪問者情報を収集します。これらは、新しいMessaging(メッセージング)ウィジェットではなく、Web Widget (Classic)でのみ機能します。
-
カスタムAPIフォームは、Zendesk Ticketing APIを使用して自分で構築するフォームであり、外観と動作を完全に制御できます。
各フォームタイプは異なるユースケースに対応し、それぞれに独自のカスタマイズオプションがあります。始める前に必要なものを分解してみましょう。
開始するために必要なもの
フォームをカスタマイズする前に、以下を確認してください。
- 管理者アクセス権を持つZendeskアカウント
- 必要な機能に適したプラン(複数のチケットフォームにはSuite Growth+またはSupport Enterpriseが必要)
- APIカスタマイズの場合:Node.js 16.15.1+またはPython 3.10.11+の開発環境
- ユースケースに一致するフォームタイプの明確な理解
前提条件が整ったら、最も簡単なカスタマイズ方法から始めましょう。
Zendesk管理センターでチケットフォームをカスタマイズする
管理ダッシュボードでは、コードなしでポイントアンドクリックのカスタマイズが可能です。これは最も一般的なユースケースをカバーし、すべてのプランレベルで機能します。
ステップ1:チケットフォームの設定にアクセスする
管理センター > オブジェクトとルール > チケット > フォームに移動します。
既存のフォームのリストが表示されます。「フォームを追加」をクリックして新しいフォームを作成するか、既存のフォームを選択して編集します。
ステップ2:チケットフォームを作成または編集する
新しいフォームを作成するときは、いくつかの重要な設定を構成します。
- **フォーム名:**これはエージェントがチケットインターフェースのドロップダウンに表示されるものです。
- エンドユーザーの可視性:「エンドユーザーが編集可能」をチェックして、ヘルプセンターでフォームを利用できるようにします。
- **エンドユーザー名:**オプションで、顧客に異なる名前を表示します(たとえば、「営業へのお問い合わせ」を「営業リクエストフォーム」の代わりに表示します)。
- **ブランドの制限:**複数のブランドがある場合は、このフォームを使用するブランドを制限します。

ステップ3:カスタムフィールドを追加および配置する
フォームエディタには、右側に利用可能なフィールドが表示され、左側にフォームレイアウトが表示されます。右側のパネルからフォームにフィールドをドラッグし、フォーム領域内でドラッグして並べ替えます。
利用可能なカスタムフィールドタイプは次のとおりです。
- テキスト(1行および複数行)
- ドロップダウンメニュー
- チェックボックス
- 日付ピッカー
- 数値フィールド(整数および10進数)
- 正規表現検証フィールド
- 複数選択フィールド
- ルックアップリレーションシップフィールド
**重要な制限:**フィールドプロパティは、フォームレベルではなくフィールドレベルで設定されます。フィールドを必須にすると、そのフィールドが表示されるすべてのフォームで必須になります。同じフィールドをあるフォームでは必須にし、別のフォームではオプションにすることはできません。

ステップ4:条件付きフィールドを構成する(オプション)
より動的なフォームの場合は、他の選択に基づいてフィールドを表示または非表示にできます。これには、ほとんどのプランで利用可能な条件付きチケットフィールド機能が必要です。
これを設定するには、最初にフィールドを作成し、次にチケットフォームエディタで条件を定義します。たとえば、「製品カテゴリ」が「ハードウェア」に設定されている場合にのみ、「製品モデル」フィールドを表示できます。
Web Widgetの問い合わせフォームをカスタマイズする
Web Widgetは、Webサイトに直接サポートを埋め込みます。その問い合わせフォームをカスタマイズする方法は次のとおりです。
ステップ1:Web Widgetの設定にアクセスする
管理センター > チャネル > Classic(クラシック) > Web Widgetに移動します。
基本タブで:
- 「問い合わせフォーム」チェックボックスをオンにして有効にします
- 「カスタムチケットフィールド」ドロップダウンを選択して、表示するフィールドを選択します
- ユーザーが複数のフォームから選択できるようにする場合は、「チケットフォーム」を有効にします

Web Widget (Classic)の主な制限事項:
- Regex(正規表現)、Date(日付)、およびMulti-select(複数選択)フィールドはサポートされていません
- Priority(優先度)などのシステムフィールドはウィジェットに表示されません
- フィールドの並べ替えは、チケットフォームではサポートされていますが、デフォルトの問い合わせフォームではサポートされていません
ステップ2:ウィジェットで複数のチケットフォームを有効にする
複数のチケットフォームがある場合は、「チケットフォーム」チェックボックスをオンにします。ユーザーが「メッセージを残す」をクリックすると、最初にニーズに合ったフォームを選択し、次にそのリクエストタイプに関連するフィールドが表示されます。
JavaScript APIを使用した高度なカスタマイズ
ウィジェットの動作をより詳細に制御するには、JavaScript APIを使用します。これには、Webサイトにコードを追加する必要があります。
ステップ1:zESettingsオブジェクトを設定する
zESettingsオブジェクトは、ウィジェットの動作を構成します。**重要:**HTMLのZendeskウィジェットスクリプトの前に配置してください。そうしないと、設定は適用されません。
window.zESettings = {
webWidget: {
chat: {
prechatForm: {
greeting: { '*': 'ようこそ!今日はどのようなご用件ですか?' },
departmentLabel: { '*': 'チームを選択してください' }
}
}
}
};
ステップ2:訪問者情報を事前入力する
ログインしているユーザーの場合は、すでに持っている情報でフォームフィールドを事前に入力します。
基本的な識別(名前とメールアドレス):
zE('webWidget', 'identify', {
name: 'John Smith',
email: 'john@example.com'
});
読み取り専用フィールドを使用した高度な事前入力:
zE('webWidget', 'prefill', {
name: { value: 'John Smith', readOnly: true },
email: { value: 'john@example.com', readOnly: true },
phone: { value: '555-1234', readOnly: false }
});
readOnly: trueを設定すると、訪問者が事前入力された値を編集できなくなります。これは、すでに身元を確認している場合に役立ちます。
ステップ3:部署をフィルタリングし、ラベルをカスタマイズする
ドロップダウンに表示される部署を制御します。
chat: {
departments: {
enabled: ['Sales', 'Technical Support'],
select: 'Sales'
}
}
部署名は完全に一致する必要があります(大文字と小文字を区別)。部署名が存在しない場合、エラーメッセージなしでドロップダウンが完全に非表示になる場合があります。
ステップ4:URLパラメータを介してチケットフォームを事前入力する
ヘルプセンターのチケットフォームの場合は、URLにパラメータを追加してフィールドを事前入力できます。これは、特定のヘルプ記事からリンクする場合にうまく機能します。
システムフィールド形式: tf_{fieldname}={value}
tf_subject=問題の説明tf_description=詳細な問題tf_priority=high
カスタムフィールド形式: tf_{fieldID}={value}
tf_12345=製品名
URLの例:
https://company.zendesk.com/hc/en-us/requests/new?tf_subject=故障した充電器&tf_description=交換が必要&tf_12345=USA

事前入力されたフォームの要件:
- Guide ProfessionalまたはEnterpriseプラン
- Templating APIバージョン2以降
- SSO環境の場合:事前入力された値にアクセスする前に、ユーザーがログインしている必要があります
Zendesk APIを使用してカスタムフォームを構築する
ネイティブオプションがニーズを満たさない場合は、Ticketing APIを使用して完全にカスタムフォームを構築します。
ステップ1:開発環境を設定する
以下が必要です。
- 匿名リクエストが有効になっているZendeskアカウント(「リクエストとアップロードAPIの認証を必須にする」が選択されていない必要があります)
- Node.js 16.15.1+またはPython 3.10.11+
Node.jsの依存関係:
npm install express body-parser axios express-recaptcha
Pythonの依存関係:
pip3 install flask requests google-recaptcha-flask
ステップ2:フォームHTMLを作成する
件名、説明、名前、メールアドレスのフィールドを含む標準のHTMLフォームを構築します。Zendeskは、スパムを防ぐために、Google reCAPTCHA(グーグルリキャプチャ)、hCaptcha、またはCloudflare Bot Management(クラウドフレアボットマネジメント)を使用してCAPTCHA保護を追加することを強くお勧めします。
ステップ3:API統合を実装する
エンドユーザーフォームには、Request(リクエスト)エンドポイント(Ticket(チケット)エンドポイントではない)を使用します。リクエストは、チケットのエンドユーザーの視点を表します。
APIエンドポイント:
POST https://{subdomain}.zendesk.com/api/v2/requests.json
認証:
- ユーザー名:
{your_email}/token - パスワード:APIトークン
リクエストボディの例:
{
"request": {
"subject": "助けが必要です",
"comment": { "body": "ここに問題の説明" },
"requester": { "name": "John Smith", "email": "john@example.com" }
}
}

ステップ4:デプロイとテスト
http://localhost:3000/でフォームをローカルでテストし、本番サーバーにデプロイします。ホスティングには、Heroku(ヘロク)またはAWS Elastic Beanstalk(AWSエラスティックビーンストーク)の使用を検討してください。
公開する前に:
- テストCAPTCHAキーを本番キーに置き換えます
- セキュリティを強化するために、APIトークンの代わりにOAuth(オーオース)の使用を検討してください
- 認証情報を環境変数に保存します
出典:Ticketing APIを使用したカスタムチケットフォームの構築
一般的な問題のトラブルシューティング
正しい構成であっても、いくつかの問題がよく発生します。
**設定が適用されない:**最も一般的な原因は、zESettingsをウィジェットスクリプトの後に配置することです。設定オブジェクトは、Zendeskウィジェットスニペットがロードされる前に記述されている必要があります。
**部署ドロップダウンが表示されない:**これは、その部署のすべてのエージェントがオフラインの場合に発生します。少なくとも1人のエージェントがオンラインであることを確認するか、有効な部署名でdepartments.enabled JavaScript設定を使用します。
**カスタムdepartmentLabelが適用されない:**プロパティは、chatレベルではなく、prechatFormオブジェクト内にある必要があります。ネストを確認してください。
**カスタムフィールドがウィジェットに表示されない:**Regex、Date、およびMulti-selectフィールドはWeb Widget (Classic)ではサポートされていないことに注意してください。
**事前入力されたフォームがSSOで機能しない:**事前入力された値にアクセスする前に、ユーザーがログインしている必要があります。ログインする前にフォームにアクセスすると、認証後に事前入力された値が失われます。
フォームのAI代替手段を検討する時期
Zendeskフォームの構成には、管理設定の操作、JavaScriptの記述、またはカスタムアプリケーションの開発が含まれます。専任の開発リソースがないチームにとって、この複雑さはデプロイを遅らせる可能性があります。
eesel AIは、別のアプローチを提供します。静的なフォームを構成する代わりに、次のことを行うAIエージェントをデプロイします。
- **Zendeskデータから学習する:**過去のチケット、マクロ、ヘルプセンターの記事
- **会話形式でコンテキストを収集する:**厳格なフォームフィールドはなく、自然な会話のみ
- **インテリジェントにルーティングする:**会話の内容に基づいて適切な部署を決定する
- **チケットを自律的に処理する:**人間の介入なしに一般的な問題を解決する

セットアップには数時間ではなく数分かかります。Zendeskアカウントを接続し、既存の知識に基づいてトレーニングし、デプロイします。エージェントがレビューするための応答をAIが作成することから始め、自信が高まるにつれて自律的な処理にレベルアップできます。
すでにZendeskを使用しているチームの場合、eesel AIは既存のセットアップと連携します。何も置き換える必要はなく、ルーチンな会話を処理するインテリジェントなレイヤーを追加するだけです。
適切なフォームカスタマイズアプローチの選択
決定を支援するための簡単なリファレンスを次に示します。
| アプローチ | 最適 | 技術レベル | プラン要件 |
|---|---|---|---|
| 管理センター | 基本的なフィールドのカスタマイズ、複数のフォーム | なし | 機能によって異なる |
| JavaScript API | データの事前入力、部署のフィルタリング、ローカリゼーション | 低(コードのコピーアンドペースト) | 任意 |
| カスタムAPIフォーム | フォーム設計の完全な制御 | 高(開発) | 任意 |
| サードパーティツール (Formcrafts) | 高度な条件付きロジック、マルチステップフォーム | なし | 任意 + ツールコスト |
| AI代替手段 (eesel AI) | フォームの完全な排除、会話型サポート | なし | 任意 |
**結論:**ニーズを満たす最も簡単なオプションから始めてください。ほとんどのチームは、管理センターと基本的なJavaScript APIのカスタマイズを通じて目標を達成できます。ネイティブオプションでは対応できない固有の要件のために、カスタムAPI開発を予約してください。
フォームの構成に数週間を費やしても、目的の顧客体験を実現できない場合は、会話型AIアプローチがチームと顧客により適しているかどうかを検討してください。
よくある質問
この記事を共有

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.



