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-thankstriggered by the eventFeedbackSubmitted.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/formdeeplink 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
User hits a positive moment. The rating popup appears: "Enjoying the app?"
User taps "Not really".
The app opens
yourapp://feedback/formlocally — no campaign is involved in this step. The in-app form opens. The user picks "missing feature" and types one sentence.App sends the payload to the support inbox. App fires
FeedbackSubmittedwith the reason.feedback-thanksmatches. The confirmation popup appears.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
PositiveSignalfirings 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.
Related
Rate-review at a positive moment — the other half of this flow
Custom popups — building the confirmation popup
Managing deeplinks — registering the feedback form route
Tracking events — firing
FeedbackSubmittedwith the reason propertyHandling deeplinks — opening the form from the deeplink listener
AI-assisted integration — describe this campaign in plain language and have your AI assistant build it
Last updated