Fincs

講座運営 / 一斉配信メッセージ

講座運営 / 一斉配信メッセージ

本ページは 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 横断軸導入 等)

関連ドキュメント


このページの内容を AI に質問しますか?
関連 spec を自動抽出して ChatGPT / Claude などに渡せます。
AI Prompt で開く →