<!-- https://unlockos.io/ja/manual/notification-workflow -->

# 通知ワークフロー ヘルプ

## 概要

**通知ワークフロー**は、予約に紐づく自動通知（ゲスト向け・オーナー向け）を施設側で管理できる機能です。「予約開始の24時間前にリマインダー」「承認待ちの予約が入ったらオーナーに通知」のような設定を、**アンカーイベント（いつ起きるか）＋オフセット（何分/時間ずらすか）＋チャネル（どの手段で送るか）** の組み合わせで表現します。

サイドバーの「🔔 通知ワークフロー」から `/notifications` を開きます。

---

## 4つのタブ

| タブ名 | 説明 |
|-------|------|
| ワークフロー | 通知の一覧・ON/OFF切り替え・編集・カスタム通知の追加 |
| メッセージ | 通知本文（件名・メール本文・SMS文面・音声スクリプト）を名前を付けて作成・編集・削除 |
| 履歴 | 過去7日〜未来1日の送信状況（待機/送信中/送信/失敗/キャンセル）と月次課金額 |
| チャネル | LINE / Email / SMS / Voice / スピーカーの接続状況カードと設定画面へのリンク |

---

## ワークフロータブ

### 標準（canonical）ワークフロー

全施設に **無効（enabled=false）** の状態で最初から用意されています。有効化はオーナーが個別に行います。標準ワークフローは削除できませんが、名前・アンカー・オフセット・チャネル・メッセージは編集できます（受信者だけは固定です）。

**ゲスト向け（4種類）**

| ワークフロー | いつ | 用途 |
|---|---|---|
| 予約前日リマインダー | 予約開始の24時間前 | 予約を忘れないように案内 |
| チェックイン案内 | 予約開始の10分前 | チェックイン方法を案内 |
| お片付け依頼 | 予約終了の5分前 | 退出前のお願い |
| ご利用ありがとうメッセージ | 予約終了時 | お礼メッセージ |

**施設管理者（オーナー）向け（6種類、詳細は次章）**

- 新規予約が入った
- 承認待ちの予約が入った
- 承認待ちが12時間放置されている（リマインダー）
- 決済が完了した
- 予約がキャンセルされた
- 予約が延長された

### 受信者（オーナー通知の設定方法）

編集モーダルの **「受信者」** ドロップダウンで「施設管理者」を選ぶと、その通知は予約者（ゲスト）ではなく施設のオーナーに届きます。一覧では対象の通知に「施設管理者」バッジが表示されます。

> **標準ワークフローは受信者を変更できません**（ドロップダウンが無効化されています）。標準の施設管理者向け6種類は最初から「施設管理者」に固定されています。受信者を選べるのは新規カスタムワークフローを作成するときだけです。

### 誰に届くか（宛先解決）

「施設管理者」宛の通知は、以下の順で解決した宛先**全員**に送られます。

1. その施設の **Facility Owner（施設オーナー）** 全員
2. Facility Owner が1人もいない場合は、所属組織の **Organization Owner（組織オーナー）** 全員
3. どちらもいない場合は配信失敗として記録されます（履歴タブで確認できます）

旧来の「施設管理者」担当者設定（`facility_manager_id`）は使われません。ログイン権限で使われているのと同じロールモデルで宛先が決まります。

### チャネル（オーナー通知は現状Email固定）

編集モーダルでチャネルを「自動選択」のままにしていても、**施設管理者向け通知は現状すべてEmail（Resendによる HTMLメール）で届きます**。ゲスト向け通知の「自動選択」はLINE連携済みのゲストならLINEに流れますが、オーナー宛の宛先解決はLINEアカウントを見に行かない設計のため、オーナー個人がLINE連携していてもLINEには届きません（今後のアップデートで対応予定）。

### アンカーイベント

ゲスト向け通知は「予約開始/終了の◯分前」のような**時刻**を起点にしますが、施設管理者向け通知は予約に**起きた出来事そのもの**を起点にします。

| アンカー | 発火するタイミング |
|---|---|
| 新規予約 | 予約が作成されたとき |
| 承認待ち | 承認制の予約が承認待ちの状態になったとき |
| 決済完了 | ゲストが決済して予約が確定したとき（下記の注意を参照） |
| キャンセル | 予約がキャンセルされたとき |
| 延長 | 予約の利用終了時刻が後ろ倒しされたとき |

