In this section

Resources / Developers / GraphQL

GraphQL: account and notifications

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.

client_getCurrentAccount

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
    }
  }
}
FieldTypeDescription
nameString!Account name.
originString!Registered origin of your site.
descriptionStringOptional account description.
appearanceAppearance!JSON blobs for account defaults: widget, category, nps, survey and roadmap.
usageAllowedBoolean!False when the plan page-view limit is exhausted. See usageAllowed.

client_getAllNotifications

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.

Notification enums

EnumValues
NotificationVarianttopbar, popup, toast, tooltip
NotificationCategorymessage, warning, news, fix, improvement, announcement, feature
NotificationStatepublished, draft, archived, expired
NotificationFlagcomments, reactions, social_sharing, pinned, preserve
NotificationChannelwidget, 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.

Subscriptions

  • 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.