AI DiscordチケットBot: まず回答し、次にエスカレーション(ノーコード)

Piotr Grudzień
公開日 読了時間:約29分
ナレッジベースからDiscordの質問に回答し、その後非公開チケットスレッドを開いてサポートロールに通知するAIサポートBot

Quickchat AIは、自分のドキュメントを使ってDiscordサーバー内のサポート質問に回答し、回答できない場合にのみ非公開チケットスレッドを開きます。このガイドでは、そのBotを最初から最後まで、ノーコードで約30分で構築します。

結果は、優れた一次対応Agentのように動作します。メンバーがAPIキーのリセット方法を尋ねると、チャンネル内で実際の手順を受け取ります。メンバーがドキュメントにない内容を尋ねると、Botは推測せず、その旨を伝え、非公開スレッドを開き、メンバーをそこに追加し、1行の要約付きでサポートロールに通知し、Inboxから回答できる人間に会話を引き継ぎます。

Discord Botの役割を選ぶ

この構築は、サポート質問に回答し、ドキュメントのギャップをエスカレーションします。固定の挨拶には歓迎ガイドを、管理者コマンドにはモデレーションガイドを選んでください。

役割ガイドDiscord接続
ドキュメントから回答し、回答がない場合は非公開チケットを開くこのサポートチケットガイド自分のDiscordアプリ
メンバー参加時またはチャンネル作成時に固定の挨拶を投稿するDiscordウェルカムBotワンクリックまたは自分のDiscordアプリ
管理者が依頼したときにメンバーをタイムアウトし、ロールを管理し、slowmodeを変更するAI DiscordモデレーションBot自分のDiscordアプリ

必要なものは2つです。

サインアップから最初のサポートテストまで

  1. メールアドレスとパスワードで登録する場合は、メール内の確認リンクを開きます。セットアップでDiscordサポートAgentを説明し、Create my AI Agentをクリックし、想定する用途に応じたプラン選択を含むセットアップ手順を完了します。
  2. Knowledge Baseにドキュメントを追加します。External AppsでDiscordを開き、Use your own Discord app、Advanced setupの順に選びます。共有のワンクリックBotは質問に回答できますが、このガイドのチケットActionsは実行できません。
  3. テストサーバーでチケットチャンネルとメンション可能なサポートロールを作成します。Actions and MCPsでAdd Actionをクリックし、Discord Actionを選択して、そのサーバー、チャンネル、ロールでOpen Support Ticketをインストールします。
  4. 下記のAgent指示を適用した後、ドキュメントで回答できる質問と回答できない質問でBotを@メンションします。前者はチケットなしで回答され、後者は1つの非公開スレッドを開いてサポートロールに通知するはずです。後者の会話に追加質問を送り、重複チケットが開かないことを確認します。

Freeプランは個人の非商用利用向けです。ビジネスでBotを使う前に有料プランを選んでください。顧客を招待する前に、2経路のテストを完了してください。

以下のスクリーンショットは、Beaconという架空のプロダクト分析会社のサポートBotである、LumenというテストAgentから取得したものです。会社は例を中立に保つための架空のものですが、ここに示すすべての会話、すべてのAPI呼び出し、すべてのチケットスレッドは、実際のDiscordサーバーに対して実際の返信パイプラインを実行する実際のAgentによって生成されました。

構築するもの

まず回答するフロー: メンバーが質問し、Agentがナレッジベースを検索し、可能な場合はチャンネルで回答し、それ以外の場合は非公開スレッドを開き、メンバーを追加してサポートロールに通知します 質問ごとに1つの判断です。正常経路ではDiscordには何も書き込まれません。

3つのAI Actionsがエスカレーションを行い、Quickchat AIは1つのギャラリーカードから3つすべてをインストールします。

手順起こることDiscord呼び出し
メンバーがカバー済みの質問をするAgentがナレッジベースからチャンネルで回答しますなし
メンバーが未カバーの質問をするAgentが、その情報を持っていないことを明確に伝えますなし
… 次にチケットを開くチケットチャンネルに非公開スレッドが表示されますPOST channel threads
… 次にメンバーを追加する質問した人がスレッドに追加されますPUT thread members
… 次にチームに通知するスレッドが要約付きでサポートロールに通知しますPOST thread message
人間が引き継ぐ会話がInboxでフラグ付けされ、返信がDiscordに戻りますHuman Handoff

ナレッジベースとは何か、なぜチケット量を決めるのか

AI Agentをまだ構築したことがない場合、ここで理解すべき概念はこれです。

ナレッジベースは、Agentに読み込まれ、会話中に検索できるようインデックス化された自分のドキュメントです。Quickchat AIにヘルプドキュメントのURLを指定してページをスクレイピングさせることも、記事を手動で貼り付けることも、ファイルをアップロードすることもできます。返信時には、Agentは基盤モデルが世界について偶然覚えている内容ではなく、見つけた内容から回答します。ゼロから始める場合は、チャットボットのナレッジベースを構築する方法で、何をどの順序で書くべきかを説明しています。

ナレッジベースはヘルプドキュメント、貼り付けた記事、アップロードしたファイルを取り込み、インデックス化します。カバー済みの質問はチャンネルで回答され、未カバーの質問はチケットになります ドキュメントでカバーしているものはすべて回答されます。カバーしていないものはすべてチケットになります。

これがこの構築全体のレバーです。デフレクションはプロンプトの技巧ではなく、モデル能力でもありません。カバレッジです。Botが想定より多くエスカレーションする場合、チケットはまだ書いていないページを示しています。

例示: 薄いナレッジベースではほとんどの質問がチケットになり、記事を追加するたびに質問がチケット列から回答済み列へ移動します 実測ではなく例示です。重要なのは方向です。ここで最も効果が大きい作業はドキュメントを書くことです。

