NPS
0 to 10, scored from −100 to +100 with promoters, passives and detractors.
Run NPS, CSAT and effort surveys inside your web, iOS, Android, Flutter and React Native apps, shown after the moment they ask about. Every answer is an event, so “people who gave a 2” becomes a filter on funnels, journeys, friction and replays.
Example survey: How likely are you to recommend Bloom to a friend? Answer: 7. Follow-up: Why that score? “Delivery dates only show at the last step.”
A survey holds up to ten questions, though one or two usually get more answers. Scored questions can be followed by an open “why?” question.
0 to 10, scored from −100 to +100 with promoters, passives and detractors.
1 to 5 satisfaction, reported as the share of people who are satisfied.
1 to 7 “how easy was it?”, the best single question after a task.
1 to 5 stars, reported as the mean with the full distribution.
Up to twelve options, with one answer or several.
Free answers, listed newest first next to the score that came with them.
A survey that interrupts checkout measures the interruption. Metrickle waits for the right trigger, then for a delay you choose, and only asks the people you picked.
* wildcard), or after a tracked event, with a delay of up to two minutes.2.4*), signed-in users only, and accessibility settings such as keyboard or large text.| Effort answer | Chart | People | Upgraded |
|---|---|---|---|
| 6–7 (easy) | 612 | 41% | |
| 3–5 | 388 | 22% | |
| 1–2 (hard) | 141 | 7% |
People who found setup hard rarely upgrade. Open their journeys to see where setup went wrong, then filter the friction report to the same group.
When someone sees, dismisses or answers a survey, it's recorded as an event with the rest of their session. Pick a campaign, a question and a score range, and that group becomes a filter.
So you can open the journeys of detractors, the friction report for people who found setup hard, or replays of sessions that ended in a low CSAT score.
Pick a type and write it in plain words. Surveys are saved as drafts.
Set the trigger, delay, targeting, sample and frequency cap, and an optional start and end date.
A person switches it from draft to active. Pause it any time.
Read scores and open text, then filter funnels, friction and replays by what people said.
Surveys ask your questions. The feedback widget lets people raise their own. Switch it on and a small button sits in the corner of every page, left or right.
Reports arrive in a triage inbox with the page, device, app version and accessibility settings attached, and move from new to triaged to resolved.
Example report form with the category “An accessibility barrier” selected and an annotated screenshot attached.
| Report | Category | Status |
|---|---|---|
| “Can't reach the date picker with Tab” | Accessibility barrier | New |
| “Export button spins forever” | Something's broken | Triaged |
| “Not sure what ‘seats’ means” | Something's confusing | Resolved |
On React Native, Metrickle handles targeting, sampling, frequency caps and schedules, and your app renders the survey with its own components. It looks like the rest of your app and uses your own accessibility work.
The feedback widget is available there too: send a report with an optional screenshot from your own form.
// Headless: Metrickle decides when,
// your components decide how it looks.
mk.surveys.onShow((survey) => {
openSurveySheet(survey.campaign.questions, {
onOpen: () => survey.shown(),
onAnswer: (q, a) => survey.answer(q, a),
onDone: () => survey.complete(),
onClose: (i) => survey.dismiss(i),
});
});
Surveys need to remember who has already been asked, so they stay off in cookieless mode and for visitors who have opted out. The feedback widget still works in cookieless mode.
The web script tag and npm package render surveys for you. The iOS, Android and Flutter SDKs show them in a built-in native sheet that meets WCAG 2.2 AA, or hand them to your own UI. The React Native SDK is headless: it decides when a survey should show, and your app renders it. Surveys and feedback work on every platform.
The share of promoters (9 or 10) minus the share of detractors (0 to 6), from −100 to +100. CSAT is reported as the share of satisfied answers, and effort and star ratings as the mean.
No. Frequency caps and sampling need to remember who has been asked, which means storing something on the device. In cookieless mode nothing is stored, so surveys stay off. The feedback widget still works.
Use a frequency cap (once, until answered, or recurring every so many days), sample a share of eligible people, and set start and end dates. A delay after the trigger keeps a survey from interrupting the task it asks about.
It can draft one. Surveys created or edited through an API token are always saved as drafts, and a person activates them in the dashboard.
Free to start. One script tag on the web, one SDK on mobile, and no cookie banner in cookieless mode.
Start tracking for free