Most pages that want you to switch from Canny open by telling you how easy it is. This one opens with the part that is not easy, because you are going to find it out anyway and it is better to find it out now than halfway through a Saturday.
Can I migrate from Canny to VoteFirst?
Yes, and it takes a script rather than a button.
Your customer list and what each one pays moves as a CSV in about ten minutes. Your posts, your votes and your comments do not move on their own, and rebuilding them is five API calls in a loop.
The rest of this page is those two jobs in the order you would do them, and the side by side with Canny is on the alternative page.
Is there a Canny importer?
No. There is no button anywhere that reads a Canny board and rebuilds it here.
That is the honest headline and it is the main reason not to switch. Several tools in this category do have one and will rebuild your board for you while you make coffee. If you want the move to be a button, buy one of those instead. We would rather you read that here than discover it after you have paid us.
What we have instead is an API that can do every part of the job, which means the move is a script rather than an impossibility. That distinction matters enough to spend the next section on, because most pages in this category answer this question with a yes or a no and neither answer is true.
If you want to see the product rather than read about it, the demo board is open without an account.
How would you actually rebuild the board?
Five steps, and the API has an endpoint for each one.
Post a request with POST /api/v3/projects/{slug}/features. Mint or exchange a voter identity with
POST /api/v3/projects/{slug}/identity. Cast that person's vote with
POST /api/v3/projects/{slug}/features/{id}/vote. Add their comment with
POST /api/v3/projects/{slug}/features/{id}/comments. Import the voters themselves from a CSV,
which is the one step that is not an API call and is described further down this page.
Four things to know before you plan around it, and none of them are in the marketing.
Which key you use decides which plan you need. The five calls above are not behind a plan when they carry the published embed key that is already in your page, so the rebuild runs on the nine dollar plan. Reach for a secret API key instead and the answer is a straight refusal saying the API needs a PRO plan, because a secret key opens the two routes that read your voters and your revenue.
Every request created this way arrives unapproved. It goes into the review queue rather than onto the board, exactly as if a visitor had suggested it, and you approve them from the dashboard. That is a feature on the day somebody suggests something and a chore on the day you post four hundred of them, and you should know which day you are having.
Writes are capped by the minute. Six hundred a minute on the embed key, of which new voter identities are three hundred, and three hundred a minute on a secret key. A board of four hundred requests carrying eleven hundred votes is about fifteen hundred calls, so the rebuild is between three and five minutes of running time rather than an overnight job.
Canny will not hand you who voted in one file. Their post export gives you a score, which is a total, and the only person named in it is the author. Getting the voters means one download per post or code against their API. This is the step that decides whether the rebuild is an afternoon or a week, and it is a limit at their end rather than ours. The next section is that file, column by column.
What is actually in a Canny export?
Thirteen columns, and the one you need most is not among them.
Canny publishes its export columns, which is more than most vendors in this category do, so the answer is checkable rather than a guess. Their list, in their order.
| Column |
|---|
| Post Title |
| Post Detail |
| Score (Total Votes) |
| Comment Count |
| Date Posts were created |
| Image URLs |
| Post Status |
| Post URL |
| Tags |
| Post Author |
| Category |
| Post Owner |
| Associated MRR |
That is a good file. Your requests, their text, their status, their tags, when they arrived, and a revenue figure attached to each one. What is missing is who voted. The vote column is Score, which is a total, and the only identity in the file is Post Author, who is the person who wrote the request rather than any of the people who backed it.
That distinction sounds small and it is the whole migration. A request with forty votes tells you it is popular. It does not tell you that eleven of those votes came from accounts that churned last quarter, or that the one at the top came from your largest customer. Rebuilding a weighted board out of it means rebuilding the part the file does not contain.
The voter list is available one post at a time, from an export option in the corner of the panel on each post. It works and it is per post, so a board with four hundred requests is four hundred downloads. There is also an Ideas view export on a newer surface, capped at ten thousand records. The bulk user export people expect does not exist, which is not an inference. It is an open request on Canny's own public feedback board titled Export users, sitting at 94 votes and marked as planned, asking for a file containing each user's posts, votes and comments and the ability to request it through the API. A reply from Canny points at the API's user endpoint as the workaround.
One column deserves reading carefully. Associated MRR is one number per post, and Canny counts each company once per post rather than once per voter. If five people from the same customer vote on the same request, that company's revenue is added once. That is a genuinely good decision, it stops a large team looking like a large amount of money, and it means the figure in your file is the sum of the distinct companies behind a request rather than the sum of your voters. If you rebuild it here, rebuild it the same way.
Exporting is a permission. Managers and owners can, contributors cannot, which is worth checking before you assume the person who wants the file can produce it.
We should be asked the same question, so here is our answer. The feature export writes twelve fixed columns, being ID, Heading, Description, Developer Response, Status, Votes, Weighted Votes, Comments, Views, Progress, Changelog Type and Created. There is a separate voter export and a whole project JSON export beside it. Two things are worth saying plainly. Weighted Votes is a column, and it is the number Canny's file has no equivalent of. And the feature export stops at fifty thousand rows, which is a cap of the same kind as the ten thousand above, larger and still a cap.
Why bother, when the button would be easier?
Because of the order you do it in.
Import your voters first, with what each one pays. Every one of them lands in a voting tier with a whole number multiplier. Then replay the votes through the API as those people, and each vote is written with its own weight at the moment it is cast.
The board that comes up is not a copy of your Canny board. It is your Canny board sorted by what your customers pay, on the first day, before anybody has voted on anything new. That is the one thing the import button in the other tools cannot give you, because they are rebuilding a plain count and a plain count is what you were already unhappy with.
What does come across?
Your customers, with what each one pays. That part is a file and about ten minutes.
We read a CSV of voters. The columns it accepts are these, and it will recognise any of the names in the right hand column so you rarely have to rename anything.
| What it is | Column names it accepts |
|---|---|
| The person | email or email_address |
| Their name | name, display_name, customer_name or full_name |
| What they pay | mrr, revenue, monthly_revenue or amount |
| Which tier they are on | tier, plan, tier_name or plan_name |
Ten thousand rows in one file. It reads the file and shows you what it found before anything is written, so you get to look at the parsed result and decide, rather than importing and then discovering the email column was the billing contact.
It needs an active paid plan and it needs you to be the owner or an editor on the project. It is not held back for the expensive plan. The nine dollar one imports.
Why does the money column matter?
Because it is the thing your Canny board could not do with it.
On a Canny board a vote is a vote. Their own export gives you an associated revenue figure per post, which tells you that a request is worth something, after the fact, in a spreadsheet, and the section above is that column read closely.
Here that figure goes in at the front. The revenue column puts each person on a voting tier, the tier carries a whole number multiplier, and the multiplier is written onto every vote that person casts. So the board sorts itself by what your customers pay while you are looking at it, and the plain headcount stays visible next to the weighted total so you can see when the two disagree. The mechanism is here.
That is the trade this page is really describing. You give up the history and you get a board where the order means something.
Where do you get the file?
From wherever your revenue actually lives, which is usually not Canny.
Stripe, Paddle, Chargebee and most CRMs will export a customer list with an email and a monthly amount, and that is already the file. You are not really exporting from Canny at all, you are exporting from billing, which is the system that knows the number.
If you would rather start from your Canny data, their export gives you the associated revenue per post, and you can build the voter list from that. It is more work and it is less accurate, because it tells you about posts rather than about people.
Should you switch?
Three honest answers, and only one of them is yes.
No, if your board is your archive. Three years of discussion that your team searches is worth more than a better sort order. Stay, or move to something that imports it.
No, if all your customers pay about the same. Weighting a board where everybody is on one price does nothing. A plain vote count is the correct tool and Canny's free plan carries twenty five tracked users at no cost.
Yes, if your bill grows while you sleep. Canny meters by tracked users, which is anybody with a post, a vote or a comment attributed to them, and that number only goes one way. Their AI counts toward it too, because people it finds in your support conversations become tracked users. The full ladder and a calculator are here. Ours is nine dollars at every one of those numbers.
What does it cost to try?
Nine dollars a month for one project, with weighted voting and the CSV import included. Thirty nine adds more projects, the API and a custom domain.
A card is required to start the trial. Canny's free plan does not ask for one, and at twenty five tracked users it is genuinely cheaper than us, which the calculator says out loud at those numbers.
14 days, a card at signup, then $9 or $39 a month.