メインコンテンツにスキップ
株式会社ゼットリンカー - Next.js システム開発専門
AI開発

問い合わせ対応の一次返信をNext.js × AIで自動化する設計の考え方

Conclusion

問い合わせの一次返信はAIで下書きを生成し、人間が確認して送信する設計が現時点でもっとも堅実です。

問い合わせ対応に追われる現場向け。Next.js 16のRoute Handler + OpenAI APIで一次返信の下書きを自動生成する設計パターンと注意点を解説します。

5分で読めます
Next.jsNext.jsAI駆動開発FirebaseFirebase

毎朝メールを開くと、問い合わせフォームからの通知が10件、20件と溜まっている。内容を読み、過去の対応履歴を探し、文面を考えて返信する。この繰り返しが、気づけば午前中の大半を占めている——そんな状況に心当たりのある方は少なくないのではないかと思います。

とくに情シスや現場責任者の方にとって、問い合わせ対応は「誰かがやらなければならないが、本来やりたい業務ではない」タスクの代表格かもしれません。かといって人を増やす余裕があるわけでもなく、外注すれば自社の文脈が伝わりにくい。

私たちゼットリンカーでも、この課題に向き合うなかで「一次返信の下書きをAIに任せる」という設計を試行してきました。本記事では、Next.js 16とOpenAI APIを使った一次返信の自動化について、設計の考え方と注意点をお伝えします。

一次返信の自動化で何が変わるか?

問い合わせ対応の業務を分解すると、大きく3つのフェーズに分かれます。

  1. 受信・分類: 問い合わせ内容を読み、カテゴリや緊急度を判断する
  2. 一次返信: 受け付けた旨の連絡と、初期対応の案内を送る
  3. 本対応: 調査・回答・フォローアップを行う

このうち、もっとも定型化しやすいのが「一次返信」です。ここをAIで下書き生成できるようにすると、担当者が毎回ゼロから文面を組み立てる時間が減ります。

ただし、一次返信の自動化は「対応品質を上げる」というよりも「対応開始までの時間を縮める」施策だという点は強調しておきたいです。品質を担保するのは、あくまで最終的に確認する人間の目です。

Next.js × OpenAI API での設計パターン

全体の流れ

問い合わせ受信(Firebaseに保存)
  ↓
管理画面で一覧表示
  ↓
担当者が「下書き生成」ボタンを押す
  ↓
Route HandlerがOpenAI APIを呼び出し
  ↓
ストリーミングで下書きを返却
  ↓
担当者が確認・修正して送信

ポイントは、問い合わせが届いた瞬間に自動で返信するのではなく、担当者のアクションをトリガーにしていることです。

問い合わせ一次返信の自動化における5ステップの線形プロセス図。問い合わせ受信、担当者のボタン操作、Route HandlerによるAPI呼び出し、ストリーミング表示を経て、最後に人間が確認・修正して送信するまでの流れを示し、全自動ではなく下書き生成と人間確認の組み合わせが要点であることを表す。

Route Handlerでの実装

// app/api/draft-reply/route.ts
import { NextRequest } from "next/server";
import OpenAI from "openai";

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

