SocialHub.AI
리소스 · 개발자 센터

웹 푸시

웹 푸시 프로토콜(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

웹 푸시 연결 작업 중이신가요?

서비스 작업자 + VAPID 구독 흐름, 전송 채널 스택 또는 구독별 메시지 암호화에 대해 엔지니어에게 문의하세요.

엔지니어링과 상담하세요