← StafFixHR home

Pulse surveys + eNPS

Lightweight, recurring engagement check-ins. Anonymous by design — responses cannot be traced back to a specific employee, and per-department breakdowns are suppressed below 5 responses so individuals can't be inferred from small groups.

What HR sees

  1. Go to HR operations → Pulse surveys.
  2. Click New survey — title + cadence (Weekly / Bi-weekly / Monthly / Quarterly / Ad-hoc). Defaults include eNPS + 3 questions.
  3. Click Launch run → pick survey + close-in days. Each active employee gets a unique invite URL in their inbox.
  4. Track on the Runs tab — response rate + status + eNPS score.
  5. Click Results on any run for per-question averages + per-department breakdown (≥5 responses required).
  6. Click Close to finalize a run early — final eNPS is computed and locked.

What employees see

  1. Notification in their inbox: "Quick pulse — your feedback (anonymous)".
  2. Click the link → opens /pulse/<token>. No login required.
  3. Rate eNPS on 0-10 scale, answer 1-5 questions, optional free comment.
  4. Submit → confirmation page. Each invite link works exactly once.

Anonymity model

  • Each (run × employee) gets a random token. The server keeps employeeId on the PulseToken row so HR can resend reminders.
  • Submit-time: the response is stored against anonHash = SHA-256(token + companyId + secret-salt). One-way — no employeeId on PulseResponse.
  • The token is marked consumed (prevents double-submit) but the link between the response and the employee is gone.
  • Department snapshot is captured for breakdowns, but is never joined back to a specific employee row.
  • Free-text comments and per-department results are suppressed until N ≥ 5 responses in that group — protects small teams from being identifiable.

eNPS calculation

  • Promoters = responses rating 9 or 10.
  • Detractors = responses rating 0 through 6.
  • Score = (Promoters − Detractors) / Total × 100. Range: −100 to +100.
  • Computed automatically on close. Suppressed until at least 5 ENPS ratings are submitted.

Tips

  • Keep surveys short — 3-5 questions. Higher response rates mean better signal.
  • Run monthly. Quarterly is too slow to act on; weekly causes fatigue.
  • Always include the free-comment box. The text suggestions are often more actionable than the numbers.
  • If a small team consistently sees "suppressed" results, broaden audience or merge departments for the breakdown view.

Endpoint reference (for integrators)

  • GET /api/companies/:c/pulse/surveys
  • POST /api/companies/:c/pulse/surveys
  • PATCH /api/companies/:c/pulse/surveys/:id
  • GET /api/companies/:c/pulse/runs
  • POST /api/companies/:c/pulse/runs/launch
  • POST /api/companies/:c/pulse/runs/:id/close
  • GET /api/companies/:c/pulse/runs/:id/results
  • GET /api/public/pulse/:token (no auth)
  • POST /api/public/pulse/:token/submit (no auth)