SuperSaaSが提供するオリジナリティのある「サービスタイプ」予約システム
SuperSaaSで構築できるオンライン予約システムは、空き時間に対して予約できるオーソドックスなリソースタイプや、日時の決まっている予約対象に対して予約を受け付けるエントリー型の定員制タイプに加えて、リソースタイプを内包連携できるサービスに対して予約を受け付けるユニークなサービスタイプのオンライン予約システムを構築することができます。
このサービスタイプ、定員制タイプのスロットように事前にサービスを構築提供することで、そのサービスに対して予約を受け付けるシステムで、その予約対象となるサービスには別途に構築したリソースタイプのリソースを内包連携することができます。
つまり、「リソースAとリソースBの両方を予約するサービス」といった複数のリソースを同時に予約を受け付ける仕組みを構築することができるということです。
また、予約対象となるサービスでは期間(予約の長さ)が必須項目となっていて、構築したサービスタイプの予約システムで設定した時間的な予約制限と、内包連携するリソースの予約システムで設定した時間的な予約制限を踏まえた上で、サービスで設定された期間(予約の長さ)に基づいた整合性のある予約可能な箇所がカレンダー画面上に可視化されて表示されます。
こんな説明では良くわかりませんよね…
仕組みは単純なのですが、ちょっと癖があって説明しにくいし、あまり他に見ないこともあって概要だけでは用途用法をうまくイメージしにくいと思います…
個々の機能や設定云々より、実際にどういったオンライン予約システムが構築できるのか。その紹介の方が理解が早いと思いますので、今回はいくつかサービスタイプで構築できるユニークなオンライン予約システムを紹介したいと思います。
SuperSaaSのサービスタイプ構築できるユニークなオンライン予約システムの例
先述したように、サービスタイプのオンライン予約システムは、事前に構築提供するサービスに対して予約を受け付けるシステムです。
サービスは別途構築されたリソースタイプの予約システムのリソースを複数指定することが可能という特徴を持っています。
サービスを予約するということは、内包連携するリソースも同時に予約することになります。
期間(予約の長さ)が必須項目となりますが、予約の長さが事前に指定されるため、スケジュール上で内包連携するリソースとの兼ね合いを加味した上での予約可能な時間帯が可視化され、整合的に予約不可能な時間帯には予約できない仕組みとなります。
スケジュール同士がお互いに連携する整合性のため致し方ありませんが、予約対象となるサービスは期間(予約の長さ)が固定されることを前提とした予約システムとして設計する工夫が必要です。
サービスタイプの予約システム例1:一括予約(リソースの複合予約)「貸しテニスコート場の貸切予約」
AからDの4つのコートがある貸しテニスコート場のリソースタイプの予約システムが既に提供されているものとします。
ここに、全てのコートを終日予約する貸切予約というサービスを予約対象とする、サービスタイプの予約システムを構築してみましょう。
新規にサービスタイプの予約システムを構築し、サービスが内包するリソースに、リソースタイプ予約システムで構築したコートAからDの4つ全てを指定して連携させます。
この時、期間(予約の長さ)は終日予約とするため、対象の営業時間一杯となる9:00から21:00の12時間を指定しています。
つまり、以下の条件全ての条件を満たす全てのコートを終日貸し切る予約を受け付けるサービスを予約対象としたオンライン予約システムとなります。
- ・コートAを12時間予約可能であること
・コートBを12時間予約可能であること
・コートCを12時間予約可能であること
・コートDを12時間予約可能であること
サービスが予約されると、内包するリソースも同時に予約されます。
サービス予約が削除された場合、もちろん連携するリソースの予約も削除されます。
それぞれのスケジュールの整合性がリアルタイムに保たれる、連携した予約システムとなります。
サービスタイプの予約システム例2:セット予約(リソースの複合予約)「ネイリストと施術ブースのセット予約」
ネイリストと施術ブースのスケジュール管理をリソースタイプのスケジュールで管理しているネイルサロンで、ネイリストを指定しつつ合わせて施術ブースも予約するサービスタイプの予約システムを構築してみましょう。
ネイリストAさんからEさんそれぞれで稼働可能な時間帯は予約可能な状態にした各リソースタイプスケジュールと、ネイルサロンの営業時間に合わせてブースAからCまでの3箇所の施術ブースを複数のリソースとしたスケジュール管理用のリソースタイプスケジュールがあるものとします。
ネイリストのリソーススケジュールは各ネイリストの方々をスーパーユーザーにして、自分でスケジュール管理するようにしてもらうとスマートです。
サービスとして、各ネイリストごとに施術ブースをセットにした五つのサービスを登録します。
個別のリソースや単独リソースのリソーススケジュールではなく、複数のリソースを含むリソーススケジュールをサービスのリソースに指定した場合、Any ofと表示されます。
なぜか日本語に翻訳されていませんが、指定したリソーススケジュール内にあるリソースのいずれか一つ、という意味です。
つまり、ネイリストAというサービスは、「ネイリストA」と「施術ブースのリソースのうち一つ」という両方のリソースを同時にセットで予約することになりますので、その両方の予約が可能な時間帯が可視化され予約を受け付ける予約システムとなります。
もちろん、相互に予約が連携するため、サービスが予約されると、その内包連携するリソースも同時に予約されて、リアルタイムに整合性が確保されます。
ちなみに、サービスで予約された予約は、リソーススケジュール側で削除や編集をすることはできません。
サービスで予約されたリソースの予約は、予約したサービスタイプのスケジュール上でのみ、編集や削除が可能です。
サービスタイプの予約システム例3:選択予約(リソースの複合予約)「分割貸し出しできる催し会場の個別や複合予約」
催し会場やバンケット会場など大きな会場はパテーションなどで分割しても貸し出し可能であることも多いでしょう。
そのような個別や複合の混じった予約を整合性のあるサービスタイプの予約システムとして構築してみましょう。
ルームABCの3つに分割して貸し出しもできる大きな会場で、小会場「Aのみ」「Bのみ」「Cのみ」、中会場「A+B」「B+C」、大会場「全使い(A+B+C)」の6パターンで予約を受け付けるとします。
この場合、ルームA、ルームB、ルームCのリソースタイプのスケジュールを先に構築します。
このスケジュールはサービスのためのバックグラウンド的なもので管理用途として利用者に直接公開はしません。
次に作るサービスタイプの予約システムを利用者に公開する運用です。
続いて、利用者に提供する予約パターンをサービスとして、サービスタイプの予約システムを構築します。
これらサービスは、内包連携するルームのリソースのスケジュールと整合性が保たれます。
たとえば、ルームBが予約されている時間帯は、ルームBを含むサービスの予約はできませんので、「ルームAのみ」か「ルームCのみ」単独の予約しか受け付けません。
ルームAが予約されている場合は、「ルームBのみ」か「ルームCのみ」に加えて「ルームB+C」の予約が可能です。
「全使い(ルームA+B+C)」は全てのルームが空いている場合にしか予約できませんし、「全使い(ルームA+B+C)」が予約されている時間帯はほか全ての予約は受け付けません。
ちょっとサンプルの図が悪くわかりにくいと思いますが、リソースの予約の整合性が保たれていますので、お互いに矛盾した予約は受け付けません。
相互にスケジュールの整合性を保ちつつ、単独だったり、複合だったりする予約を受け付けるシステムが構築できるところは、このサービスタイプの真骨頂かもしれませんですね。
サービスタイプの予約システム例4:管理活用(空きリソース管理)「スタッフシフト」
サービスタイプはユーザーに提供するだけでなく、条件を整えれば管理面でも活用できます。
前述したとおり、サービスの予約は内包するリソースのスケジュールと整合性を保って連携されますので、たとえば、スタッフのスケジュールをリソースとして運用管理している場合、その複合的なスッタフのシフト管理をサービスタイプのスケジュールで運用することが可能です。
スタッフ自身によるリソーススケジュール管理の利便性は下がりますが、単一のリソースタイプスケジュールを用いて、全てのスタッフを複数のリソースとして運用管理している前提になります。
リソースとしてスケジュール管理されているスタッフの中から、確保したい条件をサービスとすることで、スケジュール上で可視化された確保可能な時間帯を確認しつつ、そのスケジュールを抑えることが可能です。
全体ミーティングなどで、全員が空いている時間帯を確保する
サービスの必須リソースとして、対象スタッフ全員を指定することで、全員が空いている時間帯を確認しつつ、サービスとして予約することで、各スタッフのスケジュールに予約を反映できます。
対象スタッフ全員を必須リソースとしているため、90分間、全てのスタッフが空いている時間帯が可視化され、対象リソース全てに対してスケジュールを抑える予約が可能です。
サービスとして予約されると、同時にリソースタイプのスケジュールにも予約として反映します。
サービスで予約された場合、リソースタイプ側ではその予約を編集や削除できませんので、この連携した予約に対して修正や削除を行う場合はサービスの予約に対して行うことになります。
空いている任意人数のスタッフを抑える
リソースにスケジュー自体を指定するAny of(スケジュール上のリソースのうちいずれか一つ)を重ねることで、任意の複数名のスタッフを複合的に抑える仕組みも構築可能です。
リソースタイプスケジュール「スタッフ」の中から受付係として2名を8時間抑える設定です。
スケジュース上で8時間、2名以上の空きがある時間帯が可視化され予約可能になります。
対象リソースが複数ある場合はプルダウンにて対象スタッフリソースの変更が可能です。
スケジュール的に選択できないスタッフ(リソース)もプルダウンで表示されますが、非活性状態で選択できません。
サービスタイプは工夫次第で便利に使える予約システムが構築できる…かも
サービスタイプは予約対象であるサービスの期間(予約の長さ)が固定だったり、必須リソースのとと又はが片方しか選択できなかったりなどいろいろとクセがありますが、運用用途にマッチすればとっても便利な予約システムが構築できます。
細々とした設定や、スケジュール同士の連携するところと連携しないところなど説明不足も多々ありますが、サービスタイプで構築できる予約システムの可能性が少しでも伝われば幸いです。
色々足りないと感じることもあるかもしれませんが、APIやwebhookも提供されていますので、突き詰めればその辺りを組み合わせてより便利なシステムをスクラッチしてみるのも面白いかもしれませんね!