説明資料 — 社内運用担当者 / 外部パートナー向け

問い合わせに「15分で返す」を、人を増やさずに成立させる

Webからの問い合わせは、返信が早いほど商談化率が上がります。一方で、機械が勝手に見積や納期を答えてしまうのは論外です。 そこでこの仕組みは 初回のご挨拶は全自動、内容のある2通目は人が承認してから送る というハイブリッド方式を採りました。 さらに、すでに動いている見積アプリ・請求システムとつなぎ、問い合わせから受注までを一本の線にします。

全10画面のうち、実装済み は現在動いているもの、実装予定 はこれから作る完成イメージです。各章の見出しに表示しています。

対象フォーム 3 初回送信 15分後 2通目SLA 営業時間内2時間 初回30分以内送信率 100% が目標 画面 10 連携先 2 システム
01 — Why

なぜこの仕組みが要るのか

問い合わせ対応で起きていた3つのことを、そのまま設計要件にしています。

課題 1

返信までの時間がばらつく

担当者が外出・打合せ中だと、数時間〜翌日になることがある。最初の1通が遅れるほど、他社に流れる。

課題 2

問い合わせが3つの入口に散る

防災無料相談・見積依頼・お問い合わせの3フォーム。通知メールが受信箱に紛れ、拾い漏れが起きうる。

課題 3

全自動にはできない

金額・納期・在庫は、条件を確認しないと答えられない。誤った自動回答は、遅い返信より損害が大きい。

結論:初回=自動、2通目=人の承認

初回メッセージは「受け付けました/担当がご連絡します」までの定型。判断が要る内容は、担当者が画面で下書きを直してから送る。速さと正確さを両立させる分担です。

02 — Architecture

全体の流れ

お客様から見ると「送信 → すぐ返事 → その日のうちに中身のある返事」の2通だけ。裏側では次の3ステップが動いています。

STEP 1 — 受け取って台帳に載せる(全自動) STEP 2 — 初回メッセージを返す(全自動) STEP 3 — 2通目を送る(人が承認) お客様 自社サイト 3つのフォーム 通知メール form-notify@example.co.jp Gmail フィルタ sales1@ 受信箱でラベル付け GAS ①(sales1@) 定期トリガーで読み取り ■項目名 の次行から値を抽出 スプレッドシート リード台帳・送信ログ・KPI 送信 到着 抽出 登録 初回メッセージを自動送信 営業時間内(平日9–18時)… 15分後 時間外・土日祝 … 翌営業日 8:30 送信予定時刻を計算 初回メッセージ(人の手は入らない) ダッシュボード Next.js / Vercel Googleログイン(@example.co.jp) 担当者が確認 下書きを編集して承認 送信 GAS sales1@ / sales2@ を都度選択 選ばなかった方を自動CC リード・KPIを表示 2通目(承認後に送信)
緑の経路は人の操作なしで流れる部分、オレンジの経路は担当者の承認を必ず通る部分。2通目は承認ボタンを押さない限り、1通も外に出ません。
GAS ①(sales1@example.co.jp)

受信・抽出・初回送信

main(受信と送信)/dailyKpi(日次のKPI集計)/healthCheck(死活監視)の3つのトリガーで常時稼働します。

GAS ②(sales2@example.co.jp)

送信専用

差出人を sales2@ にしたいときだけ呼ばれます。アカウントをまたいで送るために、送信機能だけを分けています。

スプレッドシート

台帳とダッシュボードの土台

リード・送信ログ・KPI・設定・テンプレートを保持。CSV/Excel でそのまま書き出せます。

03 — Timing

いつ送るのか

「早ければ早いほどよい」ではなく、深夜に自動返信が届いて不審に思われないよう、営業時間を軸に決めています。

