Feature · In-app Widget & SDK

Ask inside your product,
at the right moment.

Email reaches inboxes; the widget reaches users mid-flow, when their opinion is freshest. Two lines of JavaScript, a full SDK underneath, and the same eligibility rules guarding your benchmark.

app.acme.com/dashboard
QUICK QUESTION
How would you feel if you could no longer use Acme?
Very disappointedSomewhat disappointedNot disappointed
Powered by FitSignal
TWO LINES TO INSTALL
<script src="https://cdn.fitsignal.com/sdk.js"></script>
FitSignal.init({ apiKey: "fs_pk_…" });
FULL CONTROL WHEN YOU WANT IT
FitSignal.identify({
  email: "sarah@acme.com",
  persona: "software-engineer"
});
// only shows if user is eligible
if (await FitSignal.isEligible()) {
  FitSignal.show();
}

Timing you control

Page targeting, time-on-page triggers, exit intent, and per-user cooldowns. Dismissed surveys stay dismissed. The widget asks once, politely, at a moment you chose.

Same rules as email

Eligibility and never-twice deduplication apply across channels. A user surveyed by email won’t see the widget, and vice versa. One benchmark, no double counting.

Built like an API product

Scoped API keys, strict CORS, rate limiting on every endpoint. The SDK is a real package — typed, versioned, published to npm — not a pixel snippet from 2012.

Live in your app in an afternoon.