kintone の予約で二重予約・ダブルブッキングを防ぐ仕組み
二重予約は「運が悪かった」ではなく、排他制御がないフォーム受付の構造的な問題です。
よくある課題
- 残り1枠に同時に申込が入り、両方に「受付完了」が出てしまった
- Webの予約と電話で受けた予約が同じ時間に重なった
- キャンセルの反映が遅れて、空いていない枠が表示され続けた
どう解決するか
予約ブリッジは、枠の確定処理をデータベースレベルの排他制御で直列化します。同じ枠に同時に申込が来ても、定員(既定1)に達した時点で後続は確定されず、その枠は表示から消えます。「同時押しでも定員を超えない」ことが仕組みで保証されます。
電話などの別経路で入った予定は、kintone のレコードとして登録されていれば空き枠の計算から自動で除外できます(埋まり判定)。判定条件は開始・終了・キャンセル除外まで自動補完されます。
キャンセルは専用URLからの操作でステータスが即時更新され、枠は同時に空きへ戻ります。人手の反映待ちがないため、古い空き状況が表示され続けることがありません。
押さえどころ
定員までの排他
確定はサーバー側で直列化。定員1なら1件だけ、定員Nなら N 件までしか確定しません。
既存レコードとの重複判定
他経路の予定・過去の予約と重なる枠は、条件に基づいて空きから外れます。
自分の予約を二重に数えない
予約IDでの照合により、この仕組みが作ったレコード自身を重複として誤検知しません。
導入の流れ(約15分)
- 01
お試しを開始
メールアドレスと kintone のサブドメインを入力すると、ライセンスキーとプラグインが発行されます。
- 02
アプリにプラグインを追加
予約を溜めるアプリにプラグインを追加し、ライセンスキーとAPIトークンを設定します。
- 03
受付時間と書き込み先を設定
曜日・時間帯・枠の長さ・定員と、日時や氏名を入れるフィールドを選びます。
- 04
公開URLを配る
外部の人が空き枠を選ぶと、そのまま kintone のレコードになります。
よくある質問
同時アクセスが多いイベント告知でも大丈夫ですか?
確定処理は排他されるため定員は超えません。連続大量アクセスにはレート制限も入っています。
手動でブロックしたい時間帯があります
その時間帯のレコードを登録するか、受付時間の設定から外すことで塞げます。