> **「決済完了」は実際に決済された予約でのみ届きます。** 手動確定・無料プラン・会員プランなど、決済を伴わずに予約が確定したケースでは送られません。また、チェックイン時精算（後払い）の予約は、確定した時点ではまだ未決済のため、この通知の対象にはなりません。

### 承認リマインダーの自動キャンセル

「承認待ちが12時間放置されている」通知は、承認待ちになってから12時間後に届く設定です。その前にオーナー自身が承認または却下すると、このリマインダーは自動的にキャンセルされます。無駄な催促メールが届くことはありません。

### ワークフロー名

一覧・編集モーダル・履歴タブに出るのは **ワークフロー名** です。標準ワークフローには最初から名前が付いていますが、施設の呼び方に合わせて自由に変更できます（例:「チェックイン案内」→「入室のご案内」）。

内部の識別子は画面に出しません。新規作成時に自動で採番され、後から変わることはありません。

### カスタムワークフロー

標準以外に、施設独自の通知を追加できます。ワークフロー名、アンカーイベント、オフセット、チャネル、受信者、メッセージを自由に設定可能です。作成後は一覧から削除もできます（削除しても送信履歴は残ります）。

### メッセージの紐付け

編集モーダルの **「メッセージ」** ドロップダウンで、そのワークフローが送る本文を選びます。まだ 1 件もメッセージを作っていない場合は「利用できるメッセージがありません」と表示され、メッセージタブへのリンクが出ます。

**メッセージが未設定のワークフローは有効化できません。** 本文が無いまま有効化すると、受信者には何も届かないのに送信済みとして扱われてしまうためです。

---

## メッセージタブ

メッセージはカード形式で並びます。カードにはメッセージ名・紐づいているワークフロー（未割当なら「未割当」）・件名の抜粋・入力済みの言語が表示され、鉛筆アイコンで編集、進入禁止アイコンで削除できます。

「+ 新規メッセージ」から作成します。編集モーダルでは以下を設定します。

| 項目 | 説明 |
|---|---|
| メッセージ名 | 一覧やワークフローのドロップダウンに出る名前（必須） |
| ワークフロー | 紐づけるワークフロー。「未割当」のまま保存し、後から紐づけることもできます |
| 件名 / 本文 / SMS本文 / 音声スクリプト | チャネル別の本文。日本語・英語を切り替えて入力します |

プレビューでサンプル変数が展開された表示を確認できます。

### 1つのメッセージは1つのワークフローだけ

メッセージとワークフローは **1対1** です。紐付けはどちらの画面からでも設定できます。

- ワークフロー編集モーダルの「メッセージ」ドロップダウン
- メッセージ編集モーダルの「ワークフロー」ドロップダウン

既に別のワークフローに紐づいているメッセージを選ぶと、**確認モーダル**が出ます。そのまま進めると、元のワークフローはメッセージが未設定になり、自動的に無効化されます（本文が無いまま有効なワークフローを残さないためです）。

メッセージを削除した場合も同様に、紐づいていたワークフローは未設定・無効の状態になります。

### 使用できる変数

| 変数 | 内容 |
|---|---|
| `{{guest_name}}` | 予約者名 |
| `{{start_time}}` | 予約開始時刻（施設のタイムゾーンで整形） |
| `{{end_time}}` | 予約終了時刻（施設のタイムゾーンで整形） |
| `{{facility_name}}` | 施設名 |
| `{{room_name}}` | 部屋名 |
| `{{approval_url}}` | 承認画面へのリンク（**承認系のオーナー通知でのみ**使用） |

`{{approval_url}}` は「承認待ちの予約が入った」「承認待ちリマインダー」の2つの標準通知にのみ含まれています。ゲスト向け通知やその他のオーナー通知には含める必要はありません。

---

## 履歴タブ

過去7日〜未来1日分の送信状況を一覧表示します。状態（待機／送信中／送信／失敗／キャンセル）・発火時刻・ワークフロー名・チャネル・試行回数・課金額を確認できます。スマートフォンではカード表示に切り替わります。失敗した行にはエラーコードとヒントが表示されます。上部には当月の従量課金合計（SMS送信数・スピーカー再生回数など）がサマリ表示されます。

