Skip to content
Dawnlyhome

Migration

Switch in an afternoon. Keep every vote.

Dedicated importers for Canny, Featurebase, Upvoty and Frill bring over posts, votes, comments, statuses and changelog history. Your customers pick up exactly where they left off.

  • CannyJSON
  • FeaturebaseCSV
  • UpvotyCSV
  • FrillCSV
DawnlyImport complete
posts
1,284
votes
9,431
comments
3,112

4 skipped as duplicates · 0 errors

Three steps. No spreadsheets, no scripts.

Every importer maps into the same format, so all four sources behave the same way.

  1. 01 · Upload

    Drop in your export

    Export from your current tool, choose the source, and upload the file. That’s all you need to do.

    canny-export-2026-09.json4.2 MB · ready
  2. 02 · Preview

    Check it before it’s written

    See the counts and how each status will map. Nothing is saved until you confirm.

    • under reviewbecomesOpen
    • plannedbecomesPlanned
    • completebecomesShipped
    • closedbecomesDeclined
  3. 03 · Import

    One transaction. Full report.

    The import runs in one transaction and removes duplicates. You get a report of what was imported, skipped or failed.

    Writing comments…86%

    ● 13,827 imported● 4 skipped● 0 errors

What comes with you

Everything that matters, from every source.

Data brought over by each importer
DataCannyFeaturebaseUpvotyFrill
Posts, titles & descriptionsYesYesYesYes
VotesYesYesYesYes
CommentsYesYesYesYes
Statuses (mapped)YesYesYesYes
Changelog historyYesYesYesYes
Original created datesYesYesYesYes

Signed identity

Your SSO code already works.

Dawnly accepts the same JWT claim names that Canny (id) and Featurebase (userId) use. To switch, you change the package and the secret. Your backend stays the same.

If a customer was a guest before, their posts and votes are merged into their account the first time they sign in.

app/feedback.tsx2 lines changed
- import { Widget } from 'old-feedback-sdk'+ import { DawnlyProvider, DawnlyBoard } from '@dawnly/react'
  // Same token your backend already signs
  const token = me.feedbackJwt

- <Widget ssoToken={token} />+ <DawnlyProvider appId="ws_c9x2k1" dawnlyJwt={token}><DawnlyBoard /></DawnlyProvider>
Accepted claimssubuserIdidemailnameavatarUrl

Switching questions

Do imports cost extra?
No. Every importer is on every plan, including Free. Import as many times as you want.
Will my customers notice?
Only that it looks better. Their posts, votes and comments are all there, and if you use SSO they stay signed in.
What if something doesn’t map?
The preview shows it before anything is written, and the final report lists each skipped item and the reason.
Can you do it for me?
Yes. Send us your export and we’ll run the import with you on a call, for free.

Your votes are ready to move.