Install the widget

Replace YOUR_WIDGET_ID with the widget ID from your Signaldeck form install page, then paste the snippet before the closing </body> tag.

HTML
<!-- Optional: add response context before the widget loads -->
<script>
  window.Signaldeck = window.Signaldeck || [];
  window.Signaldeck.push({
    userIdentifier: "user-123",
    meta: {
      plan: "basic",
      page: "settings"
    }
  });
</script>

<!-- Signaldeck feedback widget -->
<script async src="https://cdn.signaldeck.com/sdk/js/widget.js"
  data-widget-id="YOUR_WIDGET_ID"
  data-api-base-url="https://api.signaldeck.com"></script>
  • The optional config block should appear before the async widget script.
  • userIdentifier helps connect feedback to a user in your own system.
  • meta sends extra context, such as plan, page, account, or feature area.

Use your own launcher

Add data-widget-id to a button or link when you want the widget to open from your own UI.

HTML
<button type="button"
  data-widget-id="YOUR_WIDGET_ID"
  data-api-base-url="https://api.signaldeck.com">
  Give feedback
</button>

<script async src="https://cdn.signaldeck.com/sdk/js/widget.js"></script>

Open the widget after a delay

For timed prompts, install the widget first, then call open when the moment is right. This example opens the widget five seconds after the page loads.

HTML
<script>
  window.addEventListener("load", function () {
    window.setTimeout(function () {
      window.Signaldeck.open("YOUR_WIDGET_ID");
    }, 5000);
  });
</script>

Public methods

These methods are available on window.Signaldeck after the SDK loads.

window.Signaldeck.push(config)
Queues or applies global settings such as userIdentifier, meta, apiBaseUrl, and debug.
window.Signaldeck.init(config)
Applies global widget settings after the SDK has loaded. Use push before the SDK loads.
window.Signaldeck.initWidgets()
Scans the page for elements with data-widget-id and wires each launcher to its widget.
window.Signaldeck.configureWidget(options)
Creates or updates one widget. Pass widgetId, and optionally apiBaseUrl or debug.
window.Signaldeck.open(widgetId)
Opens a widget programmatically. Use this for delayed prompts, in-product triggers, or custom workflows.
window.Signaldeck.close(widgetId)
Closes a visible widget programmatically.