Migrating
How to migrate from Canny without losing votes
· 4 min read · By the Sikia team
On this page
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?
- Take inventory. List your boards, categories and tags, any custom statuses, and the integrations that create or link posts.
- Decide what not to move. Spam, test posts and long-dead requests with no votes can stay behind.
- 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?
- Do a test import into a separate project. Spot-check your ten most-voted posts, a few comment threads and every status.
- Pick a cutover day and post a notice on the old board.
- Stop new posts on the old board, then run a final import to pick up anything created since the test.
- 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
Related guides
- Roadmaps & changelogsHow to run a public roadmap users trustUsers trust a public roadmap that is current, honest about uncertainty and tied to what they asked for. Show only what you're committed to, use a few clear statuses instead of exact dates, review it every couple of weeks, and tell voters whenever their item moves.
- Closing the loopHow to close the feedback loop with usersClosing the loop means telling users what happened to their feedback at each step: you heard it, you decided, and you either shipped it or won't. Record who asked and where for every request, merge duplicates without losing anyone, and use short templates so each reply takes seconds.
- Collecting feedbackHow to handle duplicate feature requestsMerge duplicates into one request and keep each duplicate as a vote with the user's original words, so you get an accurate count without losing context or the people to notify. Merge only when the underlying problem is the same, and split requests that bundle several problems.