For the complete documentation index, see llms.txt. This page is also available as Markdown.

Feedback capture on negative rating

Keep 1- and 2-star reviews out of the App Store by catching them inside the app and routing the user to a feedback form instead.

Use this when you run the rate-review positive-moment flow and want to do something useful with the unhappy branch. Don't use this when you do not have an internal channel to read and answer the feedback; silent intake makes the user angrier.

Goal

If you only ask happy users to rate you, you never hear from the unhappy ones — and they eventually leave 1-star reviews anyway, just with less data for you. This recipe catches the "not really" branch of the rating popup, opens a short in-app form, captures the complaint with a reason category, and closes the loop with a confirmation. The public rating is protected and you now have actionable signal.

Setup

In the dashboard

  • This recipe is the negative branch of rate-review-positive-moment. It reuses that recipe's sentiment popup.

  • When the user taps "Not really" in the popup, the app opens yourapp://feedback/form. No additional campaign is needed for this step — the app handles the branch locally.

  • Create a follow-up campaign feedback-thanks triggered by the event FeedbackSubmitted.

    • Action: fire deeplink yourapp://popup/feedback-thanks — the app renders a "Thanks — we'll get back to you" popup with a single OK button (see Custom popups).

    • Frequency: once per submission.

  • Do not fire the native store prompt on this branch under any circumstance.

In the app (engineering hand-off)

  • Register the yourapp://feedback/form deeplink to open an in-app form with a reason selector (bug, missing feature, price, other) and a free-text field.

  • On submit, send the payload to your support inbox or help-desk and fire:

    await Amply.track({
      name: 'FeedbackSubmitted',
      properties: { reason: selectedReason, rating_bucket: 'low' }
    });
  • Suppress the native rate-review call on this branch. The positive-moment recipe's branching already does that.

How it runs

  1. User hits a positive moment. The rating popup appears: "Enjoying the app?"

  2. User taps "Not really".

  3. The app opens yourapp://feedback/form locally — no campaign is involved in this step. The in-app form opens. The user picks "missing feature" and types one sentence.

  4. App sends the payload to the support inbox. App fires FeedbackSubmitted with the reason.

  5. feedback-thanks matches. The confirmation popup appears.

  6. Support triages the feedback. If it is a bug the team can fix, the user is followed up through the same channel. The native store prompt was never called. The App Store rating stays intact.

Metrics to watch

  • Share of PositiveSignal firings that end in the negative branch. Rising share means something in the product got worse — this is now your canary.

  • Feedback submission rate once the form opens. <30% means the form is too long or the moment is wrong.

  • Reason-code distribution. This is the cheapest user-research feed in the product.

  • 1- and 2-star review count in the public stores week-over-week.

Last updated