How anonymity actually works
For an anonymous survey the person→answer link is never persisted. The invitation records only that someone responded — which is what the reminder logic needs — and the response itself carries no identity. This is not a display setting that could be flipped later, and it is not a promise that depends on nobody querying the wrong table. There is no join to make.k-anonymity
Anonymity fails by elimination long before it fails by lookup. If four people in a team of five have answered and you know three of them, the fourth is not anonymous. So results, the AI report and the XLSX export all stay locked until the response count reaches the survey’sminResponsesForResults threshold — 5 by default, and
raisable per survey. Below it, the survey owner sees that the threshold has not been
met, not a partial view they could reason against.
Set the threshold before you send. Raising it afterwards does not un-see what has already been
read.
Building a survey
1
Questions
Multiple choice, scales, and free text. Question content is authored per locale so respondents
answer in their own language.
2
Audience
A team, a location, an entity, or a hand-picked list. The audience definition is encoded rather
than expanded to a name list on the response side.
3
Anonymity and threshold
Anonymous or attributed, and the minimum responses required before results unlock.
4
Window
Open and close dates, with reminders to people who have not yet responded — which the invitation
record supports without revealing what anyone answered.
Results
Once the threshold is met:- Aggregate results per question, with distributions.
- Free-text responses, presented as written.
- An AI report summarising observations.
- XLSX export for further analysis.
The AI report
The report is observations over a stated data basis — it says what data it looked at and how many responses that was. It is not a score, not a benchmark, and not a ranking of teams.Server-only surfaces
The AI, XLSX and e-mail services sit behind the module contract and are server-only. They are never imported into client components — a client bundle that could reach the survey analysis service would be a bundle that could reach survey content.Turning it off
FEATURE_SURVEYS=false.