Join the waitlist

Guide

Feature Request Tool for iOS: Collect, Vote, Dedup, and Close the Loop — Automatically

Automatically - no one manually merging three copies of "dark mode" ever again.

Every app collects feature requests eventually - the only question is where they land. Without a dedicated tool, they end up scattered: some in App Store reviews, some in support email, some as a DM nobody wrote down. A real feature request tool exists to put all of that in one place, and to do four specific jobs well: collect requests in a structured way, let users vote on what matters, catch duplicates before they fragment your data, and close the loop back to the people who asked. Most tools handle two of the four. This post covers what each stage actually requires, and why the fourth one - dedup - is the one almost nobody automates.

Why "just use a spreadsheet" stops working

A spreadsheet or a shared doc works fine for the first ten requests. It breaks down for three predictable reasons: nobody outside your team can see it, so users can't tell if their request already exists; there's no vote count, so prioritization is whoever asked loudest or most recently; and nothing tells you when two rows are the same request phrased differently, so "dark mode," "dark theme," and "night mode please" sit as three separate line items splitting whatever signal they'd have had combined. A dedicated tool exists to solve exactly those three problems - which is really four, once you count closing the loop back to the user.

Stage 1: Collect

The basic job - a place for users to submit a request - is table stakes, and almost every tool in this category does it. What varies is where that happens. A web form or a widget on your marketing site works for a website. For a native iOS app, collection that happens outside the app - a link to a web board, an email address in your App Store description - adds a step between "user has a thought" and "request gets recorded," and every added step loses submissions. In-app collection, where the request form is a native view a tap away, captures the ones a web link would lose.

Stage 2: Vote

Voting turns a list of requests into a prioritization signal. The mechanics matter less than the visibility: a public board where anyone can see the current vote count does two things a private list can't - it shows users you're tracking demand transparently, and it lets a user check "has someone already asked for this?" before submitting a duplicate. We've written a full guide on structuring a public roadmap that pairs with voting - status columns, templates, and where the roadmap should actually live for a mobile app.

Stage 3: Dedup

This is the stage almost nobody automates, and it's where most tools quietly fall short. Without dedup, near-identical requests - different phrasing, same ask - split their vote count across multiple entries instead of consolidating into one clear signal. Manually merging duplicates works at ten requests a month; it doesn't work at a hundred. The fix that actually scales is catching it before submission: as a user types a new request, a live check against existing requests can surface "this might already exist" before they hit submit, instead of your team finding the duplicate a week later during triage.

Across every native-iOS feedback tool we've reviewed in depth - WishKit, Canny, and Userback - none does submission-time duplicate detection. Canny's AI (Autopilot) mines sales and support conversations after the fact; Userback's AI categorizes and titles submissions after they're filed; WishKit has no AI at all. All useful, none of them the same mechanism as catching a duplicate before it's created.

Good dedup isn't just "any match," either - a nudge that surfaces three unrelated requests trains users to ignore it entirely. The bar is relevance: surfacing the two or three closest existing requests, ranked by similarity, so someone can glance and decide in seconds whether their ask is already there. Get that wrong and you've added friction to submitting feedback in the first place, which defeats the point of collecting it.

Stage 4: Close the loop

The stage that determines whether users bother submitting a second time. A request that goes in and is never heard from again teaches users that filing feedback doesn't do anything - the next time they hit a rough edge, they won't bother, they'll just leave. Closing the loop means the person who asked (or voted) finds out when the status changes, ideally without having to remember to go check a separate site. For a native app specifically, that means the reply and the status update need to reach the user inside the app, not in a portal disconnected from where they raised the request in the first place.

Signs you've outgrown a DIY board

There's no fixed volume threshold where a spreadsheet stops working - it depends on how fast requests come in and how many people are triaging them. A few concrete signals are more reliable than a number:

  • You're spending real time each week manually merging duplicate requests instead of building.
  • Two people on your team have replied differently to the same request because neither saw the other's answer.
  • Users are re-submitting requests because they can't tell whether an earlier one already exists.
  • Your "roadmap" is a doc or spreadsheet nobody outside the team has actually seen.
  • A feature ships and there's no way to notify the specific users who asked for it.

If two or more of these are true, the DIY setup is already costing you more time than a dedicated tool would - the switch isn't really optional at that point, it's overdue.

What a feedback board that does all four actually looks like

StageWhat it requiresWhere most tools fall short
CollectIn-app submission, not an external linkWeb-only tools require leaving the app
VotePublic, visible vote countsOften fine - most tools handle this
DedupSubmission-time duplicate detectionAlmost nobody automates this - see Stage 3
Close the loopReply and status updates rendered natively in-appComments-only or web-portal replies, not in-app

How FeedbackOS handles all four

  • Collect: bug reports and feature requests submitted from a native view inside your app, with device and OS context attached automatically for bugs.
  • Vote: a public, in-app board and roadmap, not a separate web page.
  • Dedup: a live "this might already be requested" nudge as someone types, before they submit - the specific mechanism Stage 3 above describes, which no competitor we've reviewed automates at submission time.
  • Close the loop: replies from the dashboard render inside the app itself, and status changes notify the people who asked.

One flat price covers all four stages: $99/year founding, locked for life, unlimited apps and users, 5 seats included. See the full pricing breakdown.

Picking a tool: what to actually check

Before you commit to a feedback board, check where it falls short on each of the four stages above - not just whether it has the feature, but where in the workflow it breaks:

  • Does collection require leaving the app, or does it happen natively inside it?
  • Is voting free and visible, or gated behind a paid tier or add-on?
  • Does anything catch a duplicate before it's submitted, or only after, in triage?
  • Does the reply reach the user inside the app, or only in a web portal they have to remember to check?

We've done that breakdown for three of the most common ones people search for: WishKit, Canny, and Userback.

Founding price is $99/year, locked for life, for the first cohort.

Join the FeedbackOS waitlist

FAQ

What's the difference between a feature request tool and a customer feedback management tool?

In practice, not much - "feature request tool" usually refers to the collect-and-vote mechanic specifically, while "customer feedback management" is the broader category that includes bug reports, sentiment, and support triage alongside feature requests. A tool built for a mobile app usually needs to cover both under one roof.

Why does duplicate detection matter if I can just merge requests manually?

Manual merging works at low volume. Past a few dozen requests a month, near-duplicates split vote counts across multiple entries, which makes your prioritization data less accurate right when you need it most - the fix that scales is catching duplicates before they're created, not cleaning them up after.

Do I need separate tools for bug reports and feature requests?

No, though many teams end up there by accident - one tool for crash/bug tracking, a different one for feature voting. A single tool that does both, in the same inbox, avoids maintaining two integrations and two places for users to check.

Is a feedback board the same as a public roadmap?

Closely related but not identical - a feedback board is where requests are collected and voted on; a roadmap shows the subset that's been triaged into a status (Planned, In Progress, Shipped). See our guide to building a public roadmap for the difference in practice.

At what point does duplicate detection actually start to matter?

There's no universal number, but the pattern shows up early: once requests arrive faster than a human can casually recognize repeats, near-duplicates start accumulating unnoticed. By the time a board reaches a few hundred entries, manual triage has usually stopped keeping up - which is well before most teams think to check.