AIは本当にDiscordでサポート質問に回答できますか?

ドキュメントがカバーする質問については可能です。言い換えではなく、実際の手順で回答します。以下はテストサーバーのデフレクション例で、未編集です。

メンバーがLumenにBeacon APIキーのリセット方法を尋ね、Lumenがナレッジベースの正確な手順で回答しています ナレッジベース記事からチャンネル内で回答しました。不要だったため、チケットは作成されませんでした。

より重要なのは、回答がない場合に何が起こるかです。Botはそう伝えます。

Lumenが、ドキュメント内にSSO設定手順がなく推測しないと返信し、その後チケットを開いたと伝えています 正直な失敗です。Beaconのナレッジベースは意図的にenterprise SSOを含めていないため、これがチケットを開く経路です。

もっともらしいSSO手順を作り出すAgentは、チケットを開くAgentより悪いです。そのため、この動作は期待するだけでなく、意図的にテストする価値があります。テストで再度扱います。

Discordを接続する2つの方法と、チケットに2つ目が必要な理由

Quickchat AIには2種類のDiscord接続があり、始める前に違いを理解する必要があります。

接続ドキュメント回答とGoogle Sheets Actions非公開チケット用Discord API Actions
共有ワンクリックBot利用可能自分のDiscordアプリが必要
自分のDiscordアプリ利用可能必要なBot権限で利用可能

共有Botで動作する公開フィードバックキューについては、フィードバックとドキュメントギャップのワークフローを参照してください。以下の非公開チケットActionsには、自分のDiscord Bot認証情報が必要です。

One-clickは最短経路です。External AppsでDiscordを開き、Add to your Discord serverをクリックして承認すると、共有Quickchat AI Botが約1分でサーバーに入ります。メンバーが@メンションするか/askを使うと回答します。多くのサーバーではこれで十分です。

名前も付けられます。承認前にBot name in the new serverフィールドがあり、Agent名が事前入力されています。接続済みの各サーバーにも後で変更できるBot name in this serverボックスがあります。これはDiscordのニックネームなのでサーバーごとで、32文字までです。空にするとBot名はQuickchat AIに戻ります。共有のまま残るのはアバターと基礎となる@usernameです。1つのDiscordアプリケーションが、インストールしたすべてのサーバーに提供されるためです。

Quickchat AIのワンクリックDiscordパネル。サーバー追加ボタンの上にBot name in the new serverフィールドがあります ワンクリックは汎用的という意味ではありません。BotはAgent名をサーバーに持ち込み、後からサーバーごとに変更できます。

Advanced setupは自分のDiscordアプリケーションを登録します。DiscordのDeveloper PortalでBotを作成し、そのトークンをQuickchat AIに一度貼り付けます。約10分かかりますが、自分のアバターと@username、ダイレクトメッセージ、1サーバー内の複数Bot、そしてこのガイドに必要なもの、Discord API Actionsが得られます。

理由は癖として扱わず、明確に述べる価値があります。このガイドのチケットActionsは、送信時にQuickchat AIがリクエストへ注入する認証情報を使い、Discord APIをあなたのBotとして呼び出します。共有ワンクリックBotのトークンは共有Botに属し、あなたには属しません。そのため、あなたのActionsの送信には使えません。自分のアプリを接続せずにDiscordギャラリーを開くと、実行できないものを構築させるのではなく、その旨を表示してカードを無効化します。

Quickchat AIのExternal AppsページにDiscord統合タイルが表示されています External Appsは両方の経路の開始地点です。Advanced setupはDiscordパネル下部のコールアウト内にあります。

始める前に必要なもの

自分のDiscordアプリを接続します。 External AppsでDiscordを開き、Use your own Discord appを見つけてAdvanced setupを選びます。DiscordのDeveloper PortalでアプリケーションとBotを作成し、Message Content Intentをオンにし、Require OAuth2 Code Grantはオフのままにして、Botトークンを貼り付けます。Quickchat AIは入力中に検証します。初めての場合は、AI Discord Botを作成するガイドがポータル側を詳しく説明しています。

サポートBotに必要な権限だけを付与します。 チケットチャンネルで、View Channels、Send Messages、Read Message History、Create Private Threads、Send Messages in Threads、Manage Threadsを付与します。Kick、Ban、Timeout権限は不要で、テストサーバーでは意図的に保持していません。サポートBotにモデレーションの理由はなく、保持していない権限について考える必要もありません。

Discordで、Actionsが指す2つのものを作成します。 この作業はQuickchat AIではなくDiscordクライアントで行います。そこで行う唯一のセットアップです。

  1. チケットが開くチャンネル。 任意のテキストチャンネルでかまいません。チャンネル一覧横の+を使うか、既存のものを再利用します。テストサーバーでは#supportです。
  2. チケット作成時に通知するロール。 Server Settings、Roles、Create Roleの順に進みます。テストサーバーでは@supportです。

チケットの場所: メンバーは公開チャンネルで質問し、チケットはサポートチャンネル配下の非公開スレッドとして開かれ、メンバー、Bot、サポートロールだけが読めます 3つの場所があり、そのうち公開なのは1つだけです。

これらはどちらもStep 3で戻ってきます。チケットテンプレートをインストールすると、Quickchat AIはDiscordからサーバーをライブで読み取り、3つのドロップダウンを表示します。そのうち1つは、見つかったロールを一覧するRoleピッカーです。IDを入力するのではなく、そこでサポートロールを選びます。

Quickchat AIのインストールダイアログにあるRoleドロップダウン。サーバー内で見つかったメンション可能なロールを一覧しています Step 3のRoleピッカーです。Discordからリストを読み取るため、今作成したロールもすぐここに表示されます。