ケース A — 平日 14:30 に問い合わせ(営業時間内) 営業時間(平日 9:00–18:00) 14:30 問い合わせ着信 14:45 初回メッセージ(自動) 16:45 まで 2通目(承認して送信) +15分 SLA 2時間以内 ケース B — 金曜 20:00 に問い合わせ(時間外) 営業時間外(金曜夜〜月曜の始業前) 月曜 9:00–18:00 金 20:00 問い合わせ着信 月 8:30 初回メッセージ(自動) 月 11:00 まで 2通目(営業時間で換算) 土日は送らない SLA 2時間(月 9:00 から起算)
時刻は説明用の例。SLAは実時間ではなく営業時間で数えるため、夜間や休日は残り時間が減りません。
項目ルール備考
営業時間平日 9:00–18:00土日祝は休み
初回メッセージ(営業時間内)着信から15分後全自動。担当者の操作は不要
初回メッセージ(時間外)翌営業日 8:30始業前に届き、出社時には対応済み
2通目のSLA営業時間内 2時間以内文面では「本日中に」と緩めに表現
KPI初回30分以内 100%あわせて2通目のSLA達成率を計測
04 — Screen map

画面マップ

ツールは10画面で構成します。青字の「実装済み」は現在動いているもの、「実装予定」はこの資料で完成イメージとしてお見せするものです。以降の章で1画面ずつ実際の画面を掲載します。

区分画面目的状態
対応ダッシュボード今日の件数と、約束(SLA)を守れているかを確認する実装済み
対応承認キュー2通目の承認待ちを、SLA残り時間の短い順に片づける実装予定
対応リード一覧届いた問い合わせと、初回・2通目の送信状態を一覧する実装済み
対応商談パイプライン問い合わせから受注までを段階別に見て、止まっている案件を拾う実装予定
連携見積・請求見積アプリで見積を作り、受注したら請求システムへ引き継ぐ実装予定
連携顧客カルテ1社ぶんのやり取り・見積・請求を1画面にまとめる実装予定
記録送信ログいつ・誰が・どの文面で送ったかを追跡する実装予定
記録KPI・稼働モニタKPIの推移と、自動処理が止まっていないかを見る実装予定
管理テンプレートフォーム別の文面を画面で編集し、禁止項目を検査する実装予定
管理設定営業時間・送信タイミング・テストモードを変える実装済み

なぜ画面を分けるのか

ダッシュボードは「見る」、承認キューは「片づける」、パイプラインは「止まっている案件を拾う」。目的が違うものを1画面に混ぜると、毎朝どこを見ればいいか分からなくなります。担当者が朝いちばんに開くのは承認キュー1枚、というのが設計の狙いです。

05 — Screen

画面① ダッシュボード

実装済み

担当者が朝いちばんに開く画面。「今日どれだけ来て、約束を守れているか」だけが見えれば十分、という方針で作っています。

https://inside-sales.example.com/dashboard
ダッシュボード
テストモード ON1 2026-08-28 09:12 更新
本日の新規リード4前日 3 / 今週 17
初回30分以内 送信率2100%直近30日 / 目標 100%
2通目 SLA達成率92%直近30日 / 未達 2件
未対応(要承認)32最も古い経過 41分
フォーム別の内訳(今週)
防災無料相談 8
見積依頼 6
お問い合わせ 3
日次の受信件数(過去14日)CSV / Excel 出力
08-1508-28
稼働状況4正常
main トリガー:09:10 実行 dailyKpi:08:00 実行 healthCheck:09:00 正常 送信失敗:0件
  1. 1テストモード ON:この表示が出ている間、メールは実際のお客様には届きません。本番切替は、この表示を消す設定変更ひとつだけです。
  2. 2初回30分以内 送信率:この仕組みの一番の約束。100%を維持できているかを毎日ここで確認します。
  3. 3未対応(要承認):担当者が今すぐ手を動かすべき件数。ここが0なら、その日の宿題は終わりです。
  4. 4稼働状況:3つのトリガーが動いた時刻を表示。止まっていれば healthCheck が気づいて通知します。
06 — Screen

画面② 承認キュー

実装予定

リード一覧とは別に、「2通目の承認待ちだけ」をSLA残り時間の短い順に並べた作業用の画面です。担当者が実務でいちばん長く開くのはこの画面になります。

https://inside-sales.example.com/queue
承認キュー
テストモード ON SLA残り時間順自分の担当のみ
2通目の承認待ち13 件
残り 18分
◯◯建設 株式会社 山田 様
見積依頼 初回 09:19
残り 1時間19分
(会社名なし) 佐藤 様
防災無料相談 初回 08:56
残り 1時間52分
株式会社△△商事 鈴木 様
お問い合わせ 初回 09:04
本日の完了25 件 / SLA達成 5
承認待ちが 0 件になると、この画面には「本日の宿題は終わりです」とだけ表示されます。
  1. 1SLA残り時間順に自動で並ぶ:残り30分を切ると時間表示とバーがオレンジに変わります。上から順に片づければ、SLA未達は起きません。
  2. 2本日の完了:処理した件数と、そのうちSLAを守れた件数。ここが揃うことが1日の目標になります。
