1. 全体概要
このプロジェクトで変わる本質は、「Discord参加手順」ではなく、会員認証の主導権が Discord / エルメ から 新会員サイト へ移ることです。
現時点でほぼ確定していること
- 共通招待リンクは廃止できる。
- 既存会員の Discord ID は基本そのまま移行する想定。
- 退会・休会・決済失敗の扱いは分ける。
- セットアップガイド・LP・Bot回答・CSテンプレは更新する。
- テスト設計は必須。
この変更で減らしたい課題
- メールアドレス入力ミス
- アドレス不一致対応
- 「送信前で止まる」離脱
- New User滞留や謎アカウント対応
- CS / Discordチームの手動確認工数
2. 会員様向けの体験
理想は「会員様が会員サイトでボタンを押すだけ」に近づけることです。初回のみ Discord 認証が必要ですが、従来のメールアドレス送信作業は原則不要になります。
初回参加時の想定フロー
会員様にとって楽になる点
- Discord内でメールアドレスを送る必要がなくなる。
- 翌日照合待ちの不安が減る。
- 「会員情報確認中」のやり取りが大幅に減る。
- 導線の主役が会員サイトになるので迷いにくい。
会員様に残る操作
- 初回の Discord 認証
- Discordへログインしていない場合のログイン
- 必要に応じた再招待リンクの再取得
退会後の会員様の作業
基本的に会員様の追加作業は不要です。システム側で会員ステータスを検知し、会員ロール剥奪 → 追放(または場合によってはBAN)を実施する想定です。
3. 開発者向けの技術前提
技術的にはかなり実現可能です。重要なのは、「招待リンクを踏んだら即ロール付与」ではなく、参加後に Discord ID を照合してから会員ロールを付けることです。
| 項目 | 技術可否 | 補足 |
|---|---|---|
| Discord OAuth2でDiscord ID取得 | 可能 | 会員サイト側で連携済み |
| 新会員サイトにDiscord ID保存 | 可能 | 会員情報との紐づけが中核 |
| 個別招待リンク自動発行 | 可能 | 1回限り・期限付きに寄せる |
| max_uses / max_age 制御 | 可能 | max_uses=1, max_age指定で実装 |
| Botによるロール付与・剥奪・追放・BAN | 可能 | 権限とロール階層設計が必要 |
| 退会ステータス検知 | 可能 | Webhook または 定期バッチ |
安全なロール付与の考え方
- 会員サイトで Discord OAuth2 連携
- Discord ID を会員サイトDBへ保存
- 1回限り・期限付き招待リンクを発行
- 参加イベントで入ってきた Discord ID を取得
- DBの Discord ID と一致したら会員ロール付与
やってはいけない設計
- 招待リンクを踏んだだけで会員ロール付与
- 誰でも Discord ID 連携解除できる
- 規約違反BANと通常退会を同じ復帰フローにする
- 管理ログを残さない
4. 会員サイト管理画面に持たせたいもの
ここがまだ未確定の大きな論点です。最優先は、CSとDiscordチームが問い合わせ対応で困らない最低限の検索・状態確認機能です。
最低限ほしい表示項目
- 会員ID
- 氏名
- メールアドレス
- Discord ID
- Discordユーザー名
- 会員ステータス
状態確認項目
- Discord連携状態
- Discord参加状態
- 会員ロール付与状態
- 最終連携日時
- 最終参加日時
- 最終処理ログ
検索できるべきキー
- メールアドレス
- 氏名
- Discord ID
- Discordユーザー名
- 会員ID
段階的な実装のすすめ
検索 / 状態確認 / ログ表示
招待リンク再発行 / ロール再付与
連携解除 / 追放 / BAN / ロール同期
5. SHIFT AI運営内で変更が必要そうなこと
今回の変更は Discord チームだけで完結しません。入学式、LP、セットアップガイド、Q&A、CS、質問Botなど、会員導線まわり全体の修正が必要です。
オンボーディング・案内系
- 入学式スライド
- 入学式当日の説明台本
- 3日前 / 1日前 / 当日リマインド
- セットアップガイド
- 旧LP / 案内ページ
- オリエンテーション動画
問い合わせ・サポート系
- 会員サイトQ&A
- AIメンター / 質問系Botの回答
- CS対応テンプレ
- Discordチーム用の確認フロー
- 障害時テンプレ
今後のKPI見直し候補
6. ステータス別の推奨処理
退会・休会・決済失敗・規約違反を同じ扱いにすると事故ります。少なくとも通常退会、休会、決済失敗、規約違反は分けるべきです。
| 状態 | 推奨処理 | 理由 / 補足 |
|---|---|---|
| 通常退会 | 会員ロール剥奪 + 追放 | 共通招待リンク廃止前提ならBANまで不要な可能性が高い |
| 休会 | 会員ロール剥奪、追放は要検討 | 復帰前提ならロールのみ外す案もあるが、SHIFT AI規模なら追放寄り |
| 決済失敗 | 即追放は避ける。猶予期間 + 通知 + 段階制限 | カード更新漏れや決済遅延による事故を避けるため |
| 再入会 | 会員サイトから再参加 / 必要なら再連携 | 通常退会者と規約違反者は復帰フローを分ける |
| 規約違反 / 荒らし / 不正利用 | BAN | 自動復帰不可 |
| 会員情報確認中 | 移行期の手動確認導線 | 新方式で縮小予定だが、完全移行までは残す可能性あり |
7. テスト端末・テストケース
今回の導線は、技術的に動くか以上に「初心者が迷わないか」が重要です。特にスマホ、Discord未ログイン、誤アカウント状態を必ず試すべきです。
最低限テストしたい端末・環境
- iPhone + Safari
- iPhone + Discordアプリあり
- iPhone + Discordアプリなし
- Android + Chrome
- Windows + Chrome
- Mac + Safari / Chrome
- Discordログイン済み / 未ログイン
- 別Discordアカウントでログイン中
必須で見たいポイント
- 会員サイトからDiscord認証まで迷わないか
- 参加リンクから正常に参加できるか
- 参加後にロールが付くか
- 誤連携時に誤ロール付与されないか
- 退会・再入会時の状態遷移が正しいか
| No | テストケース | 確認ポイント |
|---|---|---|
| 1 | 新規会員が会員サイトからDiscord連携 | 正常に Discord ID 保存 / 参加できるか |
| 2 | Discord未ログイン状態で連携 | ログイン導線で迷わないか |
| 3 | Discordアプリなしで参加 | Webでも完結できるか |
| 4 | 既にサーバー参加済み会員 | ロール再付与 / 状態整合が取れるか |
| 5 | 別アカウント誤連携 | 誤ロール付与されないか / エラー導線があるか |
| 6 | 招待リンク期限切れ | 再発行導線が分かりやすいか |
| 7 | 退会後 | ロール剥奪 / 追放が正しいか |
| 8 | 再入会後 | スムーズに再参加できるか |
| 9 | Bot障害時 | ロール未付与の検知 / 手動復旧ができるか |
| 10 | 会員サイト障害時 | 代替案内 / 一時停止時の運営判断があるか |
8. 懸念事項・盲点
技術的にできることと、運用として安定することは別です。今の時点で特に危ないポイントを整理しています。
既存会員データ移行の汚れ
- Discord IDが空欄
- 同じDiscord IDが複数会員に紐づく
- 退会済みデータが混ざる
- 会員情報確認中データの扱い
誤連携 / アカウント変更
- 違うDiscordアカウントで連携
- スマホとPCで別アカウント
- 会員自身が自由変更できる設計の危険性
Bot / 会員サイト障害
- 参加できたのにロールが付かない
- 会員サイトが落ちたら導線が止まる
- 復旧フローがないとCS問い合わせが爆発
ステータス運用の曖昧さ
- 決済失敗を即追放すると事故る
- 休会者をどう扱うか未定
- 通常退会と規約違反BANを混ぜると危険
9. まだ詰めたい確認事項
現時点でまだ運営・開発・CSの間で決め切れていない、または整理したい論点です。
運営判断
- 通常退会者は必ず追放するか
- 休会者はサーバーに残すか
- 決済失敗の猶予期間を何日にするか
- 会員情報確認中ロールをいつまで残すか
データ・システム
- 既存Discord IDデータの精度確認
- 管理画面にどこまで機能を持たせるか
- Webhookで行くか定期バッチで行くか
- ログ保存範囲と権限設計
サポート・導線
- 旧LP / 旧導線をどう閉じるか
- 招待リンク期限切れ時の案内
- 誤連携時のCS対応文言
- 障害時の一次案内テンプレ
10. 次アクションの優先順位
ここから先は、闇雲にHTMLや実装を増やすより、論点を順に潰した方が早いです。優先順は以下がおすすめです。
既存Discord IDデータの棚卸し
管理画面の最低限要件確定
退会 / 休会 / 決済失敗の運用定義
テストケース設計
ガイド / LP / Bot / CS文面更新
短期でやるべきこと
- 既存会員データの異常値チェック
- 管理画面の表示項目を先に決める
- 通常退会 / 休会 / 決済失敗の処理を確定する
その後にやること
- 端末別テスト実施
- 会員向けセットアップガイド更新
- CS / Bot回答 / FAQの更新