Getting started
Add a widget or form to any website in about a minute — one snippet, no build step, no server.
How it works
You create a widget in widgetful, paste one script tag on your site, and responses stream into your dashboard. The script is tiny vanilla JavaScript served from the edge; ingestion runs on Cloudflare's network, so it's fast and you don't run anything yourself.
1. Create a widget
Sign in, choose a type (feedback, poll, NPS, or a form), give it a name, and set the domain it'll live on. You'll get a public embed key that looks like pub_3xKq…. The key is safe to ship in your HTML — it's write-only, and your allowed domains (below) are what actually protect it.
2. Paste the snippet
Copy the snippet from your widget's Install tab and paste it just before the closing </body> tag on any page where you want it to appear:
<script src="https://cdn.widgetful.com/w.js" data-key="pub_yourkey" defer></script>
Replace pub_yourkey with your widget's key. That's the whole install — the widget renders itself and starts collecting. Works on any site or framework (plain HTML, Rails, Next.js, WordPress, etc.).
3. Watch responses roll in
Open the widget's Overview in your dashboard. You'll see totals, the yes/no (or choice) breakdown, trends over time, and which pages responses came from — updated as visitors respond.
Allowed domains
A widget only accepts responses from the domains on its allowlist. Set them when you create the widget, or any time under Settings → Allowed domains (one per line). Requests from other origins are rejected at the edge. This — together with rate limiting — is how a public embed key stays safe.
Widget & form types
- Feedback — a yes/no question (the classic "Was this page helpful?") with an optional comment.
- Poll — a multiple-choice question with a live breakdown.
- NPS — the 0–10 "how likely to recommend" score, tracked over time.
- Contact form — a hosted form; every submission is stored, emailed, and exportable.
- Email capture — collect emails for a list or waitlist.
Privacy
The embed is cookieless — it sets no cookies on your visitors and does no cross-site tracking. See our Privacy Policy for the full picture, including how data is handled.
Not seeing your widget?
- Make sure the widget is active (Settings) and the page's domain is on its allowed domains list.
- Confirm the
data-keymatches your widget's embed key. - Check the browser console for errors, and that the snippet is on the page (before
</body>). - Still stuck? Email support and we'll help.