予約のリマインドを送っても、「本当に見てもらえたのか」がわからない——予約を受け付ける運営者からよくいただくご相談です。サブスクラインでは、リマインドに「はい/いいえ」のボタンを添えてお客様ご自身に押していただくことで、確認済みの方と未確認の方を切り分け、未確認の方にだけ再リマインドを自動で送れます。追加開発は不要で、管理画面の設定だけで構築できます。
このページでは、そのまま取り込めるサンプルJSONを掲載しています。各ブロックの「ダウンロード」からJSONファイルとして保存できます。
前提:個別の通知に「開封率」は出せません
開封率・URLタップ率のレポートが取れるのは、配信(セグメント配信)機能で多数の方へ一斉に送ったメッセージだけです。予約完了通知やリマインドは、一人ひとりの予約に紐づけて個別に送るため、開封の集計対象にはなりません。
そこで、開封を「測る」のではなく、ボタンを押してもらって「確認した」という事実を記録する方法に置き換えます。押してもらえば、確認済みかどうかが確実にわかるうえ、その情報をそのまま次の配信の条件に使えます。
できるようになること
- 予約した方のうち、リマインドを確認した人・していない人が一覧で分かる
- 未確認の方にだけ、自動で再リマインドを送れる
- 「いいえ」と答えた方を早期に把握し、キャンセル待ちの繰り上げや電話確認につなげられる
- 確認率が数字で残るため、リマインドの文面や送信タイミングの改善に使える
全体の流れ
- 回答を記録するラベルを作る
- リマインドに「はい/いいえ」のボタンを付ける
- 押されたらラベルを付ける(自動応答)
- 未確認の方だけを配信グループで抽出する
- そのグループへ定期配信で再リマインドする
1. ラベルを作る
ラベル管理から、回答を記録するためのラベルを作成します。予約完了時とリマインド時で分けておくと、どちらの段階で確認されたのかが分かります。
- 予約完了への回答:はい
- 予約完了への回答:いいえ
- 予約リマインドへの回答:はい
- 予約リマインドへの回答:いいえ
- 再リマインド送信済み
以降のサンプルJSONはこのラベル名を前提にしています。名前を変える場合は、JSON内のラベル名も揃えてください。
2. リマインドに「はい/いいえ」のボタンを付ける
メニュー管理から対象のメニューを開き、メッセージ設定で送信タイミング「リマインド時」のメッセージを追加します(予約完了時も同様に設定できます)。コンテンツの種類で「フレックスメッセージ(JSON)」を選び、下記をそのまま貼り付けます。
コンテンツ種類「フレックスメッセージ(JSON)」の入力欄に貼り付けます。{reservation.startAt} は送信時に予約日時へ自動で置き換わります。
{
"type": "text",
"text": "【ご予約のリマインド】\n{reservation.startAt} にご予約をいただいております。\nご来店いただけますか?",
"quickReply": {
"items": [
{
"type": "action",
"action": {
"type": "postback",
"label": "はい",
"displayText": "はい",
"data": "{\"values\":[],\"message\":\"remind_yes\"}"
}
},
{
"type": "action",
"action": {
"type": "postback",
"label": "いいえ",
"displayText": "いいえ",
"data": "{\"values\":[],\"message\":\"remind_no\"}"
}
}
]
}
}クイックリプライはLINEの仕様上、そのタイミングで送るメッセージの最後の1通にのみ表示されます。画像などと組み合わせる場合は、最後のメッセージにこの選択肢を置いてください。
message の値(remind_yes / remind_no)が、次の手順で自動応答を呼び出すキーワードになります。
3. 押されたらラベルを付ける(自動応答)
自動応答を新規作成し、次のとおり設定します。「はい」用と「いいえ」用の2件を作成します。
- イベントタイプ:ポストバック
- マッチタイプ:部分一致
- キーワード:
remind_yes(いいえ用はremind_no) - ラベル付与:予約リマインドへの回答:はい(いいえ用は「いいえ」のラベル)
- 返信メッセージ:「ご確認ありがとうございます。当日お待ちしております」など
自動応答は対象のユーザーグループを指定しないと動作しません。全員を対象にする場合も、友だち全員が含まれるグループを必ず指定してください。ここが最もつまずきやすい箇所です。
4. 未確認の方だけを抽出する(配信グループ)
配信グループ管理の「JSONインポート」から、下記を取り込みます。画面から手で作る場合は、条件「予約ステータス=予約確定」と「除外ラベル=予約リマインドへの回答:はい/再リマインド送信済み」を設定してください。
配信グループ管理 > JSONインポート から取り込みます。取り込む前に、手順1のラベルを作成しておいてください(ラベルは名前で紐づきます)。maxElapsedDayFromLastReservation は「最終予約受付日からの経過日数」の上限で、直近30日以内に予約した方に絞る指定です。
{
"version": "1",
"items": [
{
"title": "予約確定・リマインド未確認",
"memo": "予約が確定しているのに、リマインドの確認ボタンを押していない方",
"reservationStatus": [
"confirmation"
],
"maxElapsedDayFromLastReservation": 30,
"labelGroups": [],
"excludeLabels": [
{
"labelName": "予約リマインドへの回答:はい"
},
{
"labelName": "再リマインド送信済み"
}
],
"prefectureCodes": [],
"planHashIds": [],
"lineConfigHashIds": [],
"menuHashIds": [],
"resourceHashIds": []
}
]
}予約ステータスの条件は過去の予約も対象に含むため、直近の予約者に絞る指定を入れています。作成したグループの対象人数が、そのまま未確認者の数になります。
5. 未確認の方へ再リマインドを送る(定期配信)
配信管理の「JSONインポート」から、下記を取り込みます。毎日18時に、手順4のグループへフレックスメッセージで再リマインドを送る設定です。
セグメント配信管理 > JSONインポート から取り込みます。下書きとして取り込まれるので、内容を確認してから配信を有効にしてください。手順4の配信グループを先に作成しておく必要があります(グループも名前で紐づきます)。
{
"version": "1",
"items": [
{
"title": "未確認の方への再リマインド",
"type": "content",
"isDraft": true,
"memo": "予約確定・リマインド未確認のグループへ、毎日18時に再リマインドを送る",
"streamType": "everyday",
"scheduledTime": "18:00",
"userGroupTitles": [
"予約確定・リマインド未確認"
],
"addLabelNames": [
"再リマインド送信済み"
],
"removeLabelNames": [],
"contents": [
{
"type": "json",
"value": {
"type": "flex",
"altText": "ご予約の確認をお願いします",
"contents": {
"type": "bubble",
"body": {
"type": "box",
"layout": "vertical",
"spacing": "md",
"contents": [
{
"type": "text",
"text": "ご予約の確認",
"weight": "bold",
"size": "lg"
},
{
"type": "text",
"wrap": true,
"size": "sm",
"color": "#555555",
"text": "ご予約いただいた内容をまだご確認いただけていないようです。ご来店いただけるかお知らせください。"
}
]
},
"footer": {
"type": "box",
"layout": "vertical",
"spacing": "sm",
"contents": [
{
"type": "button",
"style": "primary",
"color": "#7CC07B",
"action": {
"type": "postback",
"label": "行きます",
"displayText": "はい",
"data": "{\"values\":[],\"message\":\"remind_yes\"}"
}
},
{
"type": "button",
"style": "secondary",
"action": {
"type": "postback",
"label": "行けないかもしれません",
"displayText": "いいえ",
"data": "{\"values\":[],\"message\":\"remind_no\"}"
}
}
]
}
}
}
}
]
}
]
}配信グループは配信のたびに再集計されます。再リマインドを見て「はい」を押した方は、翌日から自動的に対象外になります。手作業でリストを更新する必要はありません。
このサンプルでは配信時に「再リマインド送信済み」ラベルを付与し、そのラベルを配信グループの除外ラベルに入れてあるため、同じ方への再リマインドは1回だけになります。毎日送り続けたい場合は、JSONの addLabelNames を空にし、配信グループ側の除外ラベルからも外してください。
「いいえ」と答えた方への対応
「予約リマインドへの回答:いいえ」ラベルが付いた方だけの配信グループを別途作れば、キャンセル手続きの案内や日程変更の案内を自動で送れます。キャンセル待ちを設定している場合は、早めに枠を空けて次の方に繰り上げられるため、当日の空席を減らせます。
ご注意いただく点
- 定期配信の送信時刻は「毎日18:00」のような固定の時刻で指定します。「予約日の前日」といった予約日を基準にした送信は、メニューのリマインド機能(予約の◯時間前)で行ってください。リマインド本体は予約の◯時間前、再リマインドは毎日固定時刻、という組み合わせが基本形です。
- 配信グループのJSONに含まれるプラン・メニュー・リソースの指定はアカウント固有のIDで紐づくため、別アカウントへそのまま移すことはできません。ラベルと配信グループは名前で紐づくため、名前を揃えておけば移せます。
- 再リマインドは配信通数を消費します。対象を未確認の方に絞ることで、全員へ再送する場合と比べて通数を大きく抑えられます。
まとめ
「開封されたか」を測る代わりに「確認したと押してもらう」設計にすることで、確認状況が確実に分かり、そのまま次の打ち手(再リマインド、キャンセル待ちの繰り上げ、電話確認)につなげられます。ラベル・自動応答・配信グループ・定期配信という標準機能の組み合わせだけで構築でき、開発は必要ありません。