theyasked.me

Use cases

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

  1. 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>
  2. 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' },
    );
  3. 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');
  4. 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' }));

Read the guide

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.

Start free