最終更新: 2026-05-10

家族向け記録通知(閲覧パターン最適化・遅延ディスパッチ)

<!-- UPDATED_AT --> 2026-05-10

職員が記録保存後に「家族へ通知」を選んだとき、即時に連絡帳へ送らず、家族ユーザーの過去30日の閲覧時間帯から算出した「届きやすい時間」に family_notification_logs へスケジュールし、Vercel Cron が到来時に contact_messages へ挿入する流れです。外部AI(Gemini)は使用しません(閲覧ログの集計とルールのみ)。

---

仕様の正(ソース)

---

データベース

主なオブジェクト:

---

環境変数(Vercel / vercel dev

---

Vercel Cron(vercel.json

| パス | スケジュール(UTC) | 備考 |

|------|---------------------|------|

| /api/family-notification-dispatch | 30 21 * * * | 1日1回(Hobby プランでは「1日複数回」の Cron が拒否されるため。高頻度が必要なら Pro プランまたは外部スケジューラを検討) |

Cron から呼ぶときは Vercel 側で CRON_SECRET が設定されていれば、リクエストに同じ Bearer が付与される想定です。

---

スモーク手順(開発・本番)

1. マイグレ適用済みであること(family_notification_logs が存在)

2. 職員で記録保存 → 家族通知をトリガー(UI または save-staff-action 経路)

3. Supabase Table Editor で family_notification_logs に行が追加され、scheduled_for が未来時刻になっていること

4. GET /api/family-notification-dispatchCRON_SECRET 付きで実行(または Cron 実行後)、該当行の notified_at が埋まり、contact_messages に家族向けメッセージが増えること

curl 例(本番 URL とシークレットは置き換え):


curl -sS -H "Authorization: Bearer YOUR_CRON_SECRET" "https://(本番ドメイン)/api/family-notification-dispatch"

---

知財・法務メモ

---

関連索引