skip to main content
[ /DOCS · NPS ]WAVE 15 R2-C

NPS surveys

Trigger surveys post-resolution, collect scores, and classify promoters, passives, and detractors.

NPS overview

Net Promoter Score surveys measure customer loyalty after a ticket is resolved. Trigger surveys automatically based on resolution, time delay, or sampling rate. Results are classified as promoters (9-10), passives (7-8), and detractors (0-6).

NPS helps you identify at-risk customers, measure support quality, and track improvements over time. Connect survey responses to Slack, email, or Linear for follow-up workflows.

Trigger conditions

Configure when surveys are sent: immediately after resolution, after a time delay, or at a sampling rate. Use different triggers per queue, per persona, or per issue type to get representative feedback.

Survey trigger configuration:
Trigger: post_resolution
Delay: 0  // minutes, 0 = immediately
Sampling rate: 0.2  // 20% of resolved tickets

Per-queue overrides:
  - billing: { trigger: 'post_resolution', delay: 0, sample_rate: 0.3 }
  - technical: { trigger: 'time_delayed', delay: 60, sample_rate: 0.5 }
  - sales: { trigger: 'post_resolution', delay: 0, sample_rate: 1.0 }

Exclude:
  - closed_without_resolution: true
  - short_duration_tickets: true  // resolved under 2 minutes
  - test_tickets: true

trigger: 'time_delayed' sends survey after a specified delay from resolution. Use this for delayed feedback when customers have time to experience the solution.

Token-based flow

Surveys use a secure token flow to prevent duplicate responses and ensure one response per ticket. The survey link is sent via email and renders in an iframe or hosted page. Tokens expire after 7 days.

Survey flow:
1. Ticket resolved → generate unique token
2. Send email: "How likely are you to recommend us?"
   Link: /api/nps/tk_abc123xyz
3. Customer opens link → validate token
4. Render survey → collect score and optional comment
5. Store response → classify promoter/passive/detractor
6. Trigger webhook → Slack, email, Linear

Token endpoint: GET /api/nps/:token
Response:
{
  "valid": true,
  "ticket_id": "550e8400-e29b-41d4-a716-446655440000",
  "customer_email": "user@example.com",
  "subject": "Refund request",
  "persona": "Support",
  "language": "en"
}

If a token is invalid or expired, the survey page shows an error message. Tokens are single-use and cannot be reused after submission.

Survey rendering

Surveys can render embedded in your email as an iframe, or on a hosted Beamdesk page. Choose rendering mode per channel or customize the survey template with your branding.

Rendering configuration:
Mode: iframe  // or 'hosted'
Iframe styling:
  - Width: 100%
  - Height: 400px
  - Border: none
  - Custom CSS: enabled

Hosted page:
  - Custom header: true
  - Logo: your-logo.png
  - Color: #6366f1
  - Footer: "© 2025 Your Company"

Survey questions:
  - Main question: "How likely are you to recommend Beamdesk to a friend or colleague?"
  - Scale: 0-10
  - Labels: [0] Not at all likely, [10] Extremely likely
  - Optional comment: true
  - Follow-up for detractors: true
  - Follow-up for promoters: false

Follow-up questions ask promoters why they scored high and detractors why they scored low. This qualitative feedback helps you identify strengths and weaknesses.

Score classification

Scores are automatically classified into three categories: promoters (9-10), passives (7-8), and detractors (0-6). Net Promoter Score is calculated as percentage of promoters minus percentage of detractors.

Score classification:
Promoter: 9, 10
  - High loyalty, likely to recommend
  - Upsell opportunity
  - Ask for testimonial or referral

Passive: 7, 8
  - Satisfied but not enthusiastic
  - At risk of switching
  - Target for improvement

Detractor: 0, 1, 2, 3, 4, 5, 6
  - Unhappy customer
  - High churn risk
  - Immediate follow-up required

NPS calculation:
NPS = % promoters - % detractors

Example:
  - 100 responses
  - 60 promoters (60%)
  - 20 passives (20%)
  - 20 detractors (20%)
  - NPS = 60 - 20 = 40

NPS ranges from -100 to +100. Scores above 0 are good, above 50 are excellent. Track NPS weekly to detect trends: declining NPS may indicate quality issues or product problems.

Webhook notifications

Send survey responses to Slack, email, or Linear via webhooks. Configure different webhooks for promoters, passives, and detractors to route responses to the right team. Detractor alerts enable immediate follow-up.

Webhook configuration:
Enabled: true
Endpoints:
  - Promoters:
      Type: slack
      Webhook: https://hooks.slack.com/services/xxx
      Channel: #nps-promoters
  - Passives:
      Type: email
      Webhook: nps@yourcompany.com
      Subject: "NPS feedback - {{score}}"
  - Detractors:
      Type: linear
      Webhook: https://api.linear.app/xxx
      Team: Customer Success
      Priority: High
      Labels: [nps, detractor, at-risk]

Payload:
{
  "token": "tk_abc123xyz",
  "ticket_id": "550e8400-e29b-41d4-a716-446655440000",
  "customer_email": "user@example.com",
  "score": 3,
  "classification": "detractor",
  "comment": "Wait times are too long and agent didn't understand the issue.",
  "timestamp": "2025-05-01T14:30:00Z"
}

Analytics and reporting

View NPS analytics in Beamdesk dashboard: trend lines, score distribution, and per-persona breakdown. Filter by queue, time range, or ticket type to identify patterns.

  • NPS trend chart: track weekly and monthly changes
  • Score distribution: see percentage of promoters, passives, detractors
  • Per-persona NPS: identify which personas drive satisfaction
  • Comment word cloud: common themes in qualitative feedback
  • Correlation analysis: NPS vs resolution time, vs escalation rate

Best practices

  • Start with post-resolution surveys for immediate feedback
  • Use sampling rate to avoid survey fatigue: 10-30% is typical
  • Follow up with detractors within 24 hours
  • Ask promoters for testimonials or referrals
  • Review NPS weekly and correlate with other metrics
  • A/B test survey questions to improve response rate
  • Keep surveys short: 1 main question + 1 optional comment