# How to build a tagging system for customer feedback

> Escuta Produto has no tags, so build a short taxonomy from the built-in type, an area label sent as metadata and internal notes. Keep the area list stable, write a definition for each label, and review the list every quarter.

Source: https://escutaproduto.com/resources/feedback-tagging-taxonomy
Last updated: 2026-10-09

## Why a tagging system needs few tags

Tags help you group feedback by what it is about. Too many tags make the list impossible to maintain. One person adds "checkout-error", another adds "payment bug", a third adds "stripe", and a single problem now sits in three buckets. A small list that everyone uses beats a large list that nobody trusts.

Escuta Produto has no tags. Every item has a type (bug, idea, praise or other) and a status (new, planned, in progress, done or closed). For anything else you have three tools: private internal notes, metadata that your app sends with each submission, and a CSV export that you analyze in a spreadsheet.

## Separate area, type and sentiment

Keep three dimensions apart, because each answers a different question:

| Dimension | Question it answers | Example values | Who sets it |
| --- | --- | --- | --- |
| Type | What kind of message is this? | bug, idea, praise, other | The customer, in the form |
| Area | Which part of the product is it about? | checkout, reports, onboarding, settings | Your app, or you |
| Sentiment | How does the customer feel? | Usually skip it | You, if at all |

Type is already built in, so do not copy it into a tag. Area is the dimension you need. Sentiment is tempting but usually adds noise, because the same words can read as angry in one message and neutral in another. Add sentiment only when a specific question depends on it.

## Store the area where it is known

Set the area in your app at the moment the page knows it. The widget accepts metadata through its JavaScript API, so the screen that renders checkout can declare that its feedback belongs to the checkout area:

```js
EscutaProduto.setMetadata({ area: "checkout" });
```

Call it after the widget script has loaded, from the component that renders that part of the product. Metadata is limited to 4 KB of JSON. Before you rely on it for counts, export a sample and confirm that the metadata field appears in the file.

## Write a short tag guide

A tag guide is a one-page document. For each area, write:

- The name, in lowercase, with one word where possible.
- What it includes, in one sentence.
- What it excludes, and which area takes those cases instead.

For example: "checkout: payment step and cart totals. Excludes order history, which belongs to orders." A new person should be able to pick the right area in under a minute, so keep the wording plain.

Share the guide with everyone who reads the inbox. When two people disagree about an item, update the guide rather than deciding the case on your own.

## Keep the taxonomy maintainable

Review the list once a quarter. Merge areas that hold few items, and split any area that holds most of your bugs, because a broad area is too vague to act on. Rename areas that no longer match the product's screens. Retire an area only after you have moved its old items.

Keep the list short. If you pass about ten areas, you probably have sub-areas that can fold into their parents. Use the same list across products so you can compare them. The reasons for a shared list are covered in [one feedback inbox for many products](/resources/one-inbox-many-products).

## Handle items that fit two areas

Some feedback spans two areas. A customer who cannot save a report template could mean reports or settings. Pick the area where a fix would most likely happen, and mention the other area in the internal note. Do not give one item two area labels, because the counts then reward a single customer's message twice.

If the same confusion keeps appearing across two areas, the boundary between them is unclear. Redraw the line in the tag guide, then relabel the items from the last quarter that fall on the moved side. This is also the moment to check that area names still match the product's menus and screens. Customers use the product's own words, so names that match them are easier for everyone on the team to apply.

## Apply the taxonomy in your Escuta Produto inbox

1. Add the area to your app's metadata, as shown above, so new items arrive labeled.
2. For older items, write the area as a short internal note, such as "area: reports", while you read them during triage.
3. Export the product's CSV each week and count areas by type in a spreadsheet. The steps are in [how to analyze customer feedback in a spreadsheet](/resources/analyze-feedback-spreadsheet).
4. When you want a closer look at one area, use the inbox search for the words customers used about it.

Widget options such as the entry points and the locale are in the [widget docs](/docs/widget). For the decision that follows a tag, such as moving an area's bugs to fix now, see [prioritize bugs by frequency and severity](/resources/prioritize-bugs-frequency-severity).

## Frequently asked questions

### How many tags should a feedback system have?

Escuta Produto has no tags, so the question is how many areas to track in metadata and notes. Keep it to a handful that match your screens, and let the built-in type cover bug, idea and praise.

### Should you tag feedback sentiment?

Usually not. Sentiment labels are hard to apply consistently by hand, and the same words can read differently in different messages. Track type and area first, and add sentiment only when a specific question depends on it.

### Where do feedback labels live in Escuta Produto?

Send an area as metadata from your app so it is stored with each item, and use private internal notes for labels you add by hand. Use the CSV export to count them in a spreadsheet.
