予約 ユースケース集
具体的なシナリオを通じて、予約の枠設定・申込・変更・消化の流れを示します。
ユースケース1: 飲食店のテーブル予約
シナリオ
席数40席のレストランが、ランチ・ディナーの2部制で席予約を受け付けます。
設定
- リソース: テーブルA(4人席)×6、テーブルB(2人席)×4、カウンター(1人席×8)、個室(6人席)×1
- 枠方式: 固定時間枠(ランチ 11:30/12:00/12:30/13:00、ディナー 18:00/18:30/19:00/19:30/20:00)
- 予約単位: 人数と時間帯
- 確定方法: 即時確定
- キャンセル: 前日まで無料、当日はキャンセル料
流れ
- 来店希望者がアプリで日時と人数を指定します
- システムが人数に合うテーブルの空きを検索します
- 空きがあれば即時確定し、なければキャンセル待ちを案内します
- 前日夜にリマインダーを通知します
- 来店時にスタッフが予約済みとしてチェックインします
考慮点
- 人数に応じたテーブル自動割当のロジックを決めます(4人を2人席×2に割るかなど)
- 滞在時間のばらつきを見越した時間バッファを設定します
- 団体予約は個室優先とするかを運用方針で決めます
ユースケース2: 美容室のスタイリスト指名予約
シナリオ
スタイリスト2名の個人経営美容室が、カット・カラーなどサービスごとに所要時間が異なる予約を受けます。
設定
- リソース: スタイリストA(カット・カラー可)、スタイリストB(カット専門)
- 枠方式: フレキシブル時間枠(10:00〜19:00、30分刻み)
- サービス所要時間: カット60分、カラー120分、カット+カラー150分
- 指名: あり(指名料)/なし(自動割当)
- キャンセル: 当日まで無料、無断キャンセルは予約制限対象
流れ
sequenceDiagram
participant User as 会員
participant App as アプリ
participant Sys as 予約システム
User->>App: サービスと希望日時を選択
App->>Sys: 空き枠問い合わせ
Sys->>Sys: 指名スタッフ or 対応可能スタッフの連続枠を検索
Sys-->>App: 予約可能枠を返却
User->>App: 枠を選択して確定
App->>Sys: 予約確定リクエスト
Sys->>Sys: 再度空き確認・予約不可設定の確認
Sys-->>App: 予約完了
App->>User: 確認通知・前日リマインダー予約
考慮点
- サービスの所要時間に応じた連続枠の確保が必要です
- 指名なしのときの自動割当ポリシー(均等/優先度順/習熟度順)を決めます
- 指名料の有無と表示タイミングを決めます
ユースケース3: 会議室・設備レンタル
シナリオ
コワーキングスペースが会議室と備品を時間単位でレンタル予約できるようにします。
設定
- リソース: 会議室A(10人用)、会議室B(20人用)、プロジェクター、モニター
- 枠方式: 1時間単位、連続予約可
- 前後バッファ: 清掃・換気 15分
- 確定方法: 決済完了で確定
- キャンセル: 3日前まで無料、2日前以降は段階的キャンセル料
流れ
- 利用者が日時・人数・必要備品を指定します
- 人数に合う会議室と備品の同時空きを検索します
- 決済画面で事前決済します
- 決済完了後に予約が確定します
- 利用開始15分前に入室コードを通知します
- 利用終了後、次の予約者向けに15分の清掃バッファを挟みます
考慮点
- 複数リソースを組み合わせた同時押さえが必要です
- 前後バッファを枠計算に含めないと直後予約で事故になります
- 事前決済と確定の順序を事前に決めます(決済前の仮押さえ期限など)
ユースケース4: 施術サロンのキャンセル待ち
シナリオ
人気のマッサージサロンで、希望枠が埋まっているときにキャンセル待ちを受け付けます。
設定
- リソース: 施術室1(個室)、施術室2(ペア室)、スタッフA、B
- 枠方式: 60分または90分
- キャンセル待ち: 最大3名まで登録可
- 繰上げ通知: キャンセル発生時にプッシュ通知
流れ
- 希望枠が満席のとき、利用者がキャンセル待ちに登録します
- 既存予約がキャンセルされるとシステムが検出します
- キャンセル待ち先頭のユーザーにプッシュ通知を送ります
- 一定時間内に承諾があれば確定し、なければ次の人へ回します
- 全員応答なしならキャンセル待ちを解除します
考慮点
- 繰上げ応答の有効時間をどの程度にするか
- 同時刻に複数のキャンセル待ちがある場合の割当順
- 繰上げ通知の疲労を避ける配信制御
ユースケース5: イベント予約(定員管理)
シナリオ
商業施設が土日のワークショップを定員20名で開催します。
設定
- イベント枠: 開催日時固定、定員20名
- 同伴者: 最大3名まで追加登録可
- 受付開始: 開催2週間前から
- キャンセル: 3日前まで無料、以降は不可
- 参加券: 予約完了時にクーポン(=電子チケット)として配信
流れ
- 開催2週間前に受付を開始し、案内通知を配信します
- 利用者が同伴者数を含めて予約します
- 定員に達した時点で受付を締め切り、キャンセル待ちに切り替えます
- 予約完了時に参加券クーポンを配信します(もぎりで入場管理)
- 当日、受付でクーポン画面のバーコードを提示して入場します
考慮点
- 定員超過を許さないよう在庫を管理します(配信上限=定員)
- 同伴者込みの枠消費をどう数えるかを決めます
- 参加券はクーポン基盤の応用です(クーポン ユースケース集 の電子チケット参照)
ユースケース6: 無断キャンセル抑制のための予約制限
シナリオ
無断キャンセル(予約時刻に来店がないケース)を繰り返す会員に対して、段階的に予約を制限します。
設定
- ペナルティ方針:
- 1回目: 警告通知のみ
- 2回目: 1ヶ月間の予約制限
- 3回目: 無期限の予約不可設定
- 適用単位: テナント全体/ショップ単位のいずれか
流れ
- 予約時刻を過ぎてもチェックインがない場合、スタッフが無断キャンセルとしてマークします
- システムが該当会員の無断キャンセル履歴を集計します
- 閾値に達するとペナルティ段階を上げます
- 予約不可設定後は、あらかじめ決めた画面表示・案内方法で予約を受け付けません
- 電話予約は店舗判断で受け付けるかを決めます
考慮点
- 予約を受け付けない場合の画面表示・案内方法(明示的に断るかどうか)で顧客とのトラブルリスクが変わります
- 遅延チェックインやスタッフ側の記録漏れを誤って無断キャンセル扱いにしない仕組みが必要です
- 解除条件(期間経過、異議申し立てなど)をルール化しておきます
ユースケース7: リマインダー通知
シナリオ
予約忘れ・無断キャンセルを減らすため、段階的にリマインダーを送ります。
設定
- 前日通知: 20:00
- 当日通知: 2時間前
- 直前通知: 30分前(オプション)
流れ
- 予約確定時に通知スケジュールを予約システムに登録します
- 前日20:00に「明日のご予約のお知らせ」を配信します
- 当日2時間前に「本日のご予約(あと2時間)」を配信します
- オプション設定されていれば30分前に再送します
- チェックイン済みの予約には直前通知を送りません
考慮点
- 通知頻度が多すぎると通知疲れにつながります
- 直前変更・キャンセル時の通知停止を忘れないようにします
- メール・プッシュ・SMSの優先度と到達性を整理します
ユースケース8: 繰り返し予約(定期利用)
シナリオ
レッスンやカウンセリングで、毎週同じ枠を定期的に押さえたいと考えています。
設定
- 繰返し単位: 毎週・隔週・毎月
- 期間: 開始日〜終了日、または回数指定
- 例外日: 祝日・休業日は自動スキップ
- 個別変更: 1回分だけの日時変更・キャンセル
流れ
- 利用者が定期予約を登録します(例: 毎週水曜19:00〜、3ヶ月)
- システムが繰返しルールから個別予約を生成します
- 休業日は自動的に飛ばします
- 特定日だけ変更したい場合は、その1件のみ編集・取消します
- 利用者の都合で全体を止める場合は一括解除します
考慮点
- 個別変更した予約と、繰返しルールの関係をどう管理するか
- 繰返しの将来分をどこまで事前に枠確保するか
- スタッフ側の見え方(連続した予定として見せるか、個別に見せるか)