stable sdk v1.2.22

Reqdesk Widget

Embeddable bilingual support widget. Drop in a script tag, point at your workspace, get a real ticket conversation. RTL-aware. Theme-aware. CDN-pinned.

Source on GitHub →

Install

<script async src="https://cdn.reqdesk.support/widget/latest/index.iife.js"></script>
<script>
  window.addEventListener('load', () => {
    window.ReqdeskWidget.init({
      apiKey: 'your-project-api-key',
      apiUrl: 'https://api.reqdesk.support',
      language: document.documentElement.lang || 'en',
    })
  })
</script>

The Reqdesk widget is the fastest way to give end users a path into your support workspace. One script tag, no iframe sprawl. The widget renders into the host page, picks up your theme, switches RTL when the host’s dir does, and opens a real ticket on submit — not a “we will get back to you” form.

Configuration

The IIFE entry exposes window.ReqdeskWidget. Boot it with init(...):

FieldRequiredDescription
apiKeyyesThe platform API key issued for the project the widget should write into.
apiUrlnoBase URL of the Reqdesk API. Defaults to window.location.origin — set explicitly when embedding on a third-party site.
languagenoen or ar. Defaults to the host page’s <html lang>.
themenoTheme override object (colors, radii). Inherits brand defaults if omitted.
customernoPre-fill known-user metadata ({ email, name, externalId }).
positionnoLauncher position (bottom-end, bottom-start, …).
displaynoDisplay mode (sheet, dialog, inline).

Programmatic API

After init() returns, window.ReqdeskWidget exposes:

ReqdeskWidget.open() // open the widget
ReqdeskWidget.close() // close the widget
ReqdeskWidget.toggle() // toggle open state
ReqdeskWidget.setLanguage('ar') // switch locale at runtime
ReqdeskWidget.setTheme({ /* … */ }) // override theme tokens at runtime
ReqdeskWidget.identify({ // attach known-user metadata
email: 'customer@example.com',
name: 'Customer Name',
})
ReqdeskWidget.on('ticket-created', t => { /* … */ })
ReqdeskWidget.destroy() // tear down completely

identify() is optional — if your customer is already authenticated on your site, calling identify() saves them re-typing their email into the widget.

Versioning and the CDN

Widget bundles are served from cdn.reqdesk.support/widget/<version>/index.iife.js with a one-year immutable cache. Pin a specific version when you want to lock the surface; the latest alias updates on every release. The retention list at docker/reqdesk-cdn/retained-versions.txt is the canonical record of what is currently served.

Note: versions 1.2.20 and 1.2.21 ship a broken IIFE bundle and are intentionally absent from the CDN. Sites pinned to those versions should bump to 1.2.22 or latest.

CSP

If your site uses Content-Security-Policy, allow:

  • script-src https://cdn.reqdesk.support https://challenges.cloudflare.com
  • connect-src https://api.reqdesk.support https://challenges.cloudflare.com
  • frame-src https://challenges.cloudflare.com

Cloudflare Turnstile is required to prevent automated abuse of the public ticket-creation surface.

Live

Try the widget, live

The button below is real — it opens the Reqdesk widget against a public sandbox project. Anything you write lands in a project built for it.

Version 1.5.1 · source: live

The widget launcher appears at the bottom-end of the page.