省略するとつまずく点があります。このピッカーには、Discordがmentionableと報告するロールだけが表示されます。@everyoneは除外されます。サポートロールがmentionableに設定されていない場合、ドロップダウンには何の説明もなく表示されません。このフィルタは意図的です。テンプレートの役割がそのロールに通知することだからです。ロール作成時に設定しておけば、この問題には遭遇しません。

Discordのサポートロール設定。Allow anyone to @mention this roleトグルがオンになっています Server Settings、Rolesでサポートロールを選び、Display配下でこれをオンにします。これがないとロールはピッカーに到達しません。

Botは回答するかチケットを開くかをどう判断しますか?

多くのDiscordチケットBotは何も判断しません。Ticket Tool、TicketsBotなどは、Create Ticketボタン付きの固定パネルを投稿するか、スラッシュコマンドを登録します。メンバーがクリックし、チケットが開き、チームが読みます。これは妥当で完全に予測可能な設計ですが、今週APIキーのリセット方法を尋ねた10人が10件のチケットを作ることになります。

ボタン式チケットBotはすべての質問をチケットに変えます。一方、まず回答するBotはカバー済みの質問に回答し、残りをエスカレーションします 同じ10個の質問です。違いは、チームが最終的に何を読むかです。

まず回答するBotは、判断前にドキュメントを読みます。エスカレーションする場合、1つのチケットを開くのに必要な事実は正確に4つです。

  • スレッドを開くチャンネル
  • 質問が来たサーバー
  • スレッドに追加するための質問者
  • チケット名と、問題の1行要約

重要なのは、この4つがまったく異なる3つの方法で届き、AIが書くのは最後の1つだけである点です。

3種類の値が1つのリクエストに到達します。インストール時に一度選ぶ値、各メッセージでDiscordが提供する値、Agentが書く値です Discord IDを入力することはなく、モデルがあなたのチャンネルやロールを見ることもありません。

一度だけ選ぶもの。 チケットチャンネルとサポートロールです。テンプレートのインストール時にドロップダウンから選択すると、Quickchat AIがActionに埋め込みます。モデルはそれらを見ず、変更できません。

Discordが提供するもの。 Discord統合は、転送する各メッセージについて、どのサーバーから来たか、誰が話しているかを{{metadata_discord_guild_id}}と{{metadata_discord_author_id}}としてQuickchat AIに伝えます。Botトークンも同様に、送信時に注入され、コールログでは常に伏せ字になるSystem Tokenとして届きます。これらはモデルが入力するものではなく、公開チャットやAPIメッセージから供給することもできません。

Agentが書くもの。 チケット件名と1行の問題要約です。構築全体で判断が必要なのはここだけなので、後のチューニングは短く済みます。

Step 1: Agentを作成し、ナレッジベースを与える

Agentを作成し、Knowledge Baseを開いてドキュメントを追加します。ヘルプドキュメントURLを貼り付けてQuickchat AIにスクレイピングさせるか、記事を直接書きます。ドキュメントからAIサポートAgentを作成するでは、スクレイピング経路を詳しく説明しています。

Beaconの5本の記事を一覧するQuickchat AIのKnowledge Baseページ Beaconのナレッジベース: APIキーのリセット、空のダッシュボード、トラッキングスニペットのインストール、プランと請求、データエクスポートです。

Beaconのドキュメントは、あえて1つをカバーしていません。enterprise SSO設定です。このギャップはチュートリアル上の見落としではなく、要点です。すべてのサポートナレッジベースには回答できない質問があり、このBotの価値はそこに到達したときの動作にあります。このガイド全体で、SSOがその質問です。

メンバーは、Botが見えるチャンネルで**@メンションすることで自分のBotに到達します。登録するものはありません。/ask**コマンドは共有のワンクリックQuickchat AI Botで利用できます。

Step 2: いつ回答し、いつエスカレーションするかをAgentに伝える

Agentの指示は、IdentityのAI Main Promptに入力します。自社に合わせて、これを貼り付けます。

あなたはLumenです。Beaconのサポートアシスタントです。Beaconはソフトウェアチーム向けのホスト型プロダクト分析ツールです。BeaconコミュニティDiscordで顧客からの質問に回答します。
可能な限りKnowledge Baseから回答してください。回答は短く実用的にし、2文または3文で、具体的な手順を示してください。
質問がKnowledge Baseでカバーされていない場合、推測せず、手順を作り出さないでください。その情報を持っていないことを明確に伝え、次にサポートチケットを開いてください。
1. 問題を説明する短い2語から4語のticket_subjectで、open_support_ticketを1回呼び出します。
2. 次にadd_ticket_requesterを呼び出し、顧客をスレッドに追加します。
3. 次に、顧客が尋ねた内容の1行のissue_summaryでpost_in_ticketを呼び出します。
その後、チケットが開かれ、チームが新しいスレッドでフォローアップすると顧客に伝えてください。
顧客にDiscord ID、チャンネルID、スレッドIDを尋ねてはいけません。それらはあなたのために入力されます。

Lumen AgentのAI Main Promptを表示しているQuickchat AIのIdentityページ Identity上のAI Main Promptです。これは常に利用できるフィールドであり、別のガイドライン一覧ではありません。

このブロックでは2行が重要です。「推測せず、手順を作り出さないでください」は、ナレッジギャップをもっともらしい回答ではなく正直な回答に変えます。また、3つのActionsを順番に名指しすることで、Agentが1つを選ぶのではなく、シーケンスとして呼び出します。

順序はプロンプトで説明されていますが、プロンプトだけで強制されているわけではありません。次の2つのセクションではそこを扱います。

Step 3: チケットActionsをワンクリックでインストールする

Actions & MCPsを開き、Add Actionをクリックし、Discord Actionを選びます。

HubSpotおよびGoogle Sheetsギャラリーと並んでDiscord Actionが表示されているQuickchat AIのAdd Actionメニュー Discord Actionは他のワンクリックギャラリーと並んでいます。

