emailr_
Alle Artikel
usecase·8 Min

Feedback-Anfrage-E-Mails: Wann und wie man fragt

feedbackumfragenengagement

Feedback-E-Mails helfen Ihnen, Nutzer zu verstehen und Ihr Produkt zu verbessern. Aber Timing und Vorgehen sind entscheidend – schlecht getimte Anfragen nerven und führen zu niedrigen Antwortquoten. So fragen Sie effektiv.

Timing für Feedback

Triggerbasierte Anfragen

const feedbackTriggers = [
  {
    event: 'feature_used_10_times',
    delay: '1 day',
    template: 'feature-feedback',
    question: 'How useful is this feature?'
  },
  {
    event: 'subscription_month_3',
    delay: '0',
    template: 'nps-survey',
    question: 'How likely are you to recommend us?'
  },
  {
    event: 'support_ticket_resolved',
    delay: '1 hour',
    template: 'support-feedback',
    question: 'How was your support experience?'
  },
  {
    event: 'onboarding_complete',
    delay: '3 days',
    template: 'onboarding-feedback',
    question: 'How was getting started?'
  }
];

NPS-Umfrage-E-Mail

await sendEmail({
  to: user.email,
  subject: 'Quick question about your experience',
  template: 'nps-survey',
  data: {
    user,
    question: 'How likely are you to recommend us to a colleague?',
    // One-click rating in email
    ratingUrls: Array.from({ length: 11 }, (_, i) => ({
      score: i,
      url: `${baseUrl}/feedback/nps?score=${i}&token=${token}`
    }))
  }
});

Feature-Feedback

Kontextbezogenes Feedback

await sendEmail({
  to: user.email,
  subject: `How's ${feature.name} working for you?`,
  template: 'feature-feedback',
  data: {
    user,
    feature: {
      name: feature.name,
      usageCount: usage.count,
      firstUsed: usage.firstUsedAt
    },
    question: 'How useful is this feature for your workflow?',
    options: [
      { label: 'Very useful', value: 5, url: feedbackUrl(5) },
      { label: 'Somewhat useful', value: 3, url: feedbackUrl(3) },
      { label: 'Not useful', value: 1, url: feedbackUrl(1) }
    ]
  }
});

Beta-Feedback

await sendEmail({
  to: user.email,
  subject: 'Your feedback on the beta',
  template: 'beta-feedback',
  data: {
    user,
    betaFeature: feature.name,
    questions: [
      'What worked well?',
      'What was confusing?',
      'What\'s missing?'
    ],
    feedbackFormUrl: `${baseUrl}/beta/${feature.slug}/feedback`,
    incentive: 'Get 3 months free when we launch'
  }
});

Support-Nachbereitung

Feedback nach Ticket-Lösung

await sendEmail({
  to: user.email,
  subject: 'How was your support experience?',
  template: 'support-feedback',
  data: {
    user,
    ticket: {
      id: ticket.id,
      subject: ticket.subject,
      resolvedAt: ticket.resolvedAt,
      agent: ticket.assignedAgent.name
    },
    rating: {
      question: 'How would you rate your support experience?',
      options: [
        { emoji: '😊', label: 'Great', value: 5 },
        { emoji: '😐', label: 'Okay', value: 3 },
        { emoji: '😞', label: 'Poor', value: 1 }
      ]
    },
    followUpUrl: `${baseUrl}/support/tickets/${ticket.id}`
  }
});

Onboarding-Feedback

Umfrage nach dem Onboarding

await sendEmail({
  to: user.email,
  subject: 'Quick question about getting started',
  template: 'onboarding-feedback',
  data: {
    user,
    completedSteps: onboarding.completedSteps,
    timeToComplete: onboarding.duration,
    questions: [
      {
        id: 'ease',
        text: 'How easy was it to get started?',
        type: 'scale',
        min: 1,
        max: 5
      },
      {
        id: 'missing',
        text: 'Was anything confusing or missing?',
        type: 'text'
      }
    ],
    surveyUrl: `${baseUrl}/feedback/onboarding?token=${token}`
  }
});

