講座運営 / ステップ配信メッセージ
講座運営 / ステップ配信メッセージ
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
ステップ配信メッセージは、配信用横断軸(account)に所属する講師が、受講者への特定タグ付与をトリガーとして、入会後 N 日目・特定時刻に複数ステップで自動配信するシナリオ配信機能。「入会直後の挨拶 → 1 日後にコンテンツ案内 → 3 日後に活用 Tips → 7 日後に課題提示」のような、時系列で組み立てたシナリオを自動配信する。
主な利用想定は、新規受講者向けのオンボーディング、特定行動(コンテンツ受講完了 等)を起点とした次の動機付け、長期受講者へのフォロー連絡、無料体験中ユーザーの本契約促進など。一斉配信(./bulk-delivery.md)が「全員に同じ内容を一度に送る」機能であるのに対し、本機能は「個別の受講者ごとに、その人に固有のタイミングで段階的に送る」機能。
配信用横断軸(account)所属が必須: 一斉配信と同じく、通常の講座権限(メイン講師 / サブ講師)だけでは利用できない。配信用横断軸に所属していることが前提。配信先講座も account 配下のみ対象。
同一ユーザーの再周回: 一度シナリオを完走した受講者を、同じシナリオで再度初めから走らせる仕組みは現時点で提供していない。改めてフォロー配信したい場合は別シナリオとして作成する運用となる。
📝 レビュー観点:
- 目的: 受講者の行動・属性に応じたシナリオ配信(オンボーディング・継続率向上)
- 誰が使うか: 配信用横断軸(account)配下の講師
- どこで使うか: 講座詳細画面のステップ配信タブ、専用編集画面
- 隣接機能との関係: 一斉配信(
./bulk-delivery.md)、オファー(./offer.md)- CS 問い合わせで頻発する論点: 「ステップが進まない」「即時配信ステップとは」「同日内ステップの並び順」「集計が遅延する」
- [本機能特有] トリガータグ + フィルター条件の AND: 両方を満たすユーザーのみが対象
- [本機能特有] ステップ送信状態
deliveried_step_no管理: ユーザーごとに「次の送信ステップ」を進めていく- [本機能特有] 24h 滞留検知: SENDING で 24h 滞留したものは自動復帰
利用シナリオ
シナリオ 1: 入会直後の自動オンボーディング配信を組む
配信用横断軸所属の講師が、新規受講者向けのオンボーディングシナリオを作成。「即時配信 → 1 日後 10:00 → 3 日後 10:00 → 7 日後 10:00」のように複数のステップを並べ、それぞれにメール / DM の内容を設定。新規入会のタグが付与された受講者から自動的にシナリオが開始される。
シナリオ 2: 特定タグの付与でシナリオを始動する
入会以外の特定行動(特定コンテンツの受講完了 / 特定の購入 / 一定期間の無受講 等)をトリガータグとして指定し、該当受講者にだけシナリオ配信を実行する運用。タグ付与は別の運営アクション(運営アドミン経路 / 自動付与処理)で行い、本機能は配信実行を担当する。
シナリオ 3: 既存シナリオに追加ステップを足す
進行中のシナリオに新しいステップを追加することで、フォローアップ配信を拡張可能。既に過去のステップを通過した受講者には新ステップは届かない(送信状態は内部に管理されており、新規追加分は次の日数到達時に届く)。
シナリオ 4: 配信エラー時の運用対応
シナリオ実行中に配信処理エラーが発生した場合、運営担当者へ即時通知が飛ぶ仕組み(v2.30.0 で追加)。長時間滞留している配信状態についても自動的に検知され、復帰処理が走る。受講者・講師側からは特に追加の操作は必要ない。
シナリオ 5: シナリオの稼働 / 停止 / 削除
シナリオは下書き状態で内容を整え、稼働状態に切り替えると配信が始まる。途中で停止・削除も可能。停止後は新規受講者へのトリガー検出が止まり、削除後は集計データのみ内部に保持される。
よくある失敗ケース
- トリガータグ未指定で稼働化: トリガー条件が 1 件も指定されていないと稼働化できない(画面側でブロック)
- ステップ内容未入力で稼働化: メールの件名・本文が空のままで稼働化しようとするとエラー
- 同日(0 日後)ステップの時刻整合: 同じ日に複数ステップを配置する場合、後のステップの時刻が前のステップより遅い必要がある(画面側でチェック)
- トリガーから外れた受講者の扱い: トリガー条件に合致しなくなった受講者は、シナリオから自動的に外れて以降のステップは配信されない
- 再周回(同じシナリオを再度走らせる)の不可: 一度完走した受講者の再シナリオは現状不可
権限別仕様
権限定義は ../user-roles.md 参照。配信用横断軸の詳細は ../user-roles.md#配信用横断軸account。
講座権限軸 × 配信用横断軸(account)
| 操作 | 未受講者 | 受講者 | サブ講師(account 無) | サブ講師(account 配下) | メイン講師(account 無) | メイン講師(account 配下) |
|---|---|---|---|---|---|---|
| ステップ配信の作成 / 編集 / 削除 | × | × | × | ○ | × | ○ |
| ステップ配信の閲覧 | × | × | × | ○ | × | ○ |
横断軸
| 操作 | 運営アドミン | テストユーザー | 投稿禁止 |
|---|---|---|---|
| ステップ配信の代理操作 | ×(運営アドミン専用経路なし) | × | × |
📝 レビュー観点:
- 一斉配信と同じく 配信用横断軸(account)必須
- account 配下講座のみ対象
機能詳細(ふるまい)
ステップ配信作成
入力項目:
- タイトル: シナリオ名(管理用、1〜100 文字)
- 配信先講座: 配信用横断軸の対象講座から選択
- トリガータグ: シナリオ起動の起点となる受講者属性タグ(1 件以上必須、複数指定で AND)
- フィルター条件: トリガー合致後の追加絞り込み条件(任意)
- 配信方法: メール / DM の選択
- ステップ群: 各ステップの配信内容(メール件名・本文・差出人名・DM 本文等)と配信タイミング
ステップ追加・編集
各ステップで指定できる項目:
- N 日後: トリガー合致からの経過日数(1〜365 日)
- 配信時刻: 時(0〜23)+ 分(0〜59)
- 即時配信ステップ: トリガー合致時に即座に配信するフラグ
- メール内容: 件名 / 本文 / 差出人名
- DM 内容: 配信元講師・配信先・本文(テキスト / 画像 / PDF)
ステップは順序付きで管理され、画面上で並び替え・追加・削除が可能。
自動送信(バッチ)
- システム側のバッチが定期的に動作し、各シナリオの配信タイミングを評価
- トリガー合致受講者を検出すると、該当受講者を「対象者リスト」に登録し、ステップ送信状態を内部に持つ
- 各ステップの配信日時に到達した受講者から順に、メール / DM を送信
- ステップ送信状態は「次に届けるべきステップ番号」として内部管理され、過去ステップの再送信や次ステップの飛ばし送信は発生しない
- 失敗時は内部 Slack 通知 + 自動復帰(v2.30.0 で運営への即時通知が強化された)
集計
- ステップ単位で「送信数 / メール開封数 / メールクリック数 / DM 既読数 / DM クリック数」を内部に保持
- シナリオ全体としての到達状況を、ステップごとに振り返ることが可能
- 集計値はバッチ処理を通じて段階的に更新されるため、配信直後にすべての値が即座に反映されるわけではない
トリガーから外れた受講者の扱い
- 一度トリガーに合致した受講者がその後タグから外れた場合、シナリオの対象から外れて以降のステップが届かなくなる
- 再びタグが付与されてもシナリオは再実行されない(再周回不可)
配信エラー時の挙動(v2.30.0)
- 配信処理中の例外発生時、運営担当者へ即時 Slack 通知が飛ぶ仕組みが追加された
- 長時間滞留している配信状態も内部で検知し、自動的に復帰処理が走る
- 受講者・講師側からは追加操作は不要
制限値(上段サマリ)
- タイトル: 1〜100 文字(必須)
- ステップ名 / メール件名 / 差出人名: 100 文字以内(画面の文字数制限)
- 配信日数: 1〜365 日
- 配信時刻: 0〜23 時 / 0〜59 分
- DM 本文: 5000 文字以内
- トリガータグ: 1 件以上必須
📝 レビュー観点:
- 入力 → 処理 → 出力: トリガー合致 → 各ステップを N 日後に自動送信 → 集計
- エッジケース: 同日(days=0)の時刻整合(FE のみ強制チェック)、トリガー 0 件(BE は通す)、トリガーから外れたユーザーの扱い
- エラー表示: バッチ失敗時は内部 Slack 通知、24h 滞留 SENDING の自動復帰
- [本機能特有] FE/BE 制限値乖離: ステップ名・件名・差出人名は FE のみ制限
- [本機能特有] 同一ユーザーの再周回不可:
deliveried_step_noリセット機構なし
admin 操作
該当なし
- ステップ配信に関する運営アドミン専用の操作経路は存在しない
📝 レビュー観点:
- 運営アドミン側からの介入経路(停止 / 集計再計算 / トリガー再評価)の必要性
品質 / 約束事項
- 応答性: 編集・保存は即時。送信実行はバッチ実行
- 信頼性: バッチは内部的に二重起動防止・滞留検知・失敗時自動復帰
- 制限値:
- タイトル: 1〜100 文字
- ステップ N 日後: 1〜365 日
- 時刻: 0〜23 時 / 0〜59 分
- DM 本文: 5000 文字
- データ保持: 論理削除、ステップ送信状態・集計は内部的に保持
📝 レビュー観点:
- [本機能特有] 滞留検知: 24h SENDING 滞留で自動復帰
- [本機能特有] 同日内ステップの時刻整合チェック: FE のみ
変更履歴(リリースノート候補)
v2.30.0: 2026-05-05
- [修正] 配信メールのフッターが表示されないことがある不具合を修正(FIN-244)。送信時のテンプレート組み立て経路でフッター部分が欠落するケースに対応
- [改善] ステップ配信のエラー発生時に運営側へ即時通知される仕組みを追加(FIN-268)。配信処理中に例外が発生したとき、運営の Slack に詳細通知(スタックトレース等)が飛ぶようになり、滞留や失敗の検知・対応が早まる。受講者・講師側の挙動には変化なし
v2.29.2: 2026-05-02(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(即時配信ステップ導入 / 分単位対応 / DM 配信導入 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./bulk-delivery.md— 一斉配信./offer.md— オファー / キャンペーン