ギャラリーはDiscordテンプレートを役割別にグループ化して開きます。Support & Ticketsにはこのガイドで使うものがあり、Moderationにはさらに7つあります。

Support and Ticketsカテゴリと7つのモデレーションテンプレートを表示しているQuickchat AIのDiscord Actionsギャラリー 8枚のカードです。Open Support Ticketだけが入力を求めます。

Open Support Ticketを選ぶと、短い設定ステップが開きます。構築全体で唯一のフォームです。

Discordサーバー、チャンネル、ロールのドロップダウンを含むOpen Support Ticketの設定ダイアログ 3つのドロップダウンです。ダイアログは、何をインストールするかを最初に説明します。

リストはDiscordからライブ取得され、実際に動作するものに絞り込まれます。チャンネルはテキストチャンネルのみです。

Beacon Communityサーバー内のテキストチャンネルを一覧する、開かれたチャンネルドロップダウン チケットを開く親となるチャンネルを選びます。スレッドはその中に作成されます。

ロールはメンション可能なロールのみで、@everyoneは除外されます。

サーバー内のメンション可能なロールのみを一覧する、開かれたロールドロップダウン これが、まだmentionableにしていないサポートロールを隠すフィルタです。

3つを選ぶとフォームは完了です。

サーバー、チャンネル、ロールがすべて選択され、Install and enableボタンが準備できている設定ダイアログ 設定全体です。サーバー、チャンネル、ロール、そして重要な唯一のボタンです。

Install and enableをクリックします。Quickchat AIはバックエンドで3つのActionsを1トランザクションで書き込み、すでに有効な状態にします。

インストールされた3つのDiscordチケットActionsを表示しているQuickchat AIのActionsページ 3枚のカードが有効化済みで、Discordアイコン付きです。ほかに入力するものはありません。

ここで7つのモデレーションテンプレートについて知っておくべきことが2つあります。これらは設定をまったく必要としません。サーバー、メンバー、ロール、チャンネルをDiscordリクエスト自体から取得するため、カードをクリックすると即座にインストールされます。また、テンプレートを2回インストールするとエラーではなく2つ目の編集可能なコピーが作成されます。これはバリエーションを作る合理的な方法です。

そのワンクリックは実際に何を作ったのか?

入力する必要はありませんでしたが、理解しておく価値があります。後から変更したくなるものはすべてここにあります。

1つのインストールが3つのHTTP Request Actionsに展開され、それぞれに独自のメソッド、URL、パラメータ、レスポンスフィルター、メモリ保存、実行条件があります 3つの通常のHTTP Request Actionsです。特別扱いを示すものはありません。

これらはエディターにすでにある2つの機能で相互に接続されています。どちらも名前を覚えておく価値があります。

Save to memoryは、レスポンスから値を取り出し、会話上に保存します。open_support_ticketはこれを使って新しいスレッドIDを保持します。Discordはスレッドオブジェクトを返し、$.idがIDで、それがdiscord_ticket_thread_idとしてメモリに書き込まれます。2つのフォローアップActionsは、そのIDをURLで読み戻すため、事前に名前を付けたものではなく、直前に作成されたスレッドに作用します。(ドキュメントのSave to memory。)

Run only whenは、会話状態に基づいてActionをゲートし、リクエスト送信前にQuickchat AI側で確認されます。(ドキュメントのRun only when。)

Save to memoryがスレッドIDを一度書き込み、2つの実行条件がそれを読み戻すため、フォローアップはスレッドが存在する前には実行できません 3つの独立したActionsを信頼できるシーケンスに変えるゲートです。

この図は両方向から読んでください。2つの役割があります。

  • フォローアップはスレッドIDが存在することを要求するため、Agentは作成されていないスレッドについてチームに通知できません。
  • open_support_ticketはスレッドIDが存在しないことを要求するため、会話内でAgentは2つ目のチケットを開けません。会話が何を言っても同じです。これは指示ではなく保証です。メンバーがさらに10件の詳細を追加しても、チケットは1つです。チャンネル返信モードでは、チャンネル内の各やり取りが独自の会話になるため、次の本当の質問はそれ自体のチケットを開けます。

各ActionにはResponse filterもあります。これは誤読しやすい点です。レスポンスフィルターは許可リストです。Agentが見てよいパスを指定し、それ以外のレスポンスはモデルが読む前に削除されます。(ドキュメントのResponse filter。)

Discordは大きなスレッドオブジェクトを返し、レスポンスフィルターはAgentに必要な2つのフィールドだけを渡します Discordはサーバーに関する十数個のフィールドを返します。Agentに表示されるのは2つです。

シーケンスに必要なスレッドIDはQuickchat AI側でSave to memoryにより取得されるため、Agentがそれを持ち運ぶ必要はありません。サーバーに関するその他の情報がモデルに届くこともありません。許可リストをさらに絞れば、見えるものは減ります。リストにないものを見せることはありません。

人間はAIから引き継げますか?

はい。多くのチケットBotが欠いているのがこの部分です。誰も読まないチケットは、ただのスレッドです。

Human Handoffは独立した組み込みActionです。オンにして、Handoff Rulesで会話が人間に届く条件を説明します。たとえば、「顧客が人間を求めたとき、またはAgentがナレッジベースから回答できなかったとき」です。Quickchat AIは、AIが書いた要約付きで会話をInboxにフラグ付けします。そのため、担当者はスレッド全体ではなく1段落を読めば把握できます。各ハンドオフ設定には、Human Handoffチュートリアルで個別の説明があります。

Discordでメンバーが質問し、Agentがエスカレーションし、会話がInboxでフラグ付けされ、オペレーターがそこで返信し、その返信がDiscordチャンネルに戻る往復全体 オペレーターはInboxで作業します。メンバーはDiscordを離れません。

