---
sidebar_position: 10
title: "サポートケース"
---

# サポートケース

ポータルが顧客のサポートケースを表示・作成する方法を説明します。

## データソース & スコープ

- ケースはSalesforceで直接読み書きされます。Originは「Portal Support」に設定。
- ポータルは顧客のマッピングされたSalesforce Accountのケースのみ表示し、顧客間のデータ漏洩を防ぎます。

## ケースの作成

- 必須入力：件名と説明。オプション：カテゴリ/タイプと優先度。
- ポータルがSalesforceにStatus = Newでケースを作成。

## ケースの表示

- ケースはRedisキャッシュ付きでSalesforceから取得。
- オープン vs クローズの件数をサマリー表示し、高優先度ケースをハイライト。

## Platform Eventsによるリアルタイム更新

サポートケースはPlatform Eventsを使用してリアルタイムキャッシュ無効化を行います：

**Platform Event:** `Case_Status_Update__e`

**BFFの動作：**
1. `support:cases:{accountId}` キャッシュを無効化
2. `support:messages:{caseId}` キャッシュを無効化
3. SSE `support.case.changed` を接続中のポータルに送信
4. ポータルがケースデータを自動的に再取得

## キャッシュ戦略

| キャッシュキー | TTL | 無効化タイミング |
| --- | --- | --- |
| `support:cases:{accountId}` | 2分 | ケース作成時 |
| `support:messages:{caseId}` | 1分 | コメント追加時 |

## 顧客向けステータスマッピング

| Salesforceステータス | ポータル表示 | 意味 |
| --- | --- | --- |
| 新規 (New) | New | 新しいケース、未レビュー |
| 対応中 (In Progress) | In Progress | サポートが対応中 |
| Awaiting Approval | In Progress | 内部ワークフロー（非表示） |
| 完了済み (Replied) | Awaiting Customer | サポートが返信済み、顧客の回答待ち |
| Closed | Closed | ケースクローズ |

## ケース会話（メッセージ）

ケース詳細ビューには統合された会話タイムラインが表示されます：

1. **EmailMessages** — ケースに添付されたメール交換
2. **CaseComments** — 顧客またはエージェントが追加したコメント

### 機能

- **日付グループ化**：メッセージは日付でグループ化（Today、Yesterday、日付表示など）
- **添付ファイルインジケーター**：添付ファイル付きメッセージにクリップアイコン表示
- **メール本文のクリーニング**：引用返信チェーンを自動的にストリップし最新の返信のみ表示

## エラー時の動作

- Salesforce利用不可：「サポートシステムが利用できません、後でやり直してください」を表示。
- ケースが見つからないまたは別のアカウントに属する：情報漏洩を防ぐため「ケースが見つかりません」で応答。
