# メール・LINE配信（LINE 周り）UTAGE 準拠ロードマップ

最終更新: 2026-05-03（左メニュー実装状況の反映）  

運用者が **一項目ずつ指示しなくても** 開発側が参照できるよう、**公開マニュアル・公式 API・本リポジトリの現状**から整理したものです。

---

## 前提（できること / できないこと）

| 項目 | 内容 |
|------|------|
| **UTAGE へのログイン** | 第三者の契約画面にエージェントがログインして操作することは **できません**（認証情報の取り扱い・規約のため）。 |
| **参照ソース** | [UTAGE マニュアル（LINE を配信したい）](https://help.utage-system.com/archives/23819)、[LINE 関連カテゴリ](https://help.utage-system.com/archives/category/faq/faq-mailline/faq-line1/page/2)、[LINE Messaging API / LINE Login 公式](https://developers.line.biz/)、本リポジトリの `docs/manual.md`・`routes/web.php`・`DeliveryAccount` 周り。 |
| **進め方** | 下記 **フェーズ** と **左メニュー対応表** を上から実装し、完了したらチェックと `docs/manual.md` の該当節を更新する。 |

---

## UTAGE 全体像（公開マニュアル要約）

1. LINE 公式アカウントを LINE Business ID で作成する。  
2. UTAGE（本プロジェクトでは **Monaka**）で **配信アカウント** を作り、種類は **LINE のみ / メール・LINE 併用** から選ぶ。  
3. **Messaging API**（Channel ID / Secret）と **Webhook**、**LINE Login** チャネル（別チャネル ID/Secret）を LINE Developers で設定し、システム側の Webhook URL を登録する。  
4. **シナリオ** を作成し、**LINE 登録ページ（友だち追加 URL）** を取得して導線に置く。  
5. 配信は **一斉 / ステップ / リマインダ** 等で LINE メッセージを作成する。  

**制約（UTAGE ヘルプと整合）:** 同一の LINE 公式アカウントを **複数の配信アカウントに同時連携できない**。1 アカウント内で複数シナリオ運用が前提。

---

## 左メニュー（アカウント選択後）→ UTAGE での意味 → Monaka の次アクション

| メニュー | UTAGE でのざっくり役割 | Monaka 現状 | 次の実装（優先度高い順） |
|----------|------------------------|---------------|---------------------------|
| **シナリオ管理** | シナリオ CRUD・グループ・並び | ✅ `scenario.index` 等 | 維持。必要なら UTAGE と同様のサブ導線を増やす。 |
| **LINEチャット** | 1対1トーク（応答は公式の応答機能と連動する旨が FAQ にある） | ✅ Webhook 保存・受信箱 UI・push／外部記録（詳細は `docs/funnel-spec.md` の `line-chat`） | 未読・ピン等の拡張、公式管理画面のみの応答は自動取り込みしない前提の運用継続。 |
| **LINE友だち** | 友だち一覧・属性 | ✅ 一覧・ラベル編集・配信切替・読者自動作成（`line-friends`） | CSV 出力など残タスク。 |
| **LINE自動応答** | キーワード応答等 | ✅ ルール CRUD・Webhook テキスト照合（`line-auto-reply`） | テンプレート送信の本実装など。 |
| **LINEリッチメニュー** | 複数リッチメニュー・デフォルト必須等 | プレースホルダ | [リッチメニュー API](https://developers.line.biz/ja/docs/messaging-api/using-rich-menus/)、デフォルト未設定時のエラーは UTAGE FAQ [例](https://help.utage-system.com/archives/16388) を参照。 |
| **LINEテンプレート** | テンプレートメッセージ管理 | プレースホルダ | テンプレート一覧・作成は Messaging API のテンプレート系に準拠。 |
| **LINEカスタム送信者** | 送信者名等のカスタム | プレースホルダ | 仕様確認（UTAGE ヘルプの該当記事を追加調査）後、DB 項目と API の対応を決める。 |
| **LINEアカウント** | Messaging API + LINE Login + Webhook + シナリオ紐付け等の **設定画面** | ✅ 設定フォーム＋保存・Webhook URL 表示・署名検証済み Webhook（`account.edit` 各種設定とは **LINE 項目を重複させない**） | 接続テスト UI の強化、LINE Developers 手順リンクの継続メンテ。 |
| **LINE通知設定** | 管理者通知等 | ✅ Chatwork/Slack/Discord 連携・テスト送信（`line-notifications`） | 追加チャネル・用途別の要望に応じた拡張。 |
| **LINE配信エラー** | 配信失敗ログ | プレースホルダ | Webhook の delivery イベント or 送信 API エラーログの永続化と一覧。 |
| **アクション管理** | シナリオ連動アクション | プレースホルダ | 既存 `Subscriber` / ステップとの関係を整理してから。 |
| **ラベル** | ユーザーラベル | ✅ シナリオ単位のラベル定義・友だち編集との連携（`label-settings`） | LINE 側タグ API との双方向同期は未着手の場合あり。 |
| **登録禁止設定** | ブロックリスト等 | プレースホルダ | DB + シナリオ登録時チェック。 |
| **アカウント内全情報** | 集計・エクスポート等 | プレースホルダ | 読み取り専用ダッシュボードから着手可。 |

---

## 実装フェーズ（エージェントがこの順で進める）

### フェーズ A — Webhook を「本物」にする（最優先）

- [x] `POST /api/webhook/line/{uid}` で **チャネルシークレットによる署名検証**（`X-Line-Signature`）。不正時は **400**、アカウント不明は **404**。ルートは **api スロットル外**（LINE のバーストで 429 にならないよう別登録）。  
- [x] 検証成功後のイベント処理（同期で `line_webhook_events` に一括 INSERT。重い処理は今後キューへ）。  
- [x] **全イベント種別**を `line_webhook_events` に保存（`event_type` / `source_*` / `line_timestamp` / `payload` JSON）。`debug` ログは併用。  
- [ ] LINE Developers の Webhook **利用（検証）** が通る応答仕様に合わせる（200 OK・タイムアウト内応答は既存方針で維持）。

### フェーズ B — LINE 登録ページ（友だち追加 URL）

- UTAGE STEP4 相当。シナリオ単位の **友だち追加用 URL**（LIFF / 公式の友だち追加 URL 方針）を決め、画面＋ルートを追加。  
- [ ] `docs/manual.md` に「LINE 登録ページの取得手順」を追記。

### フェーズ C — LINEチャット / 友だち一覧

- [x] 友だち一覧: プロフィール取得・一覧・ラベル編集（基本機能）。ページネーションや CSV は必要に応じて拡張。  
- [x] LINEチャット: 受信メッセージの表示・push 送信・外部送信記録（詳細は `docs/funnel-spec.md`）。

### フェーズ D — リッチメニュー・テンプレート・自動応答

- リッチメニューは **デフォルトメニュー** の存在チェック（UTAGE FAQ）を UI に反映。  
- テンプレート・自動応答は API とデータモデルを分割して実装。

### フェーズ E — 残りメニュー・サポート系

- SMS・サポートリンクは外部 URL または社内ドキュメントへ誘導でも可。

---

## UTAGE「LINE公式アカウント連携方法」の仕様要約（一次情報）

一次情報: [LINE公式アカウント連携方法 | UTAGEマニュアル](https://help.utage-system.com/archives/1820)（以下「1820記事」）

### 前提・制約（1820記事どおり）

- LINE配信を使うには **LINE公式アカウントとシステム側の連携** が必須。個人LINEは不可。
- 連携後に使える想定機能: 友だち管理、一斉／ステップ／リマインダ、リッチメニュー、自動応答、**1to1チャット** 等。
- **同一のLINE公式アカウントを、複数のメール・LINE配信アカウント（＝Monaka の送信用アカウント）に同時連携してはならない。**
- 運用は **LINEヤフー株式会社の規約・ガイドライン・禁止行為** に準拠（記事内リンク先を参照）。

### 手順の骨子（実装・ヘルプ文言の整合用）

| ステップ | 内容（要約） | Monaka での対応メモ |
|----------|--------------|---------------------|
| 1 | LINE公式アカウント管理画面で **Messaging API を利用する**。プロバイダー作成／選択。Channel ID / secret を控える（Webhook URL は手入力しない運用でも可）。 | Monaka は **Webhook URL を画面表示**し、**保存時に Messaging API へ自動登録**（`line-account`）。 |
| 2 | 送信用アカウントを選び **LINEアカウント設定** を開き、Messaging API の **Channel ID / secret** を貼って **保存** する。 | ✅ `line-account` フォーム。保存で Webhook URL を LINE に反映。 |
| 3 | **シナリオ設定**（友だち追加後／ブロック解除／導入前友だち）は任意・後から変更可。 | ✅ 3プルダウン＋注釈は1820の説明に合わせ済み。 |
| 4 | **経路分析・認証方式**。UTAGEは **LINEログイン認証を強く推奨**（大量同時登録時は特に）。簡易認証・画像認証は精度・既存友だちの扱いに制約あり。 | ✅ `line_login` / `simple` / `image`。実処理は未実装でも **保存値はUTAGEと同列挙**。 |
| 5 | **LINEログイン**チャネルを LINE Developers で新規作成（種類＝LINEログイン）。**Messaging API と同一プロバイダー**内に Messaging と LINEログインが共存すること必須。 | ✅ 画面に注意書き。 |
| 6 | LINEログインの **チャネルID・チャネルシークレット** を UTAGE の「LINEログインチャネル設定」に貼る（**Messaging API の値と別物**）。4箇所すべて **別々の値** であることを確認してから保存。 | ✅ フォーム分離。保存後の突合チェックUIは今後検討。 |
| 7 | LINE公式アカウントの **応答設定**: Webhook **利用する**、チャット／あいさつ／応答メッセージは **オフ推奨**（オンはUTAGE非推奨）。Webhook URL がシステム側と一致するか確認。 | **Webhook「利用する」**は公式管理画面のユーザー操作。Monaka は **Webhook URL の自動登録**・**Webhook受信・署名検証** 済み。画面に **ステップ7** 案内あり。 |
| 8 | テスト用シナリオ・ステップ（登録直後）→ **LINE登録ページのQR** で友だち追加→メッセージ到達・友だち一覧・1to1トーク受信を確認。 | **LINE登録ページ・友だち一覧・チャット受信箱**は実装済み。リッチメニュー等は別途。 |
| 9 | トラブルシュート（ID/secret取り違え、ログイン枠とMessaging枠の混同、Webhook OFF、プロバイダー不一致等）。 | ヘルプ・エラーメッセージに **1820記事へのリンク** を張ると運用しやすい。 |

### 1820記事と Monaka 画面の対応語

- UTAGEの「配信アカウント」＝ Monaka の **送信用アカウント**。
- 「LINEアカウント設定」＝ Monaka の **`/account/{id}/workspace/line-account`**（左メニュー **LINEアカウント**）。

---

## 公式・UTAGE リンク（ブックマーク用）

- [**LINE公式アカウント連携方法**（ステップ1〜9・トラブルシュート）| UTAGEマニュアル](https://help.utage-system.com/archives/1820)  
- [LINE を配信したい | UTAGE マニュアル](https://help.utage-system.com/archives/23819)  
- [メール・LINE配信カテゴリ | UTAGE マニュアル](https://help.utage-system.com/archives/category/faq/faq-mailline/page/18)  
- [LINE Developers](https://developers.line.biz/ja/docs/messaging-api/overview/)  

---

## 運用メモ

- **画面仕様の最終確認**は、ご利用の UTAGE 環境で実際に触れたスクリーンショットや「この画面だけ違う」を `docs/` に貼ると差分が取りやすいです（ログイン操作の代わり）。  
- 本ドキュメントは **実装の優先順位の合意用** です。仕様変更したら **同日中** に更新してください。
