Installation
Installing the widget takes two steps: load the SDK, then initialize it with your project ID.
If you use the default trigger, that is enough to make the floating launcher appear on your page.
1. Add the SDK loader
Add this script near the end of your page, just before the closing
</body> tag:
<script>window.$ujq=window.$ujq||[];window.uj=window.uj||new Proxy({},{get:(_,p)=>(...a)=>window.$ujq.push([p,...a])});document.head.appendChild(Object.assign(document.createElement('script'),{src:'https://cdn.userjot.com/sdk/v2/uj.js',type:'module',async:!0}));</script>This loader sets up the window.uj API and fetches the current UserJot widget
SDK from the CDN.
2. Initialize the widget
After the loader script, initialize UserJot with your project ID:
<script>
window.uj.init('YOUR_PROJECT_ID', {
widget: true
});
</script>Replace YOUR_PROJECT_ID with the project ID from your UserJot dashboard.
The widget: true option enables the floating widget. If you leave it out, the
SDK can still be used for other integration modes, but the default widget will
not appear.
Minimal working example
This is the smallest complete setup:
<script>window.$ujq=window.$ujq||[];window.uj=window.uj||new Proxy({},{get:(_,p)=>(...a)=>window.$ujq.push([p,...a])});document.head.appendChild(Object.assign(document.createElement('script'),{src:'https://cdn.userjot.com/sdk/v2/uj.js',type:'module',async:!0}));</script>
<script>
window.uj.init('YOUR_PROJECT_ID', {
widget: true
});
</script>Optional: identify signed-in users
If your product already knows who the user is, you can identify them after initialization:
<script>
window.uj.init('YOUR_PROJECT_ID', {
widget: true
});
window.uj.identify({
id: 'USER_UNIQUE_ID',
email: 'user@example.com',
firstName: 'John',
lastName: 'Doe',
avatar: 'https://example.com/avatar.jpg'
});
</script>The id field is required when calling identify().
Verify the install
After loading the page:
- The widget launcher should appear on the page.
- Clicking it should open the feedback surface.
- You should be able to navigate between feedback, roadmap, and updates inside the widget.
If you are using a custom trigger instead of the default launcher, the widget may be installed correctly even if no floating button appears.
Common issues
The widget does not appear
Check these first:
- The loader script is present on the page
window.uj.init(...)is running after the loader snippetwidget: trueis included in the init options- The project ID is valid
The widget appears, but the user is not recognized
That usually means installation is fine, but identity is not configured yet. Start with the Identify users guide. If you need trusted cross-surface login behavior, continue with Automatic login.