07 — Screen

画面③ リード一覧

実装済み

届いた問い合わせの一覧。初回が送られたか、2通目がまだかが、行を見るだけで分かるようにしています。

https://inside-sales.example.com/leads
リード一覧
テストモード ON CSVExcel
直近の問い合わせ全 17 件
受信フォーム会社名お名前初回12通目2操作3
08-28 09:04見積依頼◯◯建設 株式会社山田 様 09:19 予約要承認
08-28 08:41防災無料相談(未入力)佐藤 様 08:56 送信済要承認
08-27 16:12お問い合わせ株式会社△△商事鈴木 様 16:27 送信済17:35 送信済
08-26 21:30見積依頼□□工業 株式会社高橋 様 08-27 08:30 送信済10:02 送信済
会社名が未入力の問い合わせも取りこぼさずに登録されます4
  1. 1初回の状態:「09:19 予約」は、まだ送っていないが送信時刻が確定している状態。時間外に届いた分は翌営業日8:30で予約されます。
  2. 22通目の状態要承認が付いている行が、担当者の出番です。
  3. 3下書き確認ボタン:ここを押すと編集画面が開きます。改修予定 現状は表の右端にあり横スクロールしないと見えないため、行のクリックでも開けるようにします。
  4. 4会社名が空欄でも登録:通知メールの項目抽出は「■項目名の次の行に値が入る」形式に合わせてあり、未入力欄があっても行がずれません。
08 — Screen

画面④ 下書き確認・送信

実装済み

この仕組みで唯一、人が必ず通る画面です。文面はすべて自由に書き換えられます。

https://inside-sales.example.com/leads/1042/draft
2通目の下書き
テストモード ON
  1. 1送信元を都度選択:sales1@ と sales2@ のどちらから出すかを、案件ごとに選びます。sales2@ を選んだときは、sales2@ 側に置いた送信専用GASが実行されます。
  2. 2もう一方を自動CC:選ばなかったアドレスが必ずCCに入るので、2人のどちらが見ても経緯が追えます。
  3. 3本文は全文編集可:テンプレートはあくまで下敷き。書き換えても、送信ログには実際に送った文面が残ります。
  4. 4送信前チェック:禁止項目(第17章)に触れる表現が残っていないかを確認したうえで送信します。二重送信も同時にブロックされます。
09 — Screen

画面⑤ 商談パイプライン

実装予定

問い合わせが「返信して終わり」にならないよう、受注までの段階を1画面で見えるようにします。止まっている案件を拾うための画面です。

https://inside-sales.example.com/pipeline
商談パイプライン
テストモード ON 今月 見込 ¥4,820,000
新規2
◯◯建設 株式会社見積依頼
0日
(会社名なし)防災無料相談
0日
初回送信済3
株式会社△△商事お問い合わせ
1日
□□工業 株式会社見積依頼
2日
◇◇物流 株式会社見積依頼
3日
ヒアリング中2
株式会社▲▲ホテル拠点数 12
6日
××市役所BCP相談
9日
見積提出2
△△製作所Q-2026-0142
¥1,284,000
4日
株式会社◎◎商会Q-2026-0139
¥786,000
11日
受注1
○○リース 株式会社Q-2026-0131
¥2,750,000
請求へ
ステータスの動かし方1自動 / 手動
「新規」「初回送信済」までは自動。「ヒアリング中」以降は担当者がカードを動かします。見積を作成すると「見積提出」へ自動で移り、見積番号と金額がカードに載ります。
  1. 1前半は自動、後半は手動:初回送信までは仕組みが動かし、そこから先は担当者がカードを移動。見積を作ると「見積提出」へ自動で移り、金額が載ります。
10 — Integration

画面⑥ 見積・請求ツール連携

実装予定

すでに動いている見積アプリ請求システムに、このツールをつなぎます。問い合わせ→見積→請求を、担当者が入力し直さずに一本の線にするのが狙いです。

