https link. It moves from draft to published to archived;
only published updates reach the panel.
Install
It is the samekeep.js as the surveys. If it is already installed, add your
workspace’s public key (kpub_…, in the Install in your product tab of
What’s new) and updates: true to Keep.init:
Opening the panel
Any element withdata-keep-updates opens the panel. While there are unread
updates, it gets data-keep-unread with the count:
function
Opens the panel from anywhere (a menu item, a shortcut…). Opening the panel
marks the listed updates as read.
event
Fired on
window whenever the list changes, with
event.detail = { unread, total } — for a badge you draw yourself.Audience
Each update goes to everyone, to identified users only, or only to certain plans or companies. The audience is decided on Keep’s server from what your app sends inKeep.identify (plan; companyId or
customerId; userId or email for “identified”); the browser never
receives the rule, only the updates that person may see. Identity signing
(HMAC) is the same as for surveys — see
Verified identity.
Metrics
For each update, Keep shows unique views, unique clicks and CTR (clicks ÷ views).- A view counts when the update is actually on screen, once per person.
- A click counts when the person clicks the update’s button, once per person.
- “Person” is the
userId(oremail) your app passed; without an identity, a random id kept in the browser.
What the widget receives and sends
- It receives only the published updates that person may see: id, type, title, text, button and date. Nothing about your accounts, revenue, risk or audience.
- It sends the public key, the identity you passed and, for events, the kind
(
vieworclick) and the visitor id. - It draws inside a Shadow DOM and renders all text as text, never as HTML. It
uses no cookies; it keeps in
localStoragehow far the person has read. - Any failure is silent: your page stays as it was.
Endpoints
Used by the widget; you do not need to call them.
Unknown key, an origin outside Allowed sites, or an update that is not
published:
404.