メインコンテンツまでスキップ

公開オンライン予約・試乗予約システム

公開オンライン予約システム(/booking/[token])は、車を探しているお客様がパスワード入力や会員登録を行うことなく、スマートフォンから数タップで試乗や商談の予約日時を選択できるセルフサービス型予約ポータルです。

暗号化トークン構造と有効期限管理​

発行される予約リンクは高エントロピーの暗号化トークンによって保護されており、第三者による推測や総当たり攻撃を完全に防止します:

トークンの生成と有効期限のルール​

  • トークン仕様: 暗号学的に安全な32バイトの乱数を生成し、URLセーフなBase64文字列に変換(crypto.randomBytes(32).toString("base64url"))。
  • 有効期限: リンクの有効期間は送信日時から厳密に 48時間(DEFAULT_EXPIRY_HOURS = 48)。
  • 未反応フォローアップ閾値: 送信から 24時間 が経過してもアクセスがない場合(DEFAULT_NO_RESPONSE_HOURS = 24)、営業担当者へ再連絡を促すタスクが自動起票されます。
  • 定期バックグラウンド処理: スケジューラーが15分間隔(*/15 * * * *)で期限切れリンクの自動クローズとタイムラインの更新を実行します。

予約ステータスのライフサイクル​

  1. DRAFT: 営業担当者がリンクを発行し、送信準備が整った状態。
  2. SENT: SMS、WhatsApp、メール経由でお客様に送信完了。
  3. OPENED: お客様が予約ページを開いた瞬間に自動検知。(ログイン済みの店舗スタッフによる確認アクセスはカウントされません)。
  4. BOOKED: お客様が希望日程を選択し、予約が確定。
  5. NO_RESPONSE: 24時間経過してもアクセスが確認できない状態。
  6. EXPIRED: 日時確定に至らず48時間の有効期限が満了。
  7. CANCELLED: お客様または店舗側の都合により予約が取り消された状態。

お客様側の予約操作フロー​

1. 予約リンクのタップ​

SMS等で受信したリンク(https://app.steer.ai/booking/<token>)をタップします。ログインやアプリ導入を一切求めず、瞬時に画面が表示されます(不正アクセス対策としてIP/トークンあたり5分間120リクエストのレート制限を適用)。

2. 対象車両および店舗所在地の確認​

案内画面には予約対象の車両情報が表示されます:

  • 車両のメイン高画質写真。
  • メーカー、モデル、グレード、年式、燃料、トランスミッション。
  • 店舗の住所、アクセスマップ、担当営業スタッフの連絡先。

3. 空きカレンダーからの日時選択​

  • 販売店の営業日・営業時間カレンダーから、予約可能な空き枠をリアルタイム表示。
  • 重複ブッキングの防止: 複数のお客様が同一枠を同時に選択した場合、APIがHTTP 409(SLOT_UNAVAILABLE)を返し、直近の別枠を即座に再提示します。

4. 連絡先確認と予約完了​

  • 氏名、連絡先電話番号、メールアドレス、および下取り希望車の有無などの自由記入欄を入力。
  • 確定ボタンを押すと、店舗のマスターカレンダーが自動ブロックされ、営業担当者へ準備タスクが通知され、カレンダー登録用ファイル(.ics)がダウンロード可能になります。

日程変更およびキャンセル​

お客様は予約当日まで、手元の同じリンクを再度開くことで、日時の変更やキャンセルをいつでも自由に行うことができます。