会話を自分に割り当て、Inboxのコンポーザーで返信します。その返信は、メンバーがすでに会話しているDiscordチャンネルに直接届きます。メンバーにあなたのサービスのアカウント、メールスレッド、ポータルログインは不要です。人間が会話を所有した瞬間からAIは静かになるため、自分のBotと競合することはありません。

#ask-beaconでAgentがSSO手順を持っておらずチケットを開いたと述べ、日付区切りの下にEnterpriseプランの実際の手順を含む人間の回答が届いています 同じチャンネルで、3日違いです。Agentは回答を拒否してエスカレーションしました。区切りの下のメッセージはQuickchat AI Inboxで人間が入力したものです。Discord上では投稿可能な唯一のIDがあなたのBotであるため、Bot名で届く点に注意してください。

Quickchat AI Inbox内のエスカレーションされたDiscord会話: メンバーの質問、Agentの拒否と2つのAction呼び出し、オペレーターの返信、チャンネルがDiscordであることを示す詳細ペイン あなた側から見た同じ会話です。Agentの拒否、その背後の2つのAction呼び出し、下のオペレーターの回答、そしてチャンネルがDiscordでトピックがシングルサインオンであることをすでに把握している詳細ペインです。

一方、非公開チケットスレッドは、チームが話す作業場所に残ります。メンバーが入り、サポートロールに通知されています。回答は、質問が行われた場所に戻ります。

未回答の質問から、3つのDiscord書き込み、人間がInboxから回答するまでの1件のチケットのライフサイクル 6ステップです。そのうち3つはDiscord書き込みで、3つすべては回答がなかったためにのみ発生します。

両方の経路をテストする

これに依存する前に両方の経路を実行し、正直な失敗を最も厳しくテストしてください。

カバー済みの質問。 Botが見えるチャンネルで@メンションし、ナレッジベースがカバーする内容を尋ねます。チャンネル内で実際の手順が返り、スレッドはどこにも作成されないはずです。これがチームの時間を節約するケースで、ドキュメントが良くなるとトラフィックの大半になります。

未カバーの質問。 ドキュメントがカバーしていない内容を尋ねます。Agentはその旨を伝え、エスカレーションするはずです。同じ瞬間に、チケットが表示されます。

ticket-Okta SAML SSOという名前の非公開チケットスレッドで、Lumenが顧客にメンションし、1行要約付きでサポートロールに通知しています Agentが開いたスレッドです。問題から名前を付け、メンバーを追加し、ロールに通知し、要約を自分で書きました。

そして、そのスレッドが本当に非公開であることは、メンバー一覧で分かります。

サポートチャンネル配下のチケットスレッド。メンバー一覧には顧客とLumen Botのみが表示され、PRIVATEとマークされています チケットは非公開スレッドです。サポート会話は公開で進行しません。

1つのメッセージではなく、会話全体でテストします。 重複ガードの価値は2ターン目で現れます。メンバーが詳細を追加し、素朴なBotなら2つ目のチケットを開く場面です。

実行条件がカバーしないことが1つあります。 実行条件は順序外の呼び出しを止めますが、リトライの重複排除はしません。notify Actionを手動で再実行すると、2つ目のメッセージが投稿されます。ライブチケットを触る前に知っておく価値があります。

多数の表現を一度に確認し、すべてをDiscordに入力しないで済ませるには、Testing配下のSimulationsを使います。顧客メッセージのデータセットを作成し、実際のAgentに対して実行し、採点結果を読むことができます。カバー済み質問と未カバー質問を1つのデータセットに混ぜてください。2つの経路は異なる形で失敗するためです。

Quickchat AIで完了したSimulations実行。6つのDiscordサポート質問について、AI応答、スコア、根拠が表示されています 6つの質問、4つはカバー済み、2つは未カバーで、1回の実行で採点されています。5行目と6行目は正直な失敗で、回答と同じくらい高く評価されています。

評価基準は、成績評価者がトランスクリプトだけを見られる前提で書きます。実際に見られるのはそれだけです。見えないものが2つあり、明記しないと評価を落とします。Discord側の副作用は見えないため、何も書かないと「チケットを開きました」をAgentが能力を作り上げたものと読みます。またナレッジベースも見えないため、正しく具体的な回答でも、その数値を確認できないという理由だけで捏造扱いします。どちらも評価基準に1文ずつ入れる価値があり、入れないと最良の動作が低評価になります。

Botが開くチケット数を減らすにはどうすればよいですか?

ほとんどのサーバーで必要なチューニングはこれだけで、主にプロンプトの問題ではありません。

チケット量はナレッジベースの問題です。 ドキュメントのすべてのギャップがチケットになります。Botが想定より多くエスカレーションする場合は、チケットを読んでください。それらは、ドキュメントが回答していない質問の一覧です。そのギャップを閉じると、量は直接減ります。

Insightsは次に何を文書化するかを教えます。 Quickchat AIは会話をトピック別にグループ化するため、推測ではなく、最も多い質問を確認できます。上位3つのトピックをナレッジベースで修正し、エスカレーション率が下がるかを見ます。

Insights AdvancedタブのAI-Detected Topicsチャート。pricing inquiry、API key management、data export、single sign-onとそれぞれの件数が一覧されています 誰も設定していません。Insights、Advanced、AI-Detected Topicsが会話自体から名前を付け、件数は優先順のドキュメントバックログです。

この一覧がチューニングループ全体です。PricingとAPIキーが最も多かったため、まずそれらの記事を書き、翌週のチャートで効果を確認します。上のトピックは自動検出されます。特定のプロダクト領域を意図的に追跡したい場合は、Manage Topicsで独自のトピックも定義できます。ドキュメントのAI-Detected Topics、Conversation Topics、managing topicsを参照してください。

