Surveys and Voice of Customer
An NPS score of 2 with no context is a number. The same 2 next to the twenty seconds that produced it is a finding.
1. What it does
When someone answers a survey on your site, the bridge has already attached the link to their recording as an attribute on that response. You open the response, you click the link, you watch what they were doing right before they gave you that score.
It runs entirely in the browser, inside the survey tool you already embed. There are no credentials to set up, nothing leaves through our server, and switching it off removes it completely.
Nothing about the respondent comes back to us. This bridge writes; it does not read. The survey answer stays in your survey tool.
2. Three tools take it directly, and everyone else takes a variable
The split is not arbitrary - it follows what each tool actually accepts, which we checked rather than assumed.
| Tool | How |
|---|---|
| Hotjar | as a user attribute, through the Identify API - shows up on both survey and feedback responses |
| Survicate | as a respondent attribute; its documentation explicitly allows setting these after the script has loaded |
| Delighted | as a property on the web survey |
| Everyone else | window.mouseplayerSessionUrl |
The fourth option is not a fallback
Qualtrics collects embedded data when the creative loads, and reads it out of a page variable. Typeform accepts hidden fields only at embed time. Neither can take an attribute afterwards - so for both of them a variable that is simply there, early is the documented route, not a workaround.
It also carries every other tool that can read from the page, which is most of them. In Qualtrics you map an embedded data field to the JavaScript variable; in Typeform you pass it as a hidden field in the embed configuration.
3. Two details that would otherwise bite
Delighted is wrapped, not triggered
We do not launch surveys - that is your decision and your survey logic. What the bridge does is wrap the existing delighted.survey() once, so that whenever you trigger a survey, the property is already attached. A bridge that triggered surveys itself would be showing your visitors a survey they did not earn.
The survey tool usually loads after us
So the bridge retries: twenty attempts at half-second intervals, then it stops. A single attempt would miss almost every case; an endless poll would keep a timer alive for a tool that is never coming. The same compromise the consent adapters make, for the same reason.
And a guard that matters more than it looks: the wrapping happens exactly once. Our configuration message arrives again on every reconnect, and without the guard delighted.survey would end up wrapped several times over.
4. What to do with it
- Every detractor becomes watchable. Sort your NPS responses by score, open the lowest, watch the session. The reason for a 2 is usually a specific twenty seconds, not a general feeling.
- Free-text answers stop being vague. "The checkout was confusing" is a sentence; the recording shows you which step, and often that the person was right.
- Praise is evidence too. A promoter's session shows the path that worked, which is worth as much as the one that did not.
Because the link is an ordinary session attribute, it also travels wherever your survey tool sends its responses - into your warehouse export, your CRM, or a Slack channel, with no further configuration on our side.
All trademarks named here belong to their respective owners. MousePlayer has no business relationship with these providers.