In-app feedback widget
Requests arrive from inside your product, already signed in, with the account attached.
A Feedback button inside your web app. SSO identifies the user, so every request and vote carries their company, plan and MRR. One script tag.
Set it up
Add the snippet
One script tag, about 7.5 KB gzipped, in a closed Shadow DOM so your CSS and ours never meet. A Feedback button appears bottom right.
<script> (function (w, d, s) { w.TheyAskedQueue = w.TheyAskedQueue || []; w.TheyAsked = w.TheyAsked || function () { w.TheyAskedQueue.push(arguments); }; var js = d.createElement(s); js.src = 'https://theyasked.me/widget.js'; js.async = true; d.head.appendChild(js); })(window, document, 'script'); TheyAsked('init', { workspace: 'northwind' }); </script>Sign a token on your server
Copy the SSO secret to your backend and sign a short-lived token per session. Send the account as company so a request counts once per account.
Settings → SSO
// On your server. The secret never reaches the browser. const token = jwt.sign( { id: user.id, email: user.email, name: user.name, company: { id: account.id, name: account.name, plan: account.plan, mrr: account.mrr }, attributes: { role: user.role }, }, process.env.THEYASKED_SSO_SECRET, { algorithm: 'HS256', expiresIn: '1h' }, );Identify the user
Call identify once you know who is signed in, and logout when they sign out.
TheyAsked('identify', { token }); // On sign-out: TheyAsked('logout');Make it yours
Side, label, icon and colour come from Appearance, so you can restyle it without a deploy. Or hide the button and open it from your own menu.
Settings → Appearance
TheyAsked('init', { workspace: 'northwind', mode: 'none' }); document.querySelector('#help-feedback') .addEventListener('click', () => TheyAsked('open', { tab: 'feedback' }));
What you learn
- Revenue at stake
- The MRR of the accounts behind each request, each account counted once.
- Identified share
- How many voters you can name. Below half, fix SSO before reading revenue.
- Sources
- Widget, portal, iOS, Android and API side by side.
- Plan segments
- Filter any insight to Enterprise, trials or any plan; every number is recomputed.
Who it's for
- B2B SaaS dashboards
- Admins ask while they work; you see which account asked.
- Internal tools
- Employees ask from the tool they use all day.
- Marketplaces
- Sellers ask from their seller dashboard, grouped by store.