https://inside-sales.example.com/leads/1042/quote
◯◯建設 株式会社 / 見積・請求
テストモード ON
見積アプリ1連携済み
請求システム2受注後に有効
連携の仕組み3共有シークレット Bearer
POST /api/quote/draft → 会社名・担当者・要望を渡して見積を下書き作成
GET  /api/quote/{no} → 見積番号・金額・PDFのURL・状態を取得
POST /api/invoice/from-quote → 受注時に請求システムへ引き継ぎ
  1. 1見積を作る:会社名・ご担当者・要望(拠点数や想定人数)を見積アプリへ渡し、下書きの見積を作成。既存の商品マスタはそのまま使えます。
  2. 2受注したら請求へ:見積番号・金額・宛先を請求システムへ引き継ぎます。請求書を一から作り直す必要がありません。
  3. 3つなぎ方は既存と同じ:3システムとも共有シークレットのBearerトークン方式で、認証の作り方を増やしません。
3つのツールをまたいで、同じ会社の情報を持ち回る インサイドセールス リード・やり取りの記録 Next.js / Vercel 見積アプリ 商品マスタ 見積PDF・発注書 請求システム 請求書の発行・入金管理 お客様 見積書・請求書 会社・要望 番号・金額 受注 請求書 見積PDFを添付した2通目メール(承認して送信)
会社名や担当者名を3回入力し直す作業がなくなり、「どこまで進んだ案件か」が1か所で分かるようになります。
連携 1

見積の下書きを自動で作る

見積依頼フォームの内容(拠点数・想定人数・希望時期)を見積アプリへ渡し、宛先と要望が入った状態から始められます。

連携 2

見積PDFを2通目に添付

見積が確定すると、承認キューに「見積書を添付した2通目」の下書きが並びます。送信は従来どおり人の承認後です。

連携 3

受注→請求を引き継ぐ

受注に動かすと、見積番号・金額・宛先が請求システムへ渡ります。請求書の作り直しと転記ミスがなくなります。

11 — Screen

画面⑦ 顧客カルテ

実装予定

1社ぶんの情報を1画面に集約します。担当が変わっても、この画面を見ればこれまでの経緯が分かる状態を目指します。

https://inside-sales.example.com/accounts/312
◯◯建設 株式会社
見積依頼商談中 初回接触 2026-08-28
やり取りの履歴1
08-28 09:04問い合わせ着信見積依頼フォーム(拠点12・想定300名)
08-28 09:19初回メッセージ 自動送信sales1@ / CC sales2@
08-28 09:582通目 承認して送信佐々木が編集(拠点数と納入時期を確認)
08-28 14:20見積作成Q-2026-0142 / ¥1,284,000
受注 → 請求
基本情報2
ご担当山田 様(総務部)
拠点数12 拠点 / 想定 300 名
流入元見積依頼フォーム
担当者佐々木(sales1@)
追客リマインド33営業日
返信がないまま3営業日が過ぎると、フォロー文面の下書きが承認キューに自動で並びます(送信は承認後)。
  1. 1やり取りの履歴:問い合わせ・自動送信・承認送信・見積・請求を1本の時系列に並べます。オレンジは人が関与した出来事です。
  2. 2基本情報:フォームで受け取った項目をそのまま保持。次回の問い合わせ時は同じ会社に自動で紐づきます。
  3. 3追客リマインド:返信がないまま3営業日が過ぎた案件を検知し、フォロー文面の下書きを自動で用意します(送信は承認後)。
12 — Screen

画面⑧ 送信ログ

実装予定

「いつ・誰が・どの文面で送ったか」を後から追える記録です。社内の確認にも、外部への説明にも使えます。

https://inside-sales.example.com/logs
送信ログ
すべて初回2通目失敗のみ
送信履歴1直近30日 失敗 0 件
送信日時種別宛先送信元結果文面
08-28 09:582通目yamada@example.co.jpsales1@成功
08-28 09:19初回yamada@example.co.jpsales1@成功
08-28 08:56初回sato@example.jpsales1@成功
08-27 17:352通目suzuki@example.co.jpsales2@成功
保存されるのはテンプレートではなく、実際に送った文面です2
  1. 1結果まで記録:送信の成否を残し、失敗があれば絞り込めます。二重送信・送信不整合の検知もこの記録が土台です。
  2. 2実際に送った文面を保存:担当者が書き換えた内容がそのまま残るため、「テンプレートではこうだった」という食い違いが起きません。
