How to deduplicate feature requests
Deduplicate feature requests by searching for the words customers use, reading each match, then naming one canonical request in an internal note. Count distinct customers, not messages. Escuta Produto has no merge button, so the note does the linking.
By Rafael Thayto · Last updated
Why duplicates distort your count
Ten messages asking for the same thing look like a strong signal. If three of them come from one customer who kept sending reminders, the real count is much smaller. Duplicates also split the discussion. One request sits in the inbox as "CSV export", another as "spreadsheet download", and nobody sees them together until the backlog is a mess.
Deduplicating means grouping the messages that ask for the same outcome, giving the group one name, and counting the people behind it.
Search for the words, then read the matches
Start with the nouns and verbs in the request. Search the product inbox for them, then read every match. Search finds the words customers used, not the same idea expressed in different words, so try synonyms as well: "export", "download", "spreadsheet" and "CSV" can all describe one request.
Read the matches instead of trusting the search. Some results describe a different request that happens to share a word. "Export" might mean a PDF in one message and a CSV in another, and grouping them would hide a real difference.
Name one canonical request
Write one short name for each cluster and use it everywhere. A good canonical name describes the outcome and includes the object:
- Weak: "Better export"
- Strong: "Export invoices as CSV with custom columns"
When two requests look similar but ask for different outcomes, keep them apart. Two customers who both write "make search better" may want faster results in one case and better filters in the other. A single name that merges them would hide a split, and the roadmap would miss one of the two fixes.
Keep the canonical names in a spreadsheet or shared document, with one row per request. Each row holds the name, the underlying problem from the problem behind the request, and the distinct customer count.
Count distinct customers
For each cluster, count people rather than messages. Use the email or ID on each item where it exists. The widget fills in name and email when your app calls identify, and the form asks anonymous senders for an email, so many items will have one. The identify call is described in the widget docs.
Two rules keep the count honest. First, one person counts once per request, however many times they wrote. Second, anonymous items cannot be matched to each other, so count them separately and label the total as a ceiling, because some may come from the same person.
Write the count and the date in the internal note of the most complete item in the cluster. The next review then starts from the same number instead of recounting from scratch.
Close duplicates without losing the sender
When a cluster has a canonical item, set the duplicate items to closed. Write a short internal note that names the canonical request. Closed means you decided not to track the item separately, which is exactly what a duplicate is.
Then reply to the sender if you have an email address. Tell them the request is tracked and what it is called. A reply makes the customer feel heard and makes it less likely they will send the same request again.
A cleanup routine for old repeats
Old backlogs hide the biggest clusters, and they take longer to clear than a normal week. Expect the first pass to take a full afternoon for a large backlog. Run a one-time cleanup, then keep a weekly habit:
- Sort the idea items by date and work through the oldest fifty.
- For each new item, search for its key words before you read it in full.
- Attach the item to an existing canonical name, or create a new one.
- Once a month, review the canonical list. Merge names that describe the same outcome, and split any name that covers two outcomes.
Once a canonical request ships, the cluster is the list of people to tell. The steps for that are in how to tell customers their request shipped.
Deduplicate inside Escuta Produto
Escuta Produto has no merge feature, no tags and no AI grouping. The routine above works with what it does provide:
- Filter the product inbox to type idea.
- Use text search with the keywords for each canonical request.
- Record the canonical name and the distinct customer count in an internal note.
- Set duplicates to closed, with a note that names the canonical request.
- Export the CSV each week, so the counts sit in a sheet next to the roadmap.
Keep a single area or theme label for each cluster if you use one, so related requests stay near each other. The labeling approach is in how to build a tagging system for customer feedback.
Frequently asked questions
How do you find duplicate feature requests?
Search the inbox for the key words of each request, including synonyms, then read every match. Search finds words rather than ideas, so the reading step matters. Group matches that ask for the same outcome under one canonical name.
Should you count duplicate messages as votes?
No. Count distinct customers. One person who sends the same request three times is one vote. Record anonymous messages as a ceiling, because you cannot tell whether they came from the same person.
What happens to customers whose requests become duplicates?
If you have their email, reply from your own address and say the request is tracked under its canonical name. Then close the duplicate item with an internal note, so the decision is recorded and the sender knows you heard them.
Related
- How to triage customer feedbackA weekly routine for turning raw customer feedback into decisions: statuses, tagging by type, spotting patterns and closing the loop with customers.
- How to use RICE to prioritize customer feedbackScore feedback with RICE: count distinct customers for reach, rate impact and confidence, then divide by effort. Includes a worked example.
- How to apply the Kano model to feature requestsUse the Kano model to sort feature requests into basic, performance, delighter and other groups, and learn when the model stops being useful.
- Prioritize bugs by frequency and severityRank bugs by how often customers hit them and how much damage they cause. A 2x2 grid, a frequency count from feedback and clear rules for what goes first.