The widget is a button you embed in your app. When a logged-in user clicks it, they get a focused capture experience — write a note, optionally attach a screenshot, optionally record their screen — and submit without leaving the page.
This page covers the widget from a product/customer-success perspective. For installation and configuration, see the Developer section.
What your end-users see
When a user clicks the floating Conclude button:
- A popover opens with a text area for their feedback.
- They can optionally attach a screenshot of the current page.
- They can optionally start a screen recording (with optional camera and mic).
- They write a short title and description.
- They submit. The popover closes with a thank-you state.
The widget never navigates the user away from your app.
Why use the widget instead of the public board
| Public board | Widget | |
|---|---|---|
| Login required | No | Up to you |
| Captures context | No | Yes — page URL, screenshot, recording |
| Knows who the user is | Only if they fill in email | Yes (if you identify them) |
| Lives where customers are | A separate URL | Inside your app |
| Best for | Community feature voting | In-context bug reports and ideas |
Most teams use both.
The two integration paths
There are two flavours of the widget. Both are functionally equivalent for the end-user.
React SDK (@conclude-fyi/react)
For React or Next.js apps. The button renders directly into your DOM (Shadow DOM for CSS isolation), so it picks up your fonts and reads cleanly with your design system. Screenshots are taken with html2canvas — no browser permission prompt.
Script tag (https://www.conclude.fyi/conclude-widget.js)
A short script tag plus an init() call. Works on any site — no build step. The button is rendered in an iframe overlay. Screenshots use the browser's screen-share API, which prompts the user once.
If your app is a React/Next.js app, prefer the SDK. Otherwise the script tag.
What gets captured
Each submission contains:
- The user's title and description.
- The page URL the widget was on.
- The submitter identity, if you've called
identify()(see Identifying users and companies). - An optional screenshot (PNG).
- An optional screen recording (WebM, includes optional camera and mic).
- The user agent and viewport size.
You see all of this in the feedback detail view.
Plan-gated capabilities
| Capability | Starter | Pro | Team |
|---|---|---|---|
| Text feedback | ✓ | ✓ | ✓ |
| Screenshots | ✓ | ✓ | ✓ |
| Screen recording (video) | — | ✓ | ✓ |
| Screenshot AI analysis | — | ✓ | ✓ |
| Unbranded widget | — | ✓ | ✓ |
Branded means the widget shows a small "Powered by Conclude" footer. Unbranded removes it.
Privacy
Text inputs and content are visible by default in screenshots and recordings. Password fields are always masked. Anything else you want masked or hidden, you opt into per-element with HTML attributes.