13 — Screen

画面⑨ テンプレート管理

実装予定

文面をスプレッドシートではなく画面で編集できるようにします。禁止項目の検査も、保存の前にここで通します。

https://inside-sales.example.com/templates
テンプレート管理
テストモード ON
初回メッセージ1
防災無料相談
見積依頼
お問い合わせ
2通目
見積依頼
お問い合わせ
追客
3営業日フォロー
初回メッセージ / 見積依頼 最終更新 08-26 佐々木
【備館】お見積りのご依頼を承りました
{{会社名}} {{お名前}} 様 お問い合わせいただき、ありがとうございます。 内容を確認のうえ、本日中に担当より詳細をご案内いたします。
差し込みタグ2
{{会社名}}{{お名前}}{{フォーム名}}{{受信日時}}{{担当者名}}
禁止項目チェック3
✓ 見積金額 / 納期の確約 / 在庫 … 記載なし
✓ 大口割引 / 施工可否 / ISO … 記載なし
  1. 1フォーム別・段階別に持つ:初回・2通目・追客を、3つのフォームごとに用意します。
  2. 2差し込みタグ:会社名やお名前は{{ }}で差し込み。会社名が空欄のときは自動で行ごと省く扱いにします。
  3. 3禁止項目チェック:保存時に6項目の表現を検査し、引っかかると保存できません。人が書き換えた文面も送信前に同じ検査を通ります。
14 — Screen

画面⑩ KPI・稼働モニタ

実装予定

経営報告に使える数字と、仕組みが止まっていないかの確認を1画面にまとめます。ダッシュボードが「今日」なら、こちらは「今月」です。

https://inside-sales.example.com/kpi
KPI・稼働モニタ
週次月次CSV / Excel 出力
初回30分以内 送信率100%目標 100% / 4週連続達成
2通目 SLA達成率92%目標 95% / 未達 2件
見積提出までの平均1.8前月 2.6日
受注率(見積ベース)34%直近90日 / 12件中4件
週次の推移1
リード初回30分2通目SLA見積
08/03週14100%100%3
08/10週11100%91%2
08/17週19100%89%5
08/24週17100%92%4
トリガーの実行状況2異常なし
処理最終実行間隔結果
main09:105分正常
dailyKpi08:001日正常
healthCheck09:001時間正常
quoteSync09:0515分正常
  1. 1週次の推移:件数だけでなく、約束を守れた割合と見積に進んだ件数を並べます。CSV/Excelでそのまま報告資料に使えます。
  2. 2トリガーの実行状況:自動処理の最終実行と間隔を表示。見積連携(quoteSync)もここで監視します。
15 — Screen

画面⑪ 設定シート

実装済み

動きを決めているのはコードではなく、このスプレッドシートの設定行です。営業時間や送信の遅延は、ここを直せば変わります。

docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxx/edit
リード送信ログKPI設定テンプレート
A / 設定キーB / 値C / 説明
1TEST_MODE1TRUETRUE の間はお客様に届かない
2BUSINESS_HOURS09:00-18:00平日のみ/土日祝は休み
3FIRST_DELAY_MIN15営業時間内の初回送信までの分数
4OFFHOUR_SEND_AT08:30時間外に着信した分の翌営業日送信時刻
5SECOND_SLA_HOURS222通目のSLA(営業時間で計算)
6NOTIFY_FROMform-notify@example.co.jp通知メールの差出人(抽出条件)
7SENDERSsales1@ , sales2@送信元の候補/未選択側を自動CC
8HEALTH_ALERT_TOsales1@example.co.jp死活監視の通知先
9FOLLOWUP_AFTER_DAYS3追客リマインドまでの営業日数(実装予定)
10QUOTE_APP_ENDPOINT(見積アプリのAPI)見積連携の接続先(実装予定)
  1. 1TEST_MODE:本番移行はこの1セルを FALSE にするだけ。合格基準(第16章)を満たしてから切り替えます。
  2. 2SECOND_SLA_HOURS:SLAは実時間ではなく営業時間で計算されるため、夜間・休日は時計が止まります。

※ 画面は説明用に再現したものです。実データではありません。

16 — Safety