エスカレーションが早すぎる場合は、Agentがメンバーに情報を持っていないと伝えた後にのみ発火するよう、Actionの説明を厳しくします。エスカレーションが少なすぎて推測を始める場合は、メインプロンプトの「推測せず、手順を作り出さないでください」という行を強めます。

公開サーバーで実行しても安全ですか?

公開チャンネルの誰でも話しかけられるBotは、厳しく見る必要があります。このBotを保護するのは、エディターで読める設定であり、プロンプトの文言ではありません。そのため、メッセージの表現に関係なく機能します。

各チェックが実行される場所: モデルは要求するだけで、Quickchat AIが実行条件を評価してレスポンスを切り詰め、DiscordはBot自身の権限を引き続き強制します メンバーはモデルに話しかけられます。中央の列を越えて話すことはできません。

すべてのチケットActionは、自分のサーバーからの実際のDiscordターンを要求します。 各Actionの3つの実行条件のうち2つは、メッセージが実際にDiscord統合経由で到着し、インストール時に選んだサーバーから来たことを確認します。これらの値は統合が作成するもので、メッセージが作成するものではありません。公開チャットやAPIメッセージが供給したり、古い保存値を継承したりすることはできません。Agentの公開APIをこれらのActionsに向けても拒否されます。

非公開スレッドに誰かを追加するActionには、モデルが編集できるパラメータがまったくありません。 URLの末尾には、現在のメッセージについて統合が提供したメンバーIDが入ります。Agentは別のIDを渡せないため、サーバー内の任意のメンバーを他人のチケットへ引き込むことはできません。

メンションはインストール時に固定されます。 notify Actionは、質問したメンバーと選択したロールを含む明示的なメンション一覧を送り、解析は無効化されています。Agentが問題要約に偶然書いたメンションは解決されず、@everyoneは発火しません。これは信頼するだけでなく検証する価値があり、実際に機能します。ロール通知とユーザーメンションは届き、同じメッセージ内のリテラルな@everyoneは何もしません。

スレッドは非公開で招待不可です。 type: 12かつinvitable: falseとして作成されるため、チケットに追加されたメンバーが他の人を招待することはできません。

Botはモデレーションできません。 Kick、Ban、Timeout権限を保持していません。メンバーがAgentに不適切なことをさせようとしても、最悪の結果は、通常どおり依頼して開けたはずのチケットスレッドです。

トークンは公開されません。 System Tokenとして保持され、送信時に注入され、コールが記録される場所では常に伏せ字になります。

意図的に決めるべきことが1つあります。チケットスレッドは非公開ですが、サポートロールを持つ人は誰でも読めます。サポートでは望ましい動作ですが、メンバーが機密情報を貼り付ける可能性がある場合は知っておくべきです。本当に機密性の高い内容はメールに誘導してください。

Discord AIサポートBotの費用はいくらですか?

Freeプランには、個人の非商用利用向けに月50 AIクレジットが含まれ、AI Actions、Human Handoff、ナレッジベース、Topics、Insightsも含まれます。ビジネス利用には有料プランが必要です。有料プランでは、より多くのAIクレジットも提供されます。自分で運用する場合と比較しているなら、無料のAI Discord Botが、必要な時間を含めてセルフホスト経路を率直に比較しています。

両方の経路が通ったら、Agentを公開します。

  1. メンバーにBotを案内します。 チャンネルトピックで@メンションできることを伝えます。誰も知らないBotは何もデフレクトしません。
  2. 初日を監視します。 すべてのActionには正確なリクエストとレスポンスのコールログがあり、Inboxにはすべての会話が入ります。そのため、何に回答し、何をエスカレーションしたかを確認できます。
  3. 最初のチケットをドキュメントバックログとして読みます。 それらは、ドキュメントがまだ回答していない質問です。

同じAgentは他の場所でも動作します。 ナレッジベース、プロンプト、Human HandoffはDiscordではなくAgentに属します。そのため、同じサポートBotはWebサイトウィジェット、Slack、WhatsApp、メールで回答し、すべての会話が同じInboxに届きます。この構築でDiscord固有なのは3つのチケットActionsだけです。チームがDiscordではなくSlackで作業している場合は、Discordロールに通知する代わりにそこへハンドオフ通知を送信してください。

Discord AI Agentには他に何ができますか?

同じギャラリーにはModerationカテゴリがあります。timeout、kick、ban、unban、assign role、slowmode、announcementsです。これらはすべてauthor_is_admin is true実行条件付きでインストールされるため、サーバー管理者だけがトリガーできます。そのフラグは会話ではなくDiscordから来ます。これは別のリスク特性を持つ別のBotであり、専用のガイドがあります。AI DiscordモデレーションBotを構築するです。

その他のDiscordエンドポイントも同じ手順です。Authorization: Bot {{discord_bot_token}}ヘッダー、1つか2つのパラメータ、Agentがいつ発火させるかを決める平易な説明を持つHTTP Request Actionです。アクションを実行するAI Agentを構築するはこの考え方の初心者向け版で、AI Agentを任意のAPIに接続するは一般的なケースを扱います。

すべてのDiscord BotがサポートBotというわけでもありません。同じAgentはキャラクターとしても動作できます。Discord AIロールプレイBotはチケットではなくペルソナのために同じナレッジベースとメモリを使い、完全なキャラクター構築では、ペルソナプロンプト、カノン、キャラクターを保つ設定を説明しています。

付録: 正確なリクエスト

これらを入力することはありませんが、一度読む価値があります。他のプラットフォームに対して手作業で構築する場合に作るものでもあります。{{...}}値は送信時にQuickchat AIが入力します。

1. 非公開スレッドを開く