---

## チャネルタブ

チャネルがカード形式で並びます。各カードから該当チャネルの設定画面に移動できます。

| チャネル | 設定画面 | 課金 |
|---|---|---|
| LINE | LINE連携設定 | 無料 |
| Email | 基本設定（送信元アドレス確認） | 無料 |
| SMS | Twilio連携設定 | ¥25/セグメント（BYO契約なら顧客直課金） |
| Voice | Twilio連携設定 | ¥60/分（BYO契約可） |
| スピーカー | スピーカーチャネル管理（デバイスとアナウンス内容） | ¥3/回 |
| Webhook | [Webhook通知チャネル](webhook-channel.md) | 無料 |

> スピーカーを**いつ鳴らすか**は、このページのワークフロータブで設定します。スピーカーチャネル管理の画面では、デバイスの登録とアナウンス内容（読み上げる音声）の管理のみを行います。

> **Webhookカードは施設が所属する組織で `notification_webhook_channel` フィーチャーフラグが有効な場合のみ表示されます。** LINE・Email・SMS・Voice・スピーカーと異なり、Webhookは「人に通知する」チャネルではなく外部システムへイベントを連携するチャネルです。詳しくは[Webhook通知チャネル](webhook-channel.md)を参照してください。

---

## よくある質問

### Q: LINE連携設定にある「管理者通知設定」と、この「施設管理者」向け通知は同じものですか？

A: **別の機能です。** LINE連携設定の「管理者通知設定」は、チェックイン/チェックアウト/決済失敗をLINEで管理者に知らせる従来からの機能です。一方、通知ワークフローの「施設管理者」向け通知は、新規予約・承認待ち・決済完了・キャンセル・延長といった**予約イベント**を対象にした新しい仕組みで、現状はEmailのみで届きます。両方を有効にしても通知が重複することはありません（対象イベントが異なります）。

### Q: 標準の施設管理者向け通知の受信者を「ゲスト」に変更できますか？

A: できません。標準（canonical）ワークフローは受信者・アンカーイベントの組み合わせが定義の一部になっているため固定です。ゲスト向けに似た通知を作りたい場合は、カスタムワークフローとして新規作成してください。

### Q: 施設にオーナーが誰もいない場合、通知はどうなりますか？

A: Facility OwnerもOrganization Ownerもいない施設では配信に失敗し、履歴タブに失敗として記録されます。まずはサポートにご連絡のうえ、施設オーナーまたは組織オーナーを設定してください。

### Q: 承認待ちリマインダーを止めたいのですが、無効化以外に方法はありますか？

A: 承認または却下すれば自動的にキャンセルされます。手動で止める必要はありません。今後届く通知自体を止めたい場合は、ワークフロー一覧でON/OFFを切り替えてください。

### Q: Webhookチャネルはどこで設定しますか？

A: 配送先（送信先URL・署名鍵）の登録はチャネルタブのWebhookカードから、どのイベントで送信するかはワークフロータブの編集画面でチャネルに「Webhook」を選んで設定します。詳しくは[Webhook通知チャネル](webhook-channel.md)を参照してください。

### Q: スピーカーで流すアナウンスの時刻はどこで設定しますか？

A: このページの**ワークフロータブ**です。「+ 新規ワークフロー」からチャネルに「スピーカー」を選び、対象デバイスとアナウンス内容を指定してください。LINEやEmailとまったく同じ手順です。スピーカーチャネル管理の画面で行うのは、デバイス登録とアナウンス内容の管理の2つだけです。

### Q: 予約がキャンセルされたら、予定されていたアナウンスは鳴りますか？

A: 鳴りません。予約をキャンセルした時点で、その予約に紐づく未配信のスピーカー通知は自動的に取り消されます。ただし、配信直後のごく短い時間にキャンセルした場合は、スピーカー本体に届いた音声が1回だけ再生されることがあります。

---

## 関連ページ

- [LINE連携設定](line-connection.md)
- [LINE通知](line-notifications.md)
- [Webhook通知チャネル](webhook-channel.md)
- [スピーカー通知チャネル](space-speaker.md)
- [基本設定](base-settings.md)
- [予約管理](booking.md)
- [請求管理](billing.md)