「事故らせない」ための7つの仕掛け

自動でメールを出す以上、いちばん怖いのは誤送信と二重送信、そして黙って止まることです。設計段階で7点を織り込みました。

01

二重送信ブロック

同じリードに同じ種別のメールは2度出ません。トリガーが重なって動いても、送信済みの記録が先に立ちます。

02

誤送信ガード

宛先の形式、テスト用アドレス、送信元アカウントの整合を送信直前に検査。1つでも通らなければ止めます。

03

死活監視(healthCheck)

トリガーが動いているかを定期確認し、止まっていれば管理者へ通知。「気づかないまま止まっていた」を防ぎます。

04

SLAは営業時間ベース

金曜夜の問い合わせが土曜の朝に「SLA違反」になることはありません。休みの時間は数えません。

05

性能対策

1回の実行で扱う件数に上限を設け、GASの実行時間内に必ず終わるようにしています。件数が増えても取りこぼしません。

06

送信不整合の検知

「送ったのに記録がない」「記録はあるのに送れていない」を突き合わせて検出し、再送・訂正の判断材料にします。

07

本番切替の合格基準

3フォームそれぞれで実際に1件ずつ通り、かつ sales1@ / sales2@ の両方から送信成功すること。これを満たすまで TEST_MODE は FALSE にしません。

17 — Boundary

自動化が触らない領域

この6項目は、テンプレートにも自動生成文にも入れません。必要な場合は担当者が自分の言葉で書き、責任を持って送ります。

見積金額 納期の確約 在庫状況 大口割引 施工の可否 ISO関連の記載

境界を決めておくメリット

「どこまでを機械に任せるか」が先に決まっているので、担当者は迷わず承認できます。外部の方に説明する際も、この6項目が人の判断を通っていることを明示できます。

18 — Status

現在地とこれから

2026年8月28日時点。テストモードのまま、実フォーム経由の検証まで通っています。

工程内容状態
受信基盤Gmailフィルタ(差出人+件名条件)/ sales1@ 側 GAS 設置完了
自動実行トリガー3種(main / dailyKpi / healthCheck)完了
項目抽出実フォーム経由のテスト合格。会社名が空欄でも崩れない完了
API連携API_TOKEN 設定・ウェブアプリのデプロイ完了
ログインGoogleログイン(@example.co.jp 限定)/ ダッシュボードで実データ表示完了
送信テストsales1@ からの実送信確認対応中
送信GAS ②sales2@ 側の送信専用GASの設置これから
公開Vercel へのデプロイ(社内から利用可能に)これから
本番切替合格基準の達成を確認して TEST_MODE を FALSE にこれから

ロードマップ

この資料に載せた「実装予定」の画面は、次の順で作ります。稼働を止めずに、上から順に足していく前提です。

フェーズ 1 / 進行中

まず稼働させる

sales1@ からの送信テスト → sales2@ 側の送信GAS → Vercel公開 → 合格基準を満たして TEST_MODE を FALSE に。

フェーズ 2

運用を軽くする

承認キュー・送信ログ・テンプレート管理・KPI/稼働モニタ。毎日の作業を1画面に集約し、記録を残します。

フェーズ 3

売上につなげる

商談パイプライン、見積アプリ連携、請求システム連携、顧客カルテと追客リマインド。問い合わせを受注まで運びます。

フェーズ 4

さらに先

Claude API による文面生成(承認は人のまま)、楽天市場店からの問い合わせ取り込み、拠点別の提案テンプレート。

連携で減る手間

いまの作業連携後効く場面
問い合わせ内容を見て、見積アプリに会社名・担当者を打ち直すボタン1つで見積の下書きが立ち上がる見積依頼フォーム(週6件前後)
できた見積PDFを探して、メールに添付して文面を書く見積PDF付きの2通目が承認キューに並ぶ提出のたび
受注後、請求システムで宛先・金額を再入力する見積番号ごと引き継がれる受注のたび
「あの会社どこまで進んだか」を担当者に聞く顧客カルテとパイプラインで分かる日常・引き継ぎ時

関係者にお願いしたいこと

本番切替の前に、3フォームそれぞれから実際にテスト送信していただける方を各1名お願いします。sales1@ / sales2@ の両方から送信できることが確認できた時点で、TEST_MODE を切り替えます。