Skip to main content
A popup is the widget opened as a small anchored card instead of the full side panel. It lets you ask a question at the moment it is relevant, without sending the visitor into the feedback board. Call $sleek.showPopup() to trigger one.
string
default:"feedback"
required
Which popup to show. See Popup types. Append an ID with a dot to target a specific record, for example survey.812 or update.4471.
string | false
Replaces the popup’s headline. Pass false (or omit it) to use the wording configured in your workspace.
object
Extra values for the popup, appended to its route as a query string. The recognized keys depend on the type.
showPopup() returns false and does nothing while the full widget is already open, so a popup can never cover a session the visitor is in the middle of. Call $sleek.close() first if you need it to appear regardless.

Satisfaction (CSAT)

string
A grouping key stored with the rating. Ratings without one are grouped under default. Use a stable, low-cardinality value such as checkout, onboarding, or support so each group has enough responses to read.

Promoter (NPS)

The NPS popup is wider than the others, since it renders the full 0 to 10 scale.

Feedback

Changelog subscription

The changelog popup asks the visitor whether they want new changelog entries by email, and subscribes them on the spot. It is the right prompt after someone has read a release note, not a way to display one.

Announcement

update.{ID} renders one changelog entry as a card, with its image, type, title, and call to action. This is the form Sleekplan itself uses to announce a release to a visitor.
string
A comma-separated list of additional changelog IDs to show beneath the main entry. At most three are rendered.

Survey

Automatic announcements

Separately from anything you trigger, the widget can open an announcement popup on its own when a changelog entry marked as an announcement is newer than what the visitor has seen. This is what makes release notes reach users who never open the widget, and it is configured per changelog entry in the dashboard, not from the SDK. Two things bound it: only entries from the last 30 days are eligible, and once one has been shown, no further announcement appears for a short cool-down period. To suppress automatic announcements on specific pages, set the session flag before the SDK loads:
Login screens, checkout flows, and full-screen editors are the usual candidates. See Configuration for the full list of session flags, including skip_notifications for badge counts.

Trigger popups at the right moment

Popups work best tied to something the visitor just did rather than fired on page load.
Avoid calling showPopup() on every page load. Overuse trains users to dismiss prompts without reading them, which lowers both your response rate and the quality of what you get back.

React to the outcome

Every popup emits events you can listen for, so you can record the answer in your own system or stop asking the same person again.
See Events for the full list, including popup_init and popup_state_change.

Configuration

Suppress automatic announcements and badge counts per page.

Events

Listen for votes, comments, and popup state changes.