講座運営 / 一斉配信メッセージ
講座運営 / 一斉配信メッセージ
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
一斉配信メッセージは、講師(メイン / サブ)のうち「配信用横断軸(account)」に所属する講師が、自身の管理講座配下の受講者へメール・DM を一括で送信する機能。受講者属性(ユーザータグ等)の組み合わせで対象を絞り込み、対象人数の事前プレビュー、配信内容(メール本文 / DM 本文)の編集、予約日時の指定、送信後の開封・クリック等の集計確認までを一連の流れで運用できる。
主な利用想定は、新規コンテンツ公開時の告知、季節キャンペーンの案内、入会促進・継続促進、定期メンテナンス案内など。同一画面でメールと DM の同時配信ができ、対象者ごとの到達状況を確認しながら次回配信に活かせる。
配信用横断軸(account)所属が必須: 通常の講座権限(メイン講師 / サブ講師)だけでは利用できず、配信用横断軸に所属している講師のみが本機能を利用できる。この所属はビジネス側で運用する別軸の権限で、CS 対応では「一斉配信が使えない」相談時の最初のチェックポイントとなる。詳細は
../user-roles.md参照。
📝 レビュー観点:
- 目的: 講座運営でのお知らせ・促進を一斉配信
- 誰が使うか: 配信用横断軸(account)配下の講師
- どこで使うか: 講座詳細画面の受講者管理 / 一斉配信タブ、専用編集画面
- 隣接機能との関係: ステップ配信(
./step-delivery.md)、オファー(./offer.md)- CS 問い合わせで頻発する論点: 「配信できる講師の条件(account 所属)」「対象人数のプレビュー」「DM 既読・クリック数の集計が出ない」「件名・差出人名の文字数」
- [本機能特有] 配信用横断軸(account)必須: 通常の講師権限のみでは利用不可
- [本機能特有] BULK 配信は account_owner_plan で絞られる: 配信先講座は account 配下のみ
- [本機能特有] DM 既読・クリックの集計経路が未整備: メール側は SendGrid Webhook、DM 側は要確認
利用シナリオ
シナリオ 1: 受講者へお知らせメールを一斉送信する
配信用横断軸に所属する講師が、講座詳細画面の一斉配信タブから新規配信を作成。タイトル・配信先講座・対象条件・送信日時・メール本文を指定し、対象人数のプレビューを確認した上で予約配信として保存。指定日時にシステムが自動的にメールを送信する。
シナリオ 2: 特定属性の受講者に DM を配信する
ユーザータグなどの条件で受講者層を絞り込み、トーク機能の DM として一括メッセージを配信。テキスト・画像・PDF など講師が選んだ形式で送信できる。リアルタイム性が高く、メール開封よりトーク内通知で確実に届けたい連絡に向く。
シナリオ 3: メールと DM を同時に配信する
メールと DM の両方を有効化することで、同じ案件を 2 経路で同時配信。メールは長文の告知、DM は要点だけの誘導、といった使い分けで到達率を高めたいケースに利用する。
シナリオ 4: 過去配信のテンプレ流用と複製
過去に作成した配信内容を流用して新規配信を作成可能。シーズン更新時の定期告知や、文言を微修正して再送する運用に向く。
シナリオ 5: 送信後の集計を確認する
配信完了後、講師が結果画面で「送信数 / メール開封数 / メールクリック数」などの集計を確認できる。次回以降の配信内容・配信タイミングの改善に活用できる。
よくある失敗ケース
- 配信用横断軸に未所属: 一斉配信機能の画面が利用できない。CS 対応の最初のチェック項目
- 配信先に指定可能な講座が見つからない: 配信用横断軸の対象講座になっていない場合、配信先の選択肢に出てこない
- 配信条件で対象者 0 人: タグ条件の組合せ次第で該当者がいない場合、プレビュー時点で 0 人となる
- 配信方法(メール / DM)の指定漏れ: メールと DM のいずれもチェックなしで保存しようとするとエラー
- 件名・差出人名・本文の文字数オーバー: 各上限を超える場合は保存できない
- 送信中の編集 / 削除: 既に配信実行が始まっている配信に対する編集・削除は不可
権限別仕様
権限定義は ../user-roles.md 参照。配信用横断軸の詳細は ../user-roles.md#配信用横断軸account。用語は ../terminology.md。
講座権限軸 × 配信用横断軸(account)
| 操作 | 未受講者 | 受講者 | サブ講師(account 無) | サブ講師(account 配下) | メイン講師(account 無) | メイン講師(account 配下) |
|---|---|---|---|---|---|---|
| 一斉配信の作成 | × | × | × | ○ | × | ○ |
| 一斉配信の編集 / 削除 | × | × | × | ○(自配信のみ) | × | ○(自配信のみ) |
| 一斉配信の送信実行 | × | × | × | ○ | × | ○ |
| 一斉配信の閲覧 | × | × | × | ○ | × | ○ |
| 配信先講座の指定 | — | — | account 配下講座のみ | account 配下講座のみ | account 配下講座のみ | account 配下講座のみ |
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| 一斉配信の代理操作 | ×(運営アドミン専用経路なし) | × | × |
📝 レビュー観点:
- 配信用横断軸(account)の所属が必須: 通常の講師権限だけでは利用不可
- account 配下講座のみ対象:
account_owner_planで絞られる- 運営アドミン経路の有無を biz レビューで確定
機能詳細(ふるまい)
配信作成
入力項目:
- タイトル: 配信管理用の名称(受講者には見えない、講師の管理用)
- 送信日時: 予約送信の日時
- 配信先講座: 配信用横断軸の対象講座から選択
- 配信条件: 受講者属性(ユーザータグ)を組み合わせて対象を絞り込み(AND / OR の組み合わせ)
- 配信方法: メールのみ / DM のみ / 両方
- メール内容: 件名・差出人名・本文(リッチエディタで編集)
- DM 内容: 投稿者・配信先・本文(テキスト / 画像 / PDF)
ステータス: 下書き / 配信予定 / 停止 / 配信中 / 配信済 / 中断。
対象ユーザープレビュー
- 配信条件を指定すると、その条件に該当する対象人数を画面上で即時確認できる
- 配信実行前に「想定通りの対象者が含まれているか」を見て調整する用途
- 配信実行時は当該配信の確定時点での該当者に対して送信される
送信実行
- 予約日時に達したタイミングで、システム側のバッチが配信実行を開始
- 手動の即時送信機能は提供しておらず、予約配信のみ
- 配信実行中はステータスが切り替わり、配信完了後に「配信済」へ遷移
- 多重実行防止のため、同一配信が同時に複数走らないよう内部でロックがかかる
テスト送信
- 本番送信前に、講師自身宛にテストメールを送信できる
- 件名・本文・差出人名の見え方を本番送信前に確認する用途
集計
配信完了後、結果画面で以下の集計値を確認可能:
- 送信数: 配信対象として処理された件数
- メール到達数 / 開封数 / クリック数: 配信メールの受信・開封・本文中リンクのクリック集計
- DM 既読数 / クリック数: 表示は提供されているが、現時点の集計経路は整備が一部未着手の項目あり(CS 対応で「DM の既読集計が反映されない」相談を受けた場合は dev に確認)
制限値
- タイトル: 1〜100 文字(必須)
- メール件名: 100 文字以内(実質的に画面の制限)
- 差出人名: 100 文字以内(実質的に画面の制限)
- DM 本文: 5000 文字以内
- 配信条件: 1 件以上必須、かつ AND 条件は最低 1 件以上含めること
📝 レビュー観点:
- 入力 → 処理 → 出力: 編集 → プレビュー → 保存 → 予定時刻にバッチ送信 → 集計
- エッジケース: 対象 0 人、メール / DM どちらも未指定(FE のみチェック)、送信中の編集・削除
- エラー表示: バッチ失敗時は内部 Slack 通知、ユーザー向けメッセージは要確認
- [本機能特有] FE/BE バリデーション乖離: 配信方法 0 件チェック、件名・差出人名長さは FE のみ
- [本機能特有] DM 既読・クリックの集計経路: 未整備の可能性
admin 操作
該当なし
- 一斉配信に関する運営アドミン専用の操作経路は存在しない(要確認)
実装されていない
- 運営アドミンによる強制停止・配信取消: 専用経路なし
- 集計再計算経路: 専用経路なし
📝 レビュー観点:
- 運営アドミン側からの介入経路(停止 / 削除 / 再集計)の必要性
品質 / 約束事項
- 応答性: 編集・プレビュー・保存は即時。送信実行はバッチ実行(数分以内に到達想定)
- 信頼性: バッチは内部的に二重起動防止のロックで保護。失敗時は内部通知
- 制限値:
- タイトル: 1〜100 文字
- メール件名 / 差出人名: 100 文字(実質 FE 制約)
- DM 本文: 5000 文字
- 配信条件: 1 件以上、かつ少なくとも 1 件は AND 条件
- データ保持: 論理削除、配信内容・集計は内部的に保持
📝 レビュー観点:
- [本機能特有] FE/BE 制限値乖離: 件名・差出人名等は BE 未制約 → 改善課題
- 応答性: バッチ実行のタイミング保証
変更履歴(リリースノート候補)
v2.29.2: 2026-05-02(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(旧
bulk_message_deliveryテーブル統合 / DM 配信導入 /account横断軸導入 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./step-delivery.md— ステップ配信./offer.md— オファー / キャンペーン