コンテンツにスキップ

プッシュ通知

Jonotは、顧客のチケットがCALLEDに遷移するとシステム通知を送信します。ブラウザタブがバックグラウンドにあるときや、スマートフォンがロックされているときでも届きます。スキップされたチケットが呼び戻されて再度呼び出されたときにも通知が送信されます。

  1. 顧客がキューに参加しようとして、キュー選択画面を見ます。
  2. キューリストの上にプッシュ通知のオプトインカードが表示されます。顧客が通知を受け取るをタップし、参加前にブラウザの許可を与えます。
  3. ブラウザがWeb Pushサブスクリプションを登録します。
  4. 顧客がキューに参加し、チケットを受け取ります。サブスクリプションはサーバー側でそのチケットに紐付けられます。
  5. デスクがチケットを呼び出すと、サーバーはそのチケットに紐付くすべてのアクティブなサブスクリプションにプッシュメッセージを送信します。
  6. 顧客のデバイスが起動し、チケット番号・キュー名・拠点名を含むシステム通知が表示されます。通知をタップするとチケット画面が開きます。
  7. チケットが終端状態(COMPLETEDCANCELEDNO_SHOW)に達するか、プッシュエンドポイントが失効する(ブラウザの購読解除や許可の取り消し)と、サブスクリプションは自動的に削除されます。

キュー選択画面でオプトインしなかった顧客も、チケット画面から後でオプトインできます。チケットがWAITINGまたはCALLEDの間は通知カードが表示されます。

スキップされたチケットの呼び戻し通知

Section titled “スキップされたチケットの呼び戻し通知”

顧客のチケットがスキップされた(SKIPPED状態になった)場合でも、プッシュサブスクリプションはアクティブなまま維持されます。その後スタッフがチケットを呼び戻し(WAITINGに戻し)て再度呼び出すと、顧客はチケット画面を閉じていてもプッシュ通知を受け取ります。

つまり、オプトインしてからその場を離れた顧客も、ブラウザを開いたままにしておく必要なく、スタッフが呼び戻した際に通知を受け取れます。

状態表示内容
プロンプト表示前(まだ許可を求めていない)オプトインのCTAカード(キュー選択画面 + チケット画面)
許可済み + 購読済み「通知でお知らせします — このタブは閉じても大丈夫です」という確認
許可が拒否された代替の案内 + ブラウザ設定へのリンク
ブラウザが未対応何も表示しない(サイレントにスキップ)

購読が完了すると、タブを閉じていてもスマートフォンがバックグラウンドにあっても、ブラウザがプッシュ通知を配信します。顧客はチケット画面を開いたままにしておく必要はありません。

チケット画面を開いている間に顧客のデバイスがWebSocket接続を失った場合(例えば一時的にオフラインになった場合など)、画面上に接続が切れました — 再接続しています…というピルが表示されます。これは終端状態でないチケットの場合のみ表示され、ページの初回読み込み時には表示されません。接続は自動的に復旧するため、手動での操作は不要です。

iOS — ホーム画面への追加が必要

Section titled “iOS — ホーム画面への追加が必要”

iOS Safari 16.4以降はWeb Pushに対応していますが、アプリがホーム画面に追加(スタンドアロンモード)されている場合に限られます。通常のブラウザでiOS Safariを使っている場合は次のようになります。

  • キュー選択画面に、キューリストの上にJonotをホーム画面に追加という案内カードが表示されます。
  • ホーム画面に追加した後、顧客がホーム画面アイコンからJonotを再度開くと、通常のオプトインCTAが表示されます。

トランザクション通知のみ — マーケティングなし

Section titled “トランザクション通知のみ — マーケティングなし”

プッシュサブスクリプションは単一のチケットに紐付いています。これは厳密にトランザクション的なもので、1つのサブスクリプションは1つのチケットのライフサイクルにのみ存在します。プロモーションや一括プッシュを送信する仕組みはなく、チケットがCALLEDになったイベントのみが通知のトリガーとなります。

GDPR / 同意の根拠: サブスクリプションは、顧客が作成したそのチケットに紐付けられています。チケット自体をカバーするのと同じ同意の根拠(正当な利益 / 契約の履行)が、この単一の通知にも適用されます。別途同意を取得する必要はありません。

  • 標準規格: RFC 8291(AES-128-GCM)に準拠したペイロード暗号化とRFC 8292に準拠したVAPID認証リクエストによるWeb Push。
  • サブスクリプションの保存: 各サブスクリプションは1つのチケットに紐付けられ、そのチケットが終端状態に達すると自動的に削除されます。