Front-door support, drop-in
A single script tag, RTL-aware, theme-aware, opens a real ticket conversation. No third-party iframe sprawl.
The widget is the single fastest path from a confused customer to a ticket in your queue. One script tag, no iframe sprawl, no third-party host, no build step required. It speaks Arabic and English natively, picks up your site’s theme, and opens a real ticket — not a “we will get back to you” form.
What you embed
<script async src="https://cdn.reqdesk.support/widget/latest/index.iife.js" data-tenant="your-workspace-id" data-locale="auto"></script>That is the whole integration. The data-tenant attribute points at your workspace; data-locale="auto" follows the page’s <html lang>. Pin to a specific version (e.g. widget/1.3.0/index.iife.js) when you want to lock the surface.
Why a script tag, not an iframe
Iframes break in the worst ways: they cannot inherit your theme, they cannot match your typography, they cannot share a scroll position, and they punch holes in your CSP. A script tag rendering into the host page can be styled, themed, RTL-flipped, and reasoned about. Cloudflare Turnstile keeps the abuse vector closed.
RTL is native, not bolted on
The widget uses CSS Logical Properties throughout. Switching the host page to dir="rtl" flips the entire surface natively — no JavaScript hooks, no second stylesheet. Arabic typography (Noto Sans Arabic) loads only when the locale needs it.
Versioning and the CDN
Every published widget version sits at cdn.reqdesk.support/widget/<version>/index.iife.js with a one-year immutable cache header. The latest alias updates on each release. We retain a curated set of older versions explicitly — bumps never silently break sites that pinned to a specific release.