POST https://discord.com/api/v10/channels/YOUR_TICKET_CHANNEL_ID/threads
Authorization: Bot {{discord_bot_token}}
Content-Type: application/json

{ "name": "ticket-{{ticket_subject}}", "type": 12, "auto_archive_duration": 1440, "invitable": false }

type: 12がスレッドを非公開にします。auto_archive_durationは分単位なので、1440は静かなチケットを1日後にアーカイブします。Save to memoryは$.idをdiscord_ticket_thread_idとして取得します。

2. 質問したメンバーを追加する

PUT https://discord.com/api/v10/channels/{{metadata_discord_ticket_thread_id}}/thread-members/{{metadata_discord_author_id}}
Authorization: Bot {{discord_bot_token}}

本文もパラメータもありません。両方のIDはメモリと統合から来ます。

3. サポートチームに通知する

POST https://discord.com/api/v10/channels/{{metadata_discord_ticket_thread_id}}/messages
Authorization: Bot {{discord_bot_token}}
Content-Type: application/json

{
  "content": "<@{{metadata_discord_author_id}}> your ticket is open. <@&YOUR_SUPPORT_ROLE_ID> new ticket: {{issue_summary}}",
  "allowed_mentions": { "parse": [], "users": ["{{metadata_discord_author_id}}"], "roles": ["YOUR_SUPPORT_ROLE_ID"] }
}

自分で構築する場合、2つの細部が実際のデバッグ時間を消費します。認証スキームは**BearerではなくBotです。Discordを手作業で呼び出すときの最も一般的な間違いです。またallowed_mentionsでは、明示的なusersおよびrolesリストと並べた空の**parseが必要です。これにより@everyoneをブロックしながら、意図した2つのメンションを通せます。同じ型の明示リストの横に空でないparseを置くと、400 MESSAGE_ALLOWED_MENTIONS_PARSE_EXCLUSIVEで即座に拒否されます。

関連ガイド

よくある質問

DiscordでチケットBotを設定するにはどうすればよいですか?

External Appsで自分のDiscordアプリを接続し、Agentにナレッジベースを与えます。次にActions and MCPsを開き、Add Actionをクリックし、Discord Actionを選択してOpen Support Ticketを選びます。ドロップダウンからサーバー、チケットチャンネル、サポートロールを選択し、Install and enableをクリックします。ホストするものはなく、Discord側で設定することも、チャンネルとロールの作成以外にはありません。

DiscordチケットBotを作るにはどうすればよいですか?

Quickchat AI Agentを作成し、自分のDiscordアプリを接続します。次にActions and MCPsを開き、Add Actionをクリックし、Discord Actionを選択してOpen Support Ticketを選びます。ドロップダウンからサーバー、チケットチャンネル、サポートロールを選択し、Install and enableをクリックすると、Quickchat AIが3つの完全なAI Actionsを書き込みます。最初にAgentにナレッジベースを与えてください。開かれるチケット数はそれで決まります。

AIはDiscordでサポート質問に回答できますか?

はい。Agentはナレッジベースを検索し、回答が見つかるとチャンネルで回答します。デフレクションはカバレッジを追跡します。ドキュメントでカバーされる質問は回答され、カバーされない質問はチケットになります。この関係は、このBotを運用するうえで最も重要です。

このDiscordチケットBotを構築するのにコードは必要ですか?

いいえ。Discordギャラリーからテンプレートを選び、ドロップダウンからサーバー、チャンネル、ロールを選ぶと、Quickchat AIがバックエンドでメソッド、URL、ヘッダー、本文、パラメータ、レスポンス設定、実行条件を書き込みます。Discord IDを入力することも、JSONを編集することもありません。

テンプレートはいくつのActionsをインストールしますか?

3つです。1つはチケットチャンネルに非公開スレッドを開いてそのIDをメモリに保存し、1つは質問したメンバーを追加し、1つはサポートロールにメンションする要約を投稿します。これらは有効化済みで、相互に接続された状態で作成されます。

Botはいつチケットを開くかをどのように判断しますか?

2つの要素で決まります。Actionの説明は、回答がナレッジベースにない場合にのみ呼び出すようAgentに伝えます。実行条件はシーケンスを決定的にします。スレッドを開く前にはスレッドがまだ存在してはならず、フォローアップを実行する前にはスレッドが存在している必要があります。

Botは重複チケットを開くことがありますか?

同じ会話内ではありません。Open Support Ticketには、チケットスレッドIDがまだメモリにないことを要求する実行条件があります。そのため、1つのチケットが存在すると、その会話ではプロンプトの内容にかかわらず、Agentは2つ目を開けません。

人間が会話を引き継げますか?

はい。Human Handoffは、AIが書いた要約付きで会話をQuickchat AI Inboxにフラグ付けします。自分に割り当て、Inboxで返信を入力すると、その返信はメンバーがすでにいる同じDiscordチャンネルに届きます。メンバーはDiscordを離れる必要も、あなたのサービスのアカウントを作る必要もありません。

チケットBotに自分のDiscordアプリが必要なのはなぜですか?

チケットActionsはあなたのBotとしてDiscord APIを呼び出すため、Botのトークンが必要です。共有のワンクリックQuickchat AI Botは質問に回答し、Google Sheets Actionsを使用できます。そのDiscordトークンは、あなたの非公開チケットActionsには使用できません。External AppsでDiscordを開き、Advanced setupを選択します。所要時間は約10分です。

BotにはどのDiscord権限が必要ですか?

チケットチャンネルで、View Channels、Send Messages、Read Message History、Create Private Threads、Send Messages in Threads、Manage Threadsが必要です。サポートBotにKick、Ban、Timeout権限は不要です。保持していない権限について考える必要はありません。

サポートロールがドロップダウンに表示されないのはなぜですか?

ロールピッカーには、Discordがmentionableと報告するロールだけが表示され、@everyoneは除外されます。サポートロールがServer Settings、Rolesでmentionableに設定されていない場合、テンプレートがそのロールに通知できないため表示されません。

DiscordチケットBotを公開サーバーで実行しても安全ですか?

制御はプロンプトの文言ではなく設定によるものなので、メッセージの表現に関係なく機能します。すべてのチケットActionは、そのターンが実際にDiscordから、かつ選択したサーバーから来たことを要求します。非公開スレッドに誰かを追加するActionにはモデルが編集できるパラメータがありません。メンションは質問したメンバーと選択したロールに固定され、スレッドは非公開で招待不可です。実行条件は、リクエストがQuickchat AIを出る前に確認されます。

Discord AIサポートBotの費用はいくらですか?

Freeプランには、個人の非商用利用向けに月50 AIクレジットが含まれます。AI Actions、Human Handoff、ナレッジベース、Topics、Insightsが含まれます。ビジネス利用には有料プランが必要です。有料プランでは、より多くのAIクレジットも提供されます。

これはTicket ToolやTicketsBotと何が違いますか?

それらはルールベースです。メンバーが固定パネル上のCreate Ticketボタンをクリックすると、ドキュメントですでに回答できる質問でも毎回チケットが開きます。こちらは先に回答し、本当に解決できないものだけをエスカレーションするため、チームが読むのは実際に人間を必要とする質問です。

ChatGPT、Claude、GeminiでDiscordチケットBotを実行できますか?

はい、Quickchat AI経由で実行できます。Agentは最新モデル上で動作し、これらのAI ActionsでDiscord APIを呼び出します。そのため、ナレッジベースから回答し、実際の非公開スレッドを開けます。どのActionsを存在させ、Botに何を許可するかはあなたが決めます。

同じAgentをDiscord以外のチャンネルで使えますか?

はい。ナレッジベース、プロンプト、Human HandoffはDiscordではなくAgentに属します。そのため、同じサポートBotがWebサイトウィジェット、Slack、WhatsApp、メールで回答できます。この構築でDiscord固有なのは3つのチケットActionsだけです。

メンバーはどのようにBotとの会話を開始しますか?

このガイドのチケットBotは自分のDiscordアプリを使うため、メンバーはBotが見えるチャンネルで@メンションして開始します。Agentは同じチャンネルで返信し、回答できない場合にのみチケットスレッドを開きます。/askコマンドは共有のワンクリックQuickchat AI Botに属します。

Botが開くチケット数を減らすにはどうすればよいですか?

まずナレッジベースのカバレッジを改善してください。すべてのギャップがチケットになるためです。最初のチケットをドキュメントのバックログとして読み、Insightsで最も多く出ているトピックを確認して、次に何を書くべきかを判断します。その後でActionの説明を厳しくします。

ギャラリーがインストールしたActionsを編集できますか?

すべてのフィールドを編集できます。これらは通常のHTTP Request Actionsで、特別扱いを示すものはありません。ロックもバッジも別のポリシーレイヤーもありません。URL、本文、説明、実行条件を変更するか、2つ目のコピーをインストールしてそちらを編集できます。

ヘルプデスクなしでDiscordチケットシステムを運用できますか?

はい。チケットは非公開Discordスレッドで、キューはQuickchat AI Inboxです。そのため、Zendesk、Intercom、Jiraは関与せず、移行するものもありません。すでにヘルプデスクを運用している場合は維持できます。同じAgentが別のAI Actionでそこにもチケットを作成でき、HubSpotギャラリーはまさにそれを行います。

Botはヘルプセンターのコンテンツから回答できますか?

それを前提に作られています。ヘルプセンターURLを貼り付けると、Quickchat AIがページをスクレイピングしてナレッジベースに取り込みます。ファイルをアップロードしたり、記事を直接貼り付けたりすることもできます。Agentはすべての質問でそれらの記事を検索し、回答が見つかるとチャンネルで回答します。そのため、既存ドキュメントを書き直さずにBotになります。ドキュメントからAIサポートAgentを作成するでは、その半分を単独で説明しています。

チケットチャンネルが開いたときにBotがメンバーに挨拶できますか?

はい、別機能で可能です。Ticket ToolのようなチケットBotがチャンネルを作成し、Quickchat AIのNew channel automated messageが数秒後に固定の挨拶を投稿します。そのため、メンバーはすぐに話しかける対象があると分かります。モデルを呼び出さないためクレジットは消費しません。メンバー、スレッド、チケットチャンネルに挨拶するで設定方法を説明しています。

チケットデフレクションをどう測定しますか?

デフレクションはチケットなしで回答された質問の割合です。この構築では、チケットスレッドがない会話を全会話で割ったものです。すべてのActionにはコールログがあるため、open_support_ticketの呼び出しを数えるとエスカレーションされた半分を直接把握できます。Insightsは残りをトピック別にグループ化します。1つの数値ではなくトピックごとに追跡してください。あるトピックで率が下がっている場合、それは解消できるドキュメントギャップです。チャットボット分析では、より広い指標セットを扱っています。

まとめ

ナレッジベースとワンクリックにより、Quickchat AI AgentはDiscordサーバー向けの一次サポートBotになります。ドキュメントがカバーする質問に回答し、カバーしない場合はそれを認め、残りについて非公開チケットスレッドを開き、メンバーを追加し、自分で書いた要約付きでサポートロールに通知し、メンバーがDiscordを離れることなくInboxから回答する人間に会話を引き継ぎます。ギャラリーが3つのActionsを書き、ドロップダウンによりDiscord IDを入力する必要がなく、実行条件により会話が予定どおり進まなくてもシーケンスが維持されます。残るのは、あなたにしかできない作業です。回答に使う価値のあるナレッジベースを作ることです。