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:

  1. The widget launcher should appear on the page.
  2. Clicking it should open the feedback surface.
  3. 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 snippet
  • widget: true is 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.