In this section
Resources / Developers / GraphQL
client_getCurrentAccount and the client notification queries, fields and enums.
These operations bootstrap the widget and fetch published notifications. All of them take the project key as described in the GraphQL overview.
Returns public information about the account that owns the key. It is the first call the embed makes, it applies the plan page-view gate and it counts the browser session as a page view (once per session).
query {
client_getCurrentAccount {
name
origin
description
usageAllowed
appearance {
widget
category
nps
}
}
}| Field | Type | Description |
|---|---|---|
| name | String! | Account name. |
| origin | String! | Registered origin of your site. |
| description | String | Optional account description. |
| appearance | Appearance! | JSON blobs for account defaults: widget, category, nps, survey and roadmap. |
| usageAllowed | Boolean! | False when the plan page-view limit is exhausted. See usageAllowed. |
query {
client_getAllNotifications(filters: { state: published }) {
id
title
description
url
variant
category
channels
flags
state
appearance
mainLanguage
translations
startDate
endDate
}
}Optional appearance on a notification is an override over account appearance.widget / category colors. When missing or { useCustom: false }, the embed uses account defaults. Surveys and roadmaps follow the same inherit pattern with appearance.survey and appearance.roadmap.
mainLanguage and translations (JSON map of locale → sparse string overlays) drive visitor-facing localization in the embed. Empty overlay fields fall back to the main-language title/description. NPS, surveys, roadmap and status payloads expose the same pattern. Product guide: Translations and languages.
The client query always returns published notifications, whatever you pass in filters.state. It also takes part in the page-view gate: when your allowance is exhausted (usageAllowed is false) it returns an empty list. Use client_getNotification(id: ID!) to fetch a single notification.
| Enum | Values |
|---|---|
| NotificationVariant | topbar, popup, toast, tooltip |
| NotificationCategory | message, warning, news, fix, improvement, announcement, feature |
| NotificationState | published, draft, archived, expired |
| NotificationFlag | comments, reactions, social_sharing, pinned, preserve |
| NotificationChannel | widget, page, push, email |
push and email are not delivered
The NotificationChannel enum contains push and email, but Hubbo does not deliver notifications by push or email. Only widget and page produce anything visitors can see. Do not build on the other two values.
client_notificationCreated, client_notificationUpdated, client_notificationDeleted: notify the widget when content changes in the admin app.client_accountCreated, client_accountUpdated, client_accountDeleted: account lifecycle events. The widget subscribes to client_accountUpdated to apply appearance changes. The server delivers these account events to Hubbo-hosted origins (such as admin previews), so on your own site appearance changes are picked up on the next page load.Details in Realtime subscriptions.
Notification page
Notifications can be read as web pages at https://app.hubbo.io/page/{key}. See Public URLs.