export async function POST(request: NextRequest) {
  const { inquiryContent, category } = await request.json();

  const stream = await openai.chat.completions.create({
    model: "gpt-5.6-luna",
    stream: true,
    messages: [
      {
        role: "system",
        content: `あなたは企業の問い合わせ対応担当です。
丁寧だが簡潔に一次返信の下書きを作成してください。
回答の確約はせず「確認のうえ改めてご連絡します」と案内してください。
カテゴリ: ${category}`,
      },
      { role: "user", content: inquiryContent },
    ],
  });

  const encoder = new TextEncoder();
  const readable = new ReadableStream({
    async start(controller) {
      for await (const chunk of stream) {
        const text = chunk.choices[0]?.delta?.content || "";
        controller.enqueue(encoder.encode(text));
      }
      controller.close();
    },
  });

  return new Response(readable, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

モデルには、2026年7月時点のOpenAI現行世代であるGPT-5.6のうち、分類や軽量な下書き生成に向いた低コストティアの gpt-5.6-luna を指定しています(OpenAI公式発表)。一次返信の下書きが目的であれば、上位ティア(Sol / Terra)を使う必要はありません。Sol・Terra・Luna 3ティアの性能差と使い分けの考え方は、GPT-5.6のティア構成とPoC設計の解説で詳しく整理しています。

ストリーミングにする理由は、生成中の文章がリアルタイムで画面に表示されるため、担当者が「動いているのか?」と不安にならない点にあります。

「全自動」ではなく「下書き生成 + 人間の確認」が現実的

AIによる返信自動化と聞くと、「問い合わせが届いたら即座にAIが返信する」構成を想像されるかもしれません。技術的にはそれも可能ですが、私たちはあえてそうしていません。

理由はいくつかあります。

  • 誤回答のリスク: 大規模言語モデルは、もっともらしいが事実と異なる回答を生成することがあります
  • 文脈の読み違い: 「この顧客は先月も似た問い合わせをしていた」といった社内の文脈はAIには見えません
  • トーンの問題: クレーム性の高い問い合わせに対して定型的な返信を送ると逆効果になることがあります

こうした理由から、「AIが下書きを生成し、人間が確認・修正してから送信する」というワークフローが、現時点では現実的な落とし所だと考えています。この「AIは下書きまで、確定は人」という型は問い合わせ対応に限らず、見積書・請求書の作成のような金額を扱う業務にもそのまま応用できます。

導入時に気をつけること

個人情報の扱い

問い合わせには氏名、メールアドレス、電話番号が含まれます。これらをそのままOpenAI APIに送信することには慎重な判断が必要です。対策としては、送信前に個人情報をマスキングする、問い合わせの「本文」だけを送り連絡先情報は送らない、社内ポリシーとしてAPI送信範囲を明文化する、といった方法が考えられます。

コスト感覚

一次返信の下書き生成であれば、1件あたりのAPI費用は数円程度です。月に数百件の問い合わせがあっても、API費用としてはそこまで大きな額にはなりにくいと思います。

まとめ

問い合わせの一次返信は、多くの現場で「誰かが手作業で対応し続けている」タスクです。ここにAIを組み合わせることで、返信までの時間を短縮し、担当者の負担を減らすことができます。ただし、AIによる全自動返信はリスクが大きい。「下書き生成 + 人間の確認」という設計が、現時点でもっとも堅実な選択です。まずは小さく始めて、自社の問い合わせ内容に合わせてプロンプトを育てていくアプローチが現実的です。

なお、こうした問い合わせ対応の自動化を実際にシステムとして発注する際は、機能を詰め込みすぎず段階的に見積もりを組み立てることが費用対効果を高めるポイントです。適正な見積もりの立て方についてはNext.jsシステム開発の見積もりを適正化する5つの観点で詳しく解説しています。

本記事は Next.js 16.x 時点の情報です

最終更新:2026年7月15日

Share this article

要件整理から始める無料相談

1時間/準備不要/見積もりまでご案内します

無料相談を申し込む

次に読む記事

ALL ARTICLES →

プライバシーポリシー

株式会社ゼットリンカー(以下、「当社」といいます。)は、お客様の個人情報の重要性を認識し、 その保護の徹底を図るため、以下のプライバシーポリシー(以下、「本ポリシー」といいます。)を定めます。

1. 個人情報の定義

本ポリシーにおいて「個人情報」とは、生存する個人に関する情報であって、 当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの、 及び他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを指します。

2. 個人情報の収集

当社は、お客様が当社のサービスをご利用になる際、お客様の個人情報を収集することがあります。収集する個人情報は以下の通りです:

  • 氏名
  • メールアドレス
  • 電話番号
  • 会社名・組織名
  • 住所
  • その他当社が定める入力フォームにお客様が入力する情報

3. 個人情報の利用目的

当社は、お客様からご提供いただいた個人情報を、以下の目的で利用します:

  • お客様への連絡やサービスの提供
  • お客様からのお問い合わせへの対応
  • 当社サービスの改善や新サービスの開発
  • メールマガジンの配信(お客様の同意がある場合)
  • 契約や法令等に基づく権利の行使や義務の履行
  • その他、上記利用目的に付随する目的

4. 個人情報の第三者提供

当社は、以下の場合を除き、お客様の同意なく個人情報を第三者に提供することはありません:

  • 法令に基づく場合
  • 人の生命、身体または財産の保護のために必要がある場合であって、本人の同意を得ることが困難である場合
  • 公衆衛生の向上または児童の健全な育成の推進のために特に必要がある場合
  • 国の機関もしくは地方公共団体またはその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合

5. 個人情報の管理

当社は、お客様の個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス、 個人情報の紛失、破損、改ざん及び漏洩などを防止するため、 セキュリティシステムの維持・管理体制の整備等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行います。

6. 個人情報の開示・訂正・削除

お客様は、当社に対してご自身の個人情報の開示を求めることができます。 また、開示の結果、個人情報の内容が事実でないことが判明した場合には、 速やかに訂正または削除に応じます。

7. 導入事例の公開について

当社は、お客様から依頼いただいたプロジェクトを導入事例として記事にさせていただく場合があります。導入事例として公開する場合は、以下の点に配慮いたします:

  • 機密情報や個人情報は公開いたしません
  • 社名を公開する場合は、公開内容について事前にお客様に確認いただきます
  • 社名を非公開とする場合でも、お客様のご要望に応じて公開内容を確認いただくことが可能です

8. Cookie(クッキー)の使用について

当社のウェブサイトでは、お客様により良いサービスを提供するため、Cookie を使用することがあります。 Cookie により個人を識別できる情報を収集することはありません。 お客様はブラウザの設定により Cookie の受信を拒否することができます。

9. SSL(Secure Socket Layer)について

当社のウェブサイトはSSLに対応しており、ウェブブラウザとウェブサーバーとの通信を暗号化しています。 お客様が入力する個人情報は自動的に暗号化されて送受信されるため、 万が一、第三者が傍受した場合でも内容を解読することは困難です。

10. プライバシーポリシーの変更

当社は、必要に応じて、本ポリシーの内容を変更することがあります。 変更後のプライバシーポリシーについては、当社ウェブサイトに掲載したときから効力を生じるものとします。

11. お問い合わせ

本ポリシーに関するお問い合わせは、以下の窓口までお願いいたします。

株式会社ゼットリンカー

〒160-0023

東京都新宿区西新宿3丁目3番13号西新宿水間ビル2F

代表取締役: 金原隆利

お問い合わせ先: info@zetlinker.com

制定日:2024年1月1日

最終改訂日:2026/7/20

利用規約

この利用規約(以下、「本規約」といいます。)は、株式会社ゼットリンカー(以下、「当社」といいます。)が 提供するウェブサイトおよびサービス(以下、「本サービス」といいます。)の利用条件を定めるものです。 お客様は、本規約に同意した上で、本サービスをご利用ください。

第1条(適用)

1. 本規約は、お客様と当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。

2. 当社は本サービスに関し、本規約のほか、ご利用にあたってのルール等、各種の定め(以下、「個別規定」といいます。)を することがあります。これら個別規定はその名称のいかんに関わらず、本規約の一部を構成するものとします。

3. 本規約の規定と個別規定の規定が異なる場合は、個別規定において特段の定めなき限り、個別規定の規定が優先されるものとします。

第2条(定義)

本規約において使用する以下の用語は、各々以下に定める意味を有するものとします。

  • 「利用契約」とは、本規約を契約条件として当社とお客様との間で締結される、本サービスの利用契約
  • 「知的財産権」とは、著作権、特許権、実用新案権、意匠権、商標権その他の知的財産権(それらの権利を取得し、またはそれらの権利につき登録等を出願する権利を含みます。)
  • 「投稿データ」とは、お客様が本サービスを利用して投稿その他送信するコンテンツ(文章、画像、動画その他のデータを含みますがこれらに限りません。)

第3条(本サービスの提供)

1. お客様は、本規約に同意の上、当社の定める方法によって利用登録を申請し、当社がこれを承認することによって、本サービスを利用することができるようになります。

2. 当社は、お客様に以下のいずれかの事由があると判断した場合、利用登録の申請を承認しないことがあり、その理由については一切の開示義務を負わないものとします。

  • 利用登録の申請に際して虚偽の事項を届け出た場合
  • 本規約に違反したことがある者からの申請である場合
  • その他、当社が利用登録を相当でないと判断した場合

第4条(ユーザーIDおよびパスワードの管理)

1. お客様は、自己の責任において、本サービスのユーザーIDおよびパスワードを適切に管理するものとします。

2. お客様は、いかなる場合にも、ユーザーIDおよびパスワードを第三者に譲渡または貸与し、もしくは第三者と共用することはできません。

3. 当社は、ユーザーIDとパスワードの組み合わせが登録情報と一致してログインされた場合には、そのユーザーIDを登録しているお客様自身による利用とみなします。

第5条(禁止事項)

お客様は、本サービスの利用にあたり、以下の行為をしてはなりません。

  • 法令または公序良俗に違反する行為
  • 犯罪行為に関連する行為
  • 本サービスの内容等、本サービスに含まれる著作権、商標権ほか知的財産権を侵害する行為
  • 当社、ほかのお客様、またはその他第三者のサーバーまたはネットワークの機能を破壊したり、妨害したりする行為
  • 本サービスによって得られた情報を商業的に利用する行為
  • 当社のサービスの運営を妨害するおそれのある行為
  • 不正アクセスをし、またはこれを試みる行為
  • 他のお客様に関する個人情報等を収集または蓄積する行為
  • 不正な目的を持って本サービスを利用する行為
  • 本サービスの他のお客様またはその他の第三者に不利益、損害、不快感を与える行為
  • 他のお客様に成りすます行為
  • 当社が許諾しない本サービス上での宣伝、広告、勧誘、または営業行為
  • 面識のない異性との出会いを目的とした行為
  • 当社のサービスに関連して、反社会的勢力に対して直接または間接に利益を供与する行為
  • その他、当社が不適切と判断する行為

制定日:2024年1月1日

最終改訂日:2026/7/20