<- All posts

Usero Journal

Import Feedback From a CSV (Canny, Productboard, Featurebase)

Will Smith··5 min read

You already have years of feedback. It is sitting in a Canny export, a support spreadsheet, or a notes doc nobody opens. Importing it from a CSV is how you stop starting over every time you switch tools.

Usero imports customer feedback from a CSV: drop the file (or paste a spreadsheet range), match your columns to Usero fields, preview, and commit. The rows land in your inbox, cluster with the rest of your feedback, and any of them can become a GitHub pull request you review and merge. Disclosure: I build Usero, so weigh that. It is free to start.

Why a Backlog of Feedback Is Worth Importing

The instinct when you move to a new feedback tool is to draw a line and start fresh. It feels clean. It is also a quiet waste, because the feedback you already collected is the most expensive feedback you will ever have. Someone wrote it, someone tagged it, and in a lot of cases someone churned over it. Leaving it in a dead export means re-learning the same lessons from scratch.

The reason most teams abandon old feedback is not that they do not value it. It is that moving it is annoying. Exports come out as messy CSVs with column names that do not match the new tool, HTML stuffed into the body field, and the same request filed four times by four people. A bulk import is only useful if it handles that mess for you instead of making you clean the file by hand first. That is the bar: drop the export, and the tool does the reconciling.

What a CSV Import Actually Has to Do

A real import is four jobs, and skipping any one of them pushes the work back onto you.

  1. Map your columns, not its columns. Your export calls the field “Post Title” or “Summary” or “Subject.” The tool has to let you point each of your headers at the right field, rather than demanding you rename columns in a spreadsheet first.
  2. Recognize the common exports. Most migrations come from a handful of tools. If the importer knows what a Canny or Productboard or Featurebase export looks like, it can pre-fill the mapping and you just confirm it.
  3. Dedupe. The same request filed ten times should not become ten inbox items. The import has to collapse exact repeats and let you decide what to do with rows that already exist.
  4. Be reversible. You will get a mapping wrong on the first try. An undo window turns that from a cleanup job into a click.

None of this is exotic. It is just the difference between an import that saves you an afternoon and one that costs you one.

How the Import Works in Usero

Here is the actual flow, top to bottom. It is a single screen that walks through four steps.

  1. Bring it in. Drop a .csv file, or paste a range copied straight from a spreadsheet. Usero parses it in the browser and reads the headers. Pasting works because not every export starts life as a file.
  2. Match your columns. Usero auto-detects Canny, Productboard, and Featurebase exports and pre-fills the mapping. Otherwise you map by hand: title (the one required field), content, author email, author name, votes, status, and a created-at date. If you map a status column, you also map each of its values onto a Usero status.
  3. Preview. You see a row count, how many unique authors and statuses, the date range, and any rows with problems (a missing title, say) flagged before they import. You can fix a title inline or skip the row. Then you pick how duplicates are handled: skip, merge, or replace.
  4. Import and review. Commit, and the rows ingest in the background while a progress bar fills. They arrive in your inbox tagged as a CSV import, run through the same AI clustering as your widget and GitHub feedback, and you get a one-hour window to undo the whole thing if it went wrong.
A CSV import is not the point. It is how you get a backlog into a place where a complaint can become a diff instead of a row that ages.

Where the Import Is Honest About Its Limits

The importer reads CSV. If your old tool only exports JSON or XML, you convert it to CSV first, which most spreadsheet apps do in two clicks. Dedup keys off title, author email, and created-at, so two rows that say the same thing in different words are treated as distinct, the same way a human reading them cold would not know they were the same request until later. That is fine: once they are in the inbox, the AI clustering groups the near-duplicates that exact matching misses. The import gets the rows in cleanly; the clustering does the semantic grouping.

And if your product is not code in a GitHub repo, the PR step at the end of the loop will not apply to you, though the import, the inbox, and the clustering all still work. If you only ever wanted a tidier board, a board-only tool is the simpler fit, and our feedback tools comparison covers those honestly.

Bring Your Old Feedback Over

The free tier is real, signup takes under a minute, and the import lives one click from the integrations grid. Export your old tool to CSV, drop it in, and watch a dead backlog turn back into a working inbox. Spin up a workspace and import a file you have been ignoring. For the step-by-step, see the CSV import docs, and for what happens after a report lands, the AI GitHub PR feature page.

Frequently Asked Questions

How do I import feedback from a CSV?

In Usero, open your project, go to Integrations, find the CSV import card, and click Start a CSV import. Drop your .csv file (or paste a range straight from a spreadsheet), match your columns to Usero fields, preview the rows, and commit. The rows land in your inbox as feedback items, tagged as a CSV import, and run through the same AI clustering as everything else. The only required field is a title for each row.

Can I import a Canny, Productboard, or Featurebase export?

Yes. Usero auto-detects exports from Canny, Productboard, and Featurebase and pre-fills the column mapping for you, so you usually just confirm it. Any other tool that can export a CSV works too; you map the columns by hand on the generic path. Canny exports its post body as HTML, and Usero strips the tags so you get clean text.

What columns can I map?

Title (required), content or description, author email, author name, votes, status, and a created-at date. You map your own column headers onto those fields on the mapping screen. If your CSV has a status column, you also map each of its values (for example "under review") onto a Usero status; unmapped values fall back to open. Author emails that do not look like emails are dropped rather than imported as junk.

Will importing create duplicates?

Usero hashes each row on its title, author email, and created-at date to build a stable key, so re-running the same import does not double up. On the preview screen you choose how to handle rows that already exist: skip them, merge, or replace. Two identical rows inside the same file are collapsed to one automatically.

What if I import the wrong file?

Every completed import has a one-hour undo window. The inbox shows an undo control for that hour, so a bad import is a quick reversal rather than a manual cleanup. After an hour the imported items are just normal feedback you can edit or delete like any other.

Does imported feedback become a GitHub PR?

It can. Imported rows are normal feedback items, so once they are in the inbox they cluster with your widget, email, and GitHub feedback, and you can click Create PR on any of them. Usero reads your connected repo and opens a pull request with a first pass at the fix. You review the diff and merge it; nothing merges on its own. That is the reason to import an old backlog rather than archive it.

Build a feedback loop your team actually uses

Usero collects, clusters, and turns user feedback into shipped fixes.

Get started free