웹 푸시
웹 푸시 프로토콜(Web Push Protocol)을 통해 회원들의 브라우저에서 바로 메시지를 전송하세요. 앱이나 유료 타사 서비스, 메시지당 요금이 필요 없습니다. Flash은 활성화 시 워크스페이스의 VAPID 키를 자동으로 생성하고, 회원은 포털에서 구독할 수 있으며, 모든 메시지는 구독 자체 키로 암호화됩니다.
작동 방식
개방형 표준, 공급자 없음
웹 푸시는 각 브라우저의 푸시 서비스를 통해 브라우저 자체의 웹 푸시 프로토콜에서 실행됩니다. 유료 타사 푸시 공급업체가 없으며 메시지당 요금도 없습니다.
자동 생성된 VAPID 키
처음 활성화하면 Flash가 작업공간의 VAPID 애플리케이션 서버 키를 생성합니다. 수동으로 생성하거나 붙여넣거나 회전할 수 없습니다.
회원이 주도하는 구독
회원은 포털 개인정보 보호 페이지에서 직접 가입할 수 있습니다. 브라우저 자체의 권한 요청 메시지가 가입을 차단합니다. 권한이 없으면 가입할 수 없습니다.
구독별 암호화
각 푸시 페이로드는 개별 구독 키(RFC 8291 메시지 암호화)로 암호화되므로 해당 회원의 브라우저만 읽을 수 있습니다.
활성화(관리자)
관리자가 워크스페이스에 대한 웹 푸시 알림을 활성화합니다. 생성할 키는 없습니다. Flash에서 최초 활성화 시 VAPID 애플리케이션 서버 키 쌍을 생성합니다.
// Admin enables web push for the workspace in Settings → Web Push.
// On first enable, Flash GENERATES the VAPID application-server keypair automatically —
// you don't create or paste keys. You set a contact email and can fire a test send.
//
// Settings → Web Push:
// • Enable web push (OFF by default, per workspace)
// • Contact email (identifies the sender to the browser push services)
// • Send test notification (verify the end-to-end path)
//
// The public VAPID application server key is what the member's browser uses when it
// creates a push subscription (below).회원 가입 절차
구성원의 브라우저는 작업공간의 공개 VAPID 키를 사용하여 구독을 생성합니다. 포털은 이를 Flash에 게시합니다. 이것이 의존하는 로그인된 소비자 세션에 대해서는 회원 포털 삽입 가이드를 참조하세요.
// Members subscribe THEMSELVES from the member portal privacy page. The web-push card
// only renders when (a) the browser supports the Push API AND (b) the workspace enabled
// web push. Tapping it triggers the browser's native permission prompt.
//
// 1. Portal registers a service worker.
// 2. Browser creates a PushSubscription using the workspace's public VAPID key
// (Notification.requestPermission() → pushManager.subscribe(...)).
// 3. The portal posts that subscription (endpoint + p256dh + auth keys) to Flash:
POST https://flash.socialhub.ai/api/member/web-push
Content-Type: application/json
{
"endpoint": "<browser push service endpoint>",
"keys": { "p256dh": "<client public key>", "auth": "<client auth secret>" }
}
// → 200 { data: { ok: true } }
// GET https://flash.socialhub.ai/api/member/web-push → the workspace public key + whether web push is on
// DELETE https://flash.socialhub.ai/api/member/web-push { "endpoint": "..." } → unsubscribe
// The member identity comes from the signed-in member session — never the body.배송: 채널이지, API 호출이 아닙니다.
// You do NOT call a "send web push" endpoint directly. Web push is a CHANNEL in the
// same send/automation stack as email and app push. When a campaign or journey targets
// a subscribed member:
//
// • Flash encrypts the payload to that member's subscription keys (RFC 8291) and
// hands it to the member's own browser push service for delivery.
// • Subscriptions that the push service reports as gone/expired are pruned
// automatically, so you don't keep sending into dead endpoints.알아두면 좋아요
푸시 알림(API)과 서비스 워커를 지원하는 최신 브라우저에서 작동합니다. 포털은 브라우저에서 지원하는 경우에만 가입 카드를 표시하므로 회원은 브라우저에서 사용할 수 없는 채널을 볼 필요가 없습니다.
기본적으로 비활성화되어 있으며 워크스페이스별로 설정되어 있습니다. 관리자가 활성화하고 구성원이 브라우저를 통해 수신 동의를 하기 전까지는 아무것도 전송되지 않습니다.
구독 키는 회원의 브라우저에서 제공됩니다. Flash는 이를 저장하여 각 메시지를 암호화하며 작업 공간 간에 공유하지 않습니다.
관련 항목: 앱 푸시 · 회원 포털 삽입 · 규정 준수 및 동의 API