Kündigungs-Feedback

Kündigungsumfrage

await sendEmail({
  to: user.email,
  subject: 'One quick question before you go',
  template: 'churn-feedback',
  data: {
    user,
    subscription: {
      plan: subscription.plan,
      duration: subscription.tenure
    },
    question: 'What\'s the main reason you\'re leaving?',
    options: [
      { label: 'Too expensive', value: 'price' },
      { label: 'Missing features', value: 'features' },
      { label: 'Switched to competitor', value: 'competitor' },
      { label: 'No longer needed', value: 'not_needed' },
      { label: 'Other', value: 'other' }
    ],
    feedbackUrl: `${baseUrl}/feedback/cancellation?token=${token}`,
    winBackOffer: 'Share feedback and get 50% off if you return'
  }
});

Best Practices für Feedback-E-Mails

Kurz halten

// Good: One question, one click
const simpleNPS = {
  subject: 'One quick question',
  body: 'How likely are you to recommend us?',
  action: '10 clickable numbers in email'
};

// Bad: Long survey link
const longSurvey = {
  subject: 'Please complete our 15-question survey',
  body: '...',
  action: 'Link to external survey tool'
};

Timing ist wichtig

const feedbackTiming = {
  // Good times
  afterPositiveExperience: true,  // Just completed a task
  afterMilestone: true,           // 30 days, 100 uses, etc.
  afterSupportResolution: true,   // 1 hour after close
  
  // Bad times
  duringOnboarding: false,        // Let them learn first
  afterNegativeExperience: false, // They're already frustrated
  tooFrequently: false            // Max once per month
};

Anreize mit Augenmaß

const incentiveStrategy = {
  // Low-effort feedback (NPS, ratings)
  lowEffort: {
    incentive: 'none',
    reason: 'Quick enough that incentive isn\'t needed'
  },
  
  // Medium-effort (short survey)
  mediumEffort: {
    incentive: 'entry into drawing',
    reason: 'Small reward for small effort'
  },
  
  // High-effort (interview, detailed feedback)
  highEffort: {
    incentive: 'gift card or account credit',
    reason: 'Compensate for significant time'
  }
};

Feedback analysieren

Antwort-Tracking

interface FeedbackMetrics {
  responseRate: number;
  averageScore: number;
  scoreDistribution: Record<number, number>;
  commonThemes: string[];
  actionableInsights: string[];
}

async function analyzeFeedback(campaignId: string): Promise<FeedbackMetrics> {
  const responses = await getFeedbackResponses(campaignId);
  
  return {
    responseRate: responses.length / emailsSent,
    averageScore: calculateAverage(responses.map(r => r.score)),
    scoreDistribution: groupBy(responses, 'score'),
    commonThemes: extractThemes(responses.map(r => r.text)),
    actionableInsights: identifyActionItems(responses)
  };
}

Best Practices

  1. Zur richtigen Zeit fragen - Nach positiven Erfahrungen
  2. Einfach halten - Eine Frage ist besser als zehn
  3. So einfach wie möglich - Antworten mit einem Klick in der E-Mail
  4. Feedback-Loop schließen - Teilen Sie mit, wie Sie das Feedback genutzt haben
  5. Nicht überfragen - Anfragen pro Nutzer begrenzen
  6. Anfragen segmentieren - Unterschiedliche Fragen für unterschiedliche Nutzer

Gute Feedback-E-Mails wirken wie ein Gespräch, nicht wie ein Verhör. Machen Sie es Nutzern leicht, ihre Gedanken zu teilen.

e_

Geschrieben vom emailr-Team

Wir bauen Email-Infrastruktur für Entwickler

Bereit zum Senden?

Hol dir deinen API-Schlüssel und sende deine erste E-Mail in unter 5 Minuten. Keine Kreditkarte erforderlich.