テクニカルサポートや技術運用(TechOps)チームでは、日々の業務においてツール間の分断という大きな課題に直面しています。顧客からの問い合わせやSLAの進捗管理はZendesk上で行われる一方、バグの追跡、コード修正、プルリクエスト(PR)、開発者同士の議論はGitHub上で進められます。この2つの環境が分離していると、サポート担当者はZendeskとGitHubの間を何度も往復し、リポジトリからIssueを手作業で検索し、スタックトレースをコピー&ペーストし、エンジニアに進捗を確認する手間が発生します。その結果、重複した不具合報告の作成や対応の遅延が生じがちです。
Dust(dust.tt)は、単なる画一的なデータ同期ツールではなく、組織全体のナレッジコンテキストを統合するAIオーケストレーションによってこの課題を解決します。ZendeskとGitHubの双方をDustに接続することで、顧客との過去の対話履歴と開発リポジトリのコードコンテキストを同時に理解するカスタムAIエージェントを構築できます。このエージェントは、新規チケットの自動トリアージ、既知の不具合との照合、社内向け調査メモの起票、さらには開発チーム向けIssueの自動作成までを一貫して支援します。
本記事では、Dustを活用してZendeskとGitHubを統合し、シームレスな内部サポートおよびトリアージ基盤を構築する手順を詳しく解説します。
全体像:Dustがサポートとエンジニアリングを繋ぐ仕組み
Dustが外部ツールと連携する仕組みを理解するには、プラットフォームが提供する3つのレイヤー(Connections、Tools、Surfaces)に分けて捉えることが重要です。
| アーキテクチャ層 | Zendesk側の機能 | GitHub側の機能 |
|---|---|---|
| Connections(データ接続層) | 解決済み・クローズ済みチケット(過去180日分が標準)およびヘルプセンター記事をセマンティック検索インデックスに取り込みます。 | リポジトリのIssue、Discussions、PRのトップレベルコメント、およびデフォルトブランチのソースコードを同期します。 |
| Tools(アクション実行層) | Get Ticket(詳細取得)、Search Tickets(構文検索)、Draft Reply(社内専用プライベートメモ作成)をエージェントに許可します。 | リポジトリの検索、新規Issueの作成、PRや議論へのコメント投稿をエージェントに許可します。 |
| Surfaces(UIとトリガー層) | Zendeskのチケット画面サイドバーにDustアプリを常駐させ、チケット作成・更新時にWebhookで自動起動します。 | Issue作成やPR更新などのイベントをトリガーとしてエージェントを自律実行します。 |
この多層設計により、Dustは単にデータを右から左へ移すのではなく、GitHubの開発状況を踏まえてZendesk上の問い合わせ内容を深く分析し、安全な形でアクションを実行します。
ステップ1:ワークスペースのデータ接続を設定する
AIエージェントが高精度なトリアージを行うには、過去のサポート知見と開発リポジトリに対する読み取り権限が必要です。
1. Zendesk接続の設定
- Dustワークスペースで、Spaces > Connections に進み、一覧から Zendesk を選択します。
- 組織のZendeskサブドメイン(
https://<subdomain>.zendesk.com)を入力します。 - Dust管理者かつZendesk管理者(SupportおよびGuideの管理者権限)のアカウントでOAuth認証を完了します。
- 接続設定の Manage 画面で同期ルールを最適化します。
- 対象チケットと保持期間:デフォルトでは過去180日以内に更新された解決済み(Solved)およびクローズ済み(Closed)チケットが同期対象となり、120日間のローリング保持が適用されます。調査中の案件も参照させたい場合は、Sync Unresolved Tickets を有効化します。
- 顧客プライバシーの保護(個人情報の非表示):Hide Customer Information をオンにすることで、チケット本文の技術情報はそのまま保持しつつ、顧客の氏名やメールアドレスなどのメタデータを同期対象から除外できます。
- タグおよびカスタムフィールドのフィルタリング:Included Tags(例:
tier-2やbug)を指定して技術チケットのみに絞り込めます。また、障害モジュールや影響度を記録しているZendeskのカスタムフィールドがある場合、その数値IDを Custom Field Tags に登録すると、Dust内でfieldName:value形式の検索ラベルとして扱われます。 - レート制限の設定:ZendeskのAPIクォータを超過しないよう、必要に応じて1秒あたりのトランザクション数(TPS)の上限を設定します。
2. GitHub接続の設定
- Dustで Spaces > Connections > GitHub を選択し、Connect をクリックします。
- GitHub組織の管理者アカウントで認証を行い、Dustにアクセスを許可する対象リポジトリ(バックエンドAPI、フロントエンド、SDKリポジトリなど)を選択します。
- 必要に応じて Code synchronization を有効にします。これをオンにすると、エージェントはIssueやPRだけでなく、デフォルトブランチのソースコード自体を読み込んで原因特定に役立てられます(コードは8時間ごとに再同期、IssueやPRはほぼリアルタイムで同期)。
- 設定を保存します。DustはIssueのタイトル、本文、タグ、作成者情報などを自動でインデックス化します。
ステップ2:ZendeskとGitHubのアクションツール(Tools)を有効化する
データ接続によって得られるのは「閲覧」の権限のみです。エージェントが能動的にチケットを検索し、社内メモを作成し、GitHubにIssueを立てるには、Tools の有効化が必要です。
- Spaces > Tools に移動し、Add Tools を選択します。
- Zendesk Tools を追加します。
Search Tickets:検索クエリ(例:status:open priority:urgent tags:bug)によるチケット検索。Get Ticket:チケットの全コメント履歴、メタデータ、SLA指標の取得。Draft Reply:エンドユーザーには見えない社内専用メモ(Private Comment)の起票。
- GitHub Tools を追加します。
- 認証方式を選択します。自動トリアージパイプラインでは、すべての操作が公式ボットの
@dust-agent名義で実行される Workspace Credentials が推奨されます(個々の操作者の権限に準拠させたい場合は Personal Credentials を選択)。
- 認証方式を選択します。自動トリアージパイプラインでは、すべての操作が公式ボットの
ステップ3:Agent Builderでトリアージエージェントを構築する
接続とツールの準備ができたら、Dustの Agent Builder でサポートトリアージ専用のエージェント(例:@tier2-triage)を構築します。
エージェント設定のポイント
- モデルの選定:コードの解析や技術ログの読解に適した高性能な推論モデル(Claude 3.5 Sonnet、GPT-4o、Gemini 1.5 Proなど)を選択します。
- ナレッジの紐付け:先ほど作成したZendesk接続(チケットとヘルプセンター)およびGitHub接続(リポジトリ情報)をKnowledgeに登録します。
- ツールの割り当て:Zendeskの
Search Tickets、Get Ticket、Draft Replyと、GitHubのIssue検索・作成ツールを有効化します。 - 指示文(プロンプト)の定義:診断手順、重複チェック、出力ルールを明確に定義します。
あなたはTier-2テクニカルサポートおよび障害トリアージを担当する副操縦士(Co-pilot)です。Zendeskの顧客チケットを分析し、GitHubリポジトリの情報と照合して、的確な技術的トリアージを提供してください。
Zendeskチケットを分析する際の運用ルール:
1. チケットに含まれるエラーログ、スタックトレース、または予期せぬ挙動を抽出し、指定のGitHubリポジトリ(デフォルト:dust-tt/app-backend)で類似のオープン・クローズ済みIssueを検索してください。
2. 過去のZendeskチケットを検索し、同一の症状が過去に発生していたか、エンジニア検証済みの回避策(Workaround)が存在するか確認してください。
3. 既存のGitHub Issueと合致した場合:
- Zendeskの「Draft Reply」ツールを使用して、社内専用メモ(Private Comment)を起票してください。
- メモには必ず以下を含めます:(a) 該当するGitHub IssueのURLと現在のステータス、(b) 根本原因の要約、(c) 顧客へ案内すべき推奨回避策または技術説明。
4. 未知の不具合であり、再現手順が明らかな場合:
- GitHubツールを使用して対象リポジトリに新規Issueを作成してください(タイトル例:[Triage] 障害の概要)。本文には対応するZendeskチケットID、発生環境、再現手順、エラーログを記載します。
- Zendeskの社内メモに、新しく作成したGitHub Issue番号とトリアージ結果を記録してください。
5. エンドユーザーに対する公開返信は絶対に直接送信しないでください。すべての出力は社内専用メモまたはDustサイドバー上の回答として作成し、人間の担当者の確認を経てから送信されるようにしてください。
ステップ4:UI連携と自動Webhookトリガーの展開
完成したエージェントは、サポート担当者が手動で呼び出す運用と、Webhookによる完全自動トリアージの2つの形態で活用できます。
運用形態A:ZendeskサイドバーでのCopilot運用
- Zendesk Marketplace から公式の Dust アプリをインストールします。
- Zendesk管理センターでDustアプリの設定を開きます。
- Dust管理者画面で発行した Workspace ID と API Key を入力します。
- Default Agent IDs に先ほど作成した
@tier2-triageのIDを指定します。これにより、サポート担当者がチケットを開いた際、右側のサイドバーに自動的にこのトリアージエージェントが表示されます。 - 担当者のZendesk登録メールアドレスがDustのアカウントと一致していることを確認します。担当者はチケットを閲覧しながら、「この決済エラーは過去のIssueで既に対処されている?」とサイドバーに尋ねるだけで、即座にGitHubの関連情報と回答案が得られます。
運用形態B:Webhookによる自動トリアージ
緊急度の高いチケットが作成された際、即座にバックグラウンドで事前トリアージを実行する手順です。
- Dustの Spaces > Triggers で Add source をクリックします。
- 提供元として Zendesk を選択し、アカウントを紐付けます。
@tier2-triageエージェントの設定画面で、Triggers > Add triggers を開き、作成したZendesk Webhookソースを選択します。- トリガー条件を設定します。
- 監視イベント:Ticket Created(チケット作成時)または Ticket Updated(更新時)。
- 実行条件:自然言語でフィルタを設定(例:
"priority is urgent or tags contain technical-escalation")。 - ペイロードの含有:Include webhook payload をオンにして、チケットの件名、本文、タグをエージェントに直接渡します。
- レート制限:予期せぬチケット急増時に備え、24時間あたりの最大実行回数を指定します。
- 設定を保存します。条件に合致するチケットが作成されると、担当者がチケットを開く前に、Dustが自動でGitHubのIssueを突き止め、Zendeskに社内診断メモを下書きします。
比較検証:DustによるAIトリアージ vs 従来の同期プラグイン
| 評価軸 | 従来の同期ツール(Git-Zen、簡易連携) | Dustによるコンテキスト連動AIトリアージ |
|---|---|---|
| 不具合の重複検知 | コミットに特定のID構文を含めるか、手動でIssue番号を入力する必要がある。 | セマンティック検索により、エラーメッセージや挙動の類似性から関連するGitHub Issueを自動検出。 |
| 根本原因の分析 | 不可。ツール間でコメント文字列を転送するだけ。 | リポジトリのソースコード、過去の解決事例、エラーログを総合して原因の仮説と回避策を提示。 |
| 返信案の作成 | 不可。サポート担当者が一から返信を作成する必要がある。 | Draft Reply を用いて、技術的に正確な社内確認用ドラフトを自動生成。 |
| プライバシー管理 | 顧客の個人情報(PII)がそのままGitHubのIssueに転送されるリスクがある。 | 接続設定で顧客情報を自動マスキングし、開発リポジトリをクリーンに保てる。 |
| 対応時間への影響 | リンク作成の手間が省ける程度で、調査時間自体は変わらない。 | 初期調査、既知の障害照合、開発へのエスカレーションにかかる時間を数時間から数分へ短縮。 |
ガバナンス・料金・ベストプラクティス
- Human-in-the-Loop(人間の介在)の徹底:自動化パイプラインでは、エージェントのアクションを必ず
Draft Reply(社内専用メモ)に制限してください。顧客への正式な案内は、必ず人間のサポート担当者が内容をレビューした上で公開送信する運用にします。 - トリガーの絞り込みによるコスト管理:すべての問い合わせに対してWebhookを実行するのではなく、特定のタグ(
bug、escalationなど)や優先度(high、urgent)でフィルタリングを行い、不要なAPI呼び出しとクレジット消費を防ぎます。 - プランとクレジットの計画的な配分:DustのBusinessプランには、Pro(年払い時 €24/席/月、月間8,000クレジット付与)と Max(年払い時 €120/席/月、月間40,000クレジット付与)が用意されています。大規模組織向けには、ワークスペース全体でのクレジットプール、SCIM対応、監査ログ、SLAが提供されるEnterpriseプランが存在します。自動Webhookトリガーの想定実行回数に応じて適切なプランを選択してください。
Zendeskのチケット受付フローとGitHubの開発知見をDust上で統合することで、サポートとエンジニアリングの間の情報断絶を解消し、迅速かつ正確な障害トリアージ体制を実現できます。