『【永久無料】宿泊施設の予約管理システム自作する10ステップ』の9ステップ目、予約キャンセル&変更の管理システムを作成する方法を解説します。
この記事では、GoogleスプレッドシートとGoogleカレンダーを連携が完了したところから説明します。
(前回の記事はこちら)
>>ステップ8:GoogleスプレッドシートとGoogleカレンダーを連携させる
キャンセルや変更の管理システムがないと、メールや電話でキャンセル処理をしなければなりません。
1・2件なら問題ないかもしれませんが、件数が増えると管理しきれなくなって大変なことになります。
たとえばこんなふうに。。。
- 電話で変更を受付けたが、履歴がなく確認できない
- キャンセルのメールを見落としたまま予約当日になってしまった
- メールを逐一確認せねばならず、時間を浪費する
こうならないよう、管理システムを作りましょう。今回もコピペでOKなようにしてあるので、安心してください。
予約変更・キャンセル処理のシステムを作って管理の手間を削減する。
キャンセルシステムの全体像
まずはキャンセルシステムの全体像から紹介します。
- 各予約に予約番号を付与する
- 予約完了連絡の際にキャンセル・変更フォームを連絡
- 顧客がキャンセル・変更フォームで申請
- 申請情報をスプレッドシートで管理
- 対応の結果を記録
- 予約リストにキャンセル・変更履歴を自動反映する
- カレンダーを編集・更新する
流れがわかったところで、早速システムを作って行きましょう。
作り方のステップは次の通りです。
- 各予約に予約番号を自動付与する
- キャンセル・変更リクエストフォームを作る
- 予約完了メールでキャンセル・変更フォームを周知する
- キャンセル・変更管理用のGoogleスプレッドシートを作る
- 予約リストにキャンセルリストの内容を自動反映させる
- カレンダーを更新する
①各予約に予約番号を自動付与する
予約管理のカギはこの「予約番号」です。
各予約に固有の番号をつけることで、簡単に予約情報を検索できるからです。
後述しますが、スプレッドシートの関数により、予約番号に紐付いた顧客情報を一瞬で顧客リストから抽出できるようになります。
1つ1つの予約を固有番号で管理しましょう!
各予約に番号を付与する方法
プラグイン「Contact Form 7 Serial Numbers」を使えば、予約フォーム申し込み時に番号を自動で割り振ってくれます。
導入方法は次の通りです。
- Contact Form 7 Serial Numbersをダウンロード
- Contact Form 7 Serial Numbersの初期設定
- フォームの自動返信メールに専用タグを設置
Contact Form 7 Serial Numbersをダウンロード
プラグインの新規追加からインストールします。
Contact Form 7 Serial Numbersの初期設定
「お問い合わせ」の下層に「シリアル番号設定」が追加されるので、クリック。
作成した予約フォームの初期設定をします。下図の緑枠のように設定すると良いでしょう。
また、ここで赤枠にある「メールタグ」を控えておきます。
フォームの自動返信メールに専用タグを設置
「予約フォーム」の編集画面に行き、「メール」タブから先程コピーしたContact Form 7 Serial Numbersのメールタグを設置します。
民宿しまだの場合は下図のように、題名とメッセージ本文両方に予約番号を自動入力するようにしています。
実際に送信されるメールは次のようになります。ちゃんと番号が入っていますね。
②キャンセル・変更リクエストフォームを作る
予約フォームと同じように、CONTACTフォーム7で専用フォームを作りましょう。
コピペ用のコードも用意してあります。
【コピペ用】キャンセル・変更フォーム用プログラム
<!--変更かキャンセルか-->
<div class="moji"><span class="must">必須</span><span class="book">ご連絡内容</span></div>
[radio canorhen default:1 "予約変更" "キャンセル"]
<div class="moji"><span class="must">必須</span><span class="book">予約番号</span></div>
<div class="cankomoji1">英数字10桁の番号(予約確定メールにてご連絡しております)</div>
<!--「minlength:〇〇」で最小文字数を指定。ご自身の設定した予約番号にあわせて変更してください-->
[text* yoyakuno minlength:10]
<span>文字数:</span>[count yoyakuno] <span>/10</span>
<!--対象予約確認の為のデータ-->
<div class="moji"><span class="must">必須</span><span class="book">予約時のご宿泊日</span></div>
<div class="para">
<div class="komoji4">
<span class="book2">チェックイン</span>
[date* date-checkin min:2023-03-07]
</div>
<div class="komoji4">
<span class="book2">チェックアウト</span>
[date* date-checkout min:2023-03-08]
</div>
</div>
<!--対象予約確認の為のデータ-->
<div class="moji"><span class="must">必須</span><span class="book">お名前</span></div>
[text* your-name]
<div class="moji"><span class="must">必須</span><span class="book">メールアドレス</span></div>
[email* your-email]
<div class="moji"><span class="must">必須</span><span class="book">メールアドレス(確認用)</span></div>
[email* your-email]
<div class="moji"><span class="must">必須</span><span class="book">電話番号</span></div>
[tel* telno]
<div class="moji"><span class="must">必須</span><span class="book">変更希望内容 / キャンセル事由</span></div>
[textarea* naiyo]
<div class="submit">[submit "送信"]</div>
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
<!--URLを記入してください-->
location = '送信時に表示させたいページのURL';
}, false );
</script>
③予約完了メールでキャンセル・変更フォームを周知する
予約完了メールで作ったフォームをお客さんに周知しましょう。
周知が足りないと、メールや電話で連絡が来てしまいます。
メールの雛形をひな形を参考に、完了メールを作って下さい。
予約完了メールひな形
様
この度はご予約誠にありがとうございます。
下層メールの内容でご宿泊を承りましたのでよろしくお願いします。
下記、ご確認いただけますと幸いです。
■ご予約の変更・キャンセル方法について
下記の専用フォームよりご連絡ください。
https://xxxxxxxxxxxxxxxx
パスワード:xxxxxxxxxxxx
※お急ぎの場合はお電話にてお願いいたします。
電話番号:xxxxxxxxxxxxxxxxx
■キャンセル規定について
下記となります。何卒ご理解のほど、よろしくお願いいたします。
宿泊日の2〜3日前 :ご宿泊料金の30%
宿泊日の1日前 :ご宿泊料金の50%
当日キャンセル :ご宿泊料金の80%
無断キャンセル :ご宿泊料金の100%
以上となります。
それでは当日お待ちしております。
お気をつけてお越しください。
キャンセル・変更申請フォームはいたずら防止のため、パスワードで非公開にしておくのがおすすめ。
予約完了メールでパスワードを知らせましょう。
④キャンセル・変更管理用のGoogleスプレッドシートを作る
予約フォームと同様に、キャンセル・変更の案件もすべてスプレッドシート管理できるようにします。
新規予約と同様に、「キャンセルのデータ収集用タブ」と、「キャンセル管理用」のタブを作りましょう。
⑤予約リストにキャンセルリストの内容を自動反映させる
キャンセルリストで処理した内容を、予約リストに反映させましょう。
予約リストとキャンセルリストを紐付けて、情報のヌケモレをなくします。
方法:Query関数でデータ転機する
キャンセルシートから予約リストにデータを転記するには、Query関数を使いましょう。
コピペ用シート通りなら予約管理シートの「キャンセル・変更」列の5行目に次の数式を入れて、下までソートしておけばOKです。
=IFERROR(QUERY('◎キャンセル・変更'!$F:$K,"select F where K= I5"),"")
少しだけ解説すると、上記の数式は次の意味を持ちます。
- ◎キャンセル・変更’!$F:$K →「◎キャンセル・変更」タブのF列からK列のデータを参照
- select F →参照したデータから抜き出す値の列番号を指定。今回は対応内容を抜き出したいので、F列のデータを指定
- where K= I5 →データの抽出条件を指定。今回の抽出条件は、予約番号が一致するデータ。「◎キャンセル・変更」タブのK列の値が、「予約リスト」I列の5行目に一致した場合にデータを抽出。
Query関数について詳しくはこちら参考にしてください。いろいろなことが可能な非常に便利な関数です。
⑥カレンダーを更新する
Googleカレンダーの予約情報も更新しましょう。ここは手作業です。
自動化もできますが、
①複雑なプログラムが必要
②キャンセルの件数はそんなに多くない
という理由から、手作業でいいかと思います。
「キャンセルカレンダー」を作っておいて、カレンダーの種類を変えてしまうのが良いでしょう。
予約確定カレンダーと、キャンセルカレンダーの色を分けておけば、簡単に識別ができて便利です。
おわりに
以上でキャンセル・変更管理のシステム作成は完了です。
なにか不明な部分があればお気軽に問い合わせしてください。