Key Features
- Three Embedded Modules:
- Feedback: Search, filter by board, view details, and upvote existing requests.
- Create: Submit new feature requests and bug reports directly in-app.
- Changelog: Discover recent release notes and product updates with unread badges.
- Floating Launcher Button: Elegant circular button with smooth 90-degree icon morph transitions on open and close.
- Scroll Awareness: Automatically slides out of the way when users scroll down, and slides back in when users scroll up (
autoHideOnScroll). - Seamless Single Sign-On (SSO): Automatically associate votes and posts with your authenticated users using JWT tokens.
- Custom Triggers: Hide the default launcher and trigger the widget using any custom button, menu item, or link in your product.
Installation
Choose the installation method that fits your tech stack:- HTML Script Tag
- NPM Package (React / Next.js)
- JavaScript SDK
The fastest way to add Suggix to Webflow, WordPress, Shopify, Framer, or any HTML website. Paste this snippet before the closing
</body> tag:Configuration Options
When initializing the widget viaSuggix.init(config) or HTML data attributes, you can configure the following options:
Brand Color: The widget automatically inherits the Brand Color set in your Suggix Workspace (Settings → General → Brand Color), with
#5061bb as the default fallback. No extra color configuration is required in code.Single Sign-On (SSO)
You can automatically sign your logged-in users into the widget so they don’t have to enter their email or re-authenticate when voting or posting feedback.1. Initialize with SSO Token
Generate a JWT signed with your Suggix SSO Private Key on your backend server:2. Identify User After Login
If your user logs in after the page has already loaded (e.g. in single-page applications), callSuggix.identify:
To learn how to sign JWT tokens on your server using Python, Node.js, Go, or Ruby, see the SSO Development Guide and JWT Token Guide.
Custom Trigger Buttons
If you prefer to open the widget from your own navigation bar, settings menu, or feedback button instead of the floating circular launcher:- Set
hideLauncher: truein your widget configuration. - Add a
data-suggix-triggerattribute to any HTML element:
JavaScript API Reference
The globalSuggix object (or imported Suggix class) provides programmatic control over the widget lifecycle:
Suggix.init(config)
Initializes or reconfigures the widget. Destroys any previously active instance safely before creating the new one.
Suggix.open(tab?)
Opens the widget modal. Optionally pass a target tab ('feedback', 'create', or 'changelog').
Suggix.close()
Closes the widget modal.
Suggix.toggle()
Toggles the widget modal between open and closed states.
Suggix.isOpen()
Returns whether the widget modal is currently open.
Suggix.switchTab(tab)
Switches the active tab in the currently open widget.
Suggix.identify(user)
Authenticates the user session in the widget using a JWT SSO token.
Suggix.logout()
Clears the user session inside the widget.
Suggix.destroy()
Completely tears down the widget: removes the modal iframe, removes the launcher button, and unregisters all global event listeners. Always call this during component unmount in single-page apps.
Customizing in Dashboard
You can configure and test your embed code with real-time preview directly in your Suggix Dashboard:- Navigate to Settings → Widgets in your workspace console.
- Adjust your position, default tab, and brand color.
- Click Preview Widget Now to test your configuration live on the page.
- Copy the auto-generated code snippet ready for production deployment.