Migrating

How to migrate from Canny without losing votes

· 4 min read · By the Sikia team

On this page
  1. What should you do before exporting?
  2. How do you export your data from Canny?
  3. How do you map Canny's statuses?
  4. How do you keep voters and votes?
  5. How do you run the cutover?
  6. How do you redirect the old board URL?
  7. How do you tell your users?
  8. Doing this with Sikia
  9. FAQ

The hard part of leaving any feedback tool isn't moving posts. It's keeping votes attached to real people, so they still hear about it when their request ships. This checklist works whichever tool you move to. If you're still choosing, the Canny alternatives page lists options, and the feedback tool cost calculator compares what each would cost at your user count.

What should you do before exporting?

  1. Take inventory. List your boards, categories and tags, any custom statuses, and the integrations that create or link posts.
  2. Decide what not to move. Spam, test posts and long-dead requests with no votes can stay behind.
  3. Check how users are identified. If you use single sign-on or identify users in the widget, the new tool needs to match people by the same email.

How do you export your data from Canny?

The usual route is Canny's API, which an import tool reaches with an API key from your Canny account. Whatever method you use, confirm you have:

  • Posts with title, description, author, board, category, status and created date
  • Votes, with each voter's email or user ID
  • Comments, with authors and dates, and whether each was public or internal
  • Changelog entries and the posts they're linked to

Keep a raw copy of the export, even after the move.

How do you map Canny's statuses?

Status names rarely line up one to one. Decide the mapping on paper before you import.

Canny status Typical new status Watch for
Open Open Nothing special
Under review Open Note it was reviewed, or you'll review it twice
Planned Planned Items you no longer intend to build
In progress In progress Work that quietly stopped
Complete Shipped Link to the changelog entry if there is one
Closed Closed Keep the closing comment so the reason survives

If you've added custom statuses, decide where each one goes. It's also a good moment to move anything "Planned" you'd no longer commit to back to Open, with a comment. The public roadmap guide covers what belongs there.

How do you keep voters and votes?

  • Import voters as users, matched by email. When they sign in to the new board, they see their own votes and get notified on changes.
  • Keep anonymous counts. If some votes can't be tied to a person, keep the count on the post so the ranking doesn't change.
  • Keep original dates on posts and comments.
  • Bring merged posts' votes along with the post they were merged into. If a top post's count drops after import, check its merged posts first.
  • Turn off notifications during import, or voters may get an email for every post you create.

How do you run the cutover?

  1. Do a test import into a separate project. Spot-check your ten most-voted posts, a few comment threads and every status.
  2. Pick a cutover day and post a notice on the old board.
  3. Stop new posts on the old board, then run a final import to pick up anything created since the test.
  4. Swap the widget, SSO and links in your app, help docs, email footers and community channels.

How do you redirect the old board URL?

If your board used a custom domain, such as feedback.yourapp.com, point that domain at the new tool. If you can, redirect old post URLs to their new equivalents using a map built from the import; otherwise send everything to the new board's home page. If your board only lived on Canny's own domain, you don't control it and can't redirect it, so leave a notice on the old board and update every link you control.

How do you tell your users?

Post once, plainly, on the day you switch:

"Our feedback board has moved to feedback.yourapp.com. Your posts, votes and comments came with it. Sign in with the same email to see them."

Put it in your changelog, your community channels and your next email update. It's also a good moment to close the loop on anything you shipped but never announced. Keep the old account until you've confirmed everything, and export once more before you cancel.

Doing this with Sikia

Sikia imports from Canny with your Canny API key. It brings requests, voters, comments, statuses and changelog entries, and keeps vote counts it can't tie to a person as anonymous votes. Nobody is emailed during the import, and re-running it adds only what's new, so you can import early and run it again at cutover. Imports are on the Growth, Scale and Lifetime plans, and the Sikia vs Canny comparison covers how the two differ.

FAQ

Will users have to vote again?

Not if voters are imported by email; they'll see their votes when they sign in. Votes that can't be tied to a person stay on the post as anonymous counts.

Should I migrate closed and completed posts?

Usually yes. They show users what you've already shipped or declined, and they help you spot duplicates of old requests.

How long does a Canny migration take?

The import itself is usually quick. Most of the time goes into mapping statuses, checking the test import and telling users.

Free tools for this

Do this without the spreadsheet

Sikia captures requests from Slack, Discord and an in-app widget, merges duplicates into votes, and emails the people who asked when you ship.

Related guides