個別コンサルティング予約を「予約特典」として整備。新規入会・コミュニティからのアップグレード両方に対応した入会日自動セット + ダッシュボード通知 + 利用履歴の日時記録 + リセット時期の非開示設計
予約URLが設定された特典は最上部にヒーローカードとして表示。「予約する」ボタンタップでGoogleカレンダーの予約フォームを別タブで開きます。下に通常の特典が続く構成。
プライベートクラブ会員の特典と利用状況をご確認いただけます
あなたのために設けられた、年2回の特別なお時間。
資産設計、ビジネス、これからの人生について。
15:00 〜 19:00 のあいだでご都合のよい時間をお選びください。
月例イベントの先行案内・抽選優遇
提携ホテル・レストランでの優待価格でのご利用
5
残り / 上限10
PC会員の特典と利用状況
年2回の特別なお時間。
資産設計、ビジネス、これからの人生について。
先行案内・抽選優遇
5
残り / 10
CTAをグレーアウトし、丁寧なメッセージを表示します。具体的なリセット日は表示しません(運用の柔軟性を保つため、お客様には「年2回」という上限のみが伝わる設計)。
本年度分はすべてご利用いただきました。
またお目にかかれることを楽しみにしております。
既存の特典編集モーダルに「予約URL」「ボタンラベル」の2項目を追加。URLが入っていれば、お客様サイトでヒーローカードに昇格表示されます。
面談を実施し終えたら、紗希さんもしくは管理者が顧客別状況タブで「+1」ボタンを1クリック。確認ダイアログを挟み、利用履歴に1件追加されます。
紗希との 30 分のひととき
入会1周年(2周年・3周年…)まで 30日以内 のお客様を一覧表示。情報のみで操作ボタンは置かず、残り日数や具体的な周年日付も表示しません(運用の柔軟性を保つ設計)。CRMでティアが外れている方は警告アイコン付き。
※ 該当者 0 名のときは、このウィジェット自体をダッシュボードに表示しません(雑音にならないよう)
既存の顧客編集モーダルに「入会日」と「予約特典の本年度状況」を追加。入会日は CRM webhook(PCティアになった瞬間)または初回ログイン情報送信時 に自動セット。管理者は必要に応じて手動修正も可能(既存ユーザーのバックフィル誤差等の救済用)。
3つのアプリ(PCサイト・PC管理サイト・コミュニティサイト)は同じ users テーブルを共有しているため、コミュニティ会員からのアップグレードでも漏れなく入会日が記録されるよう、複数のトリガーから設定します。
memberTier === 'private_club' & 既存の pcEnrolledAt が空のとき自動セット。tierChangedAt を優先採用、なければ webhook 受信時刻。
pcEnrolledAt がまだ空なら、初回送信時にセット。role === 'admin')のお持ちの方のみ顧客編集モーダルから変更可能。
| シナリオ | 入会日のセット元 | 結果 |
|---|---|---|
| ① 完全新規でPC入会 コミュニティ会員ですらない方 |
トリガー1(CRM webhook) | ✓ 正しく記録 |
| ② コミュニティ→PCアップグレード 既にコミュニティでログイン済み |
トリガー1(CRM webhook) | ✓ アップグレード日が入会日として正しく記録 |
| ③ コミュニティ→PCアップグレード webhookが何らかで失敗 |
トリガー2(初回ログイン情報送信) | ✓ フェイルセーフで記録 |
| ④ PC会員のティア継続更新 同じPCティアで契約更新 |
—(既に値があるので変更なし) | ✓ 元の入会日を保持 |
| ⑤ ログイン情報の再送(パスワード再発行) | —(既に値があるので変更なし) | ✓ 元の入会日を保持 |
| ⑥ 既存PC会員(マイグレーション時) v5 リリース前から在籍 |
マイグレーション時に loginInfoSentAt を暫定採用 |
△ 不正確の可能性 → 必要なら手動修正 |
| ⑦ 降格→再アップグレード PC→general→PC のような変動 |
—(元の値を保持する設計) | ⚠ 元の入会日を保持(要件次第で変更可) |
面談予約から記録までの一連のフローです。Googleカレンダー側はそのまま現状維持で、サイトの世界観だけきれいに整えます。
小さくまとめれば、データベース1マイグレーション・お客様サイト2ファイル・管理サイト1ファイルの修正で完了する想定です。
users.pc_enrolled_at (timestamp, nullable)— 入会日pc_benefits.booking_url (text)pc_benefits.booking_button_label (varchar(50))pc_benefits.usage_period (varchar(20), default 'lifetime')loginInfoSentAt から backfill)benefits-list-view.tsx にヒーロー分岐追加data/benefits.ts で記念日基準の本年度集計を実装pcEnrolledAt 自動セット」処理を追加send-login-info に「初回時のみ pcEnrolledAt セット」処理を追加(フェイルセーフ)