The reason people stay in a tool they have stopped liking is rarely the
tool. It is the two years of tickets inside it, and the certainty that
moving means an afternoon of copy and paste that somebody will get wrong
halfway through.
Free for one workspace, 3 boards and 100 MB · £2.49
per seat per month beyond that · viewers are free
HOW IT WORKS
A file, not an integration.
Nothing is connected to your old tool. You export a file from it and
Laver reads the file — so there is no OAuth screen, no admin
approval, and nothing left plugged in afterwards.
Export from where you are
Trello exports one board as JSON. Jira gives you a CSV from the
issue search, or the JSON body of a search API call. ClickUp
gives you a list as CSV or JSON. Microsoft Planner exports a
plan to Excel, which you save as CSV. Any of the six works.
Laver works that out from the file itself, so picking the wrong
option is not a mistake available to you. If the file is not one
it recognises, it says so and creates nothing.
Import it again whenever
Re-importing is the intended way to keep a board current while
you are still half-moved. The second import finds the board the
first one made and updates it rather than making a second one:
existing tickets are updated in place, new ones are added, and
anything you have deleted in Laver stays deleted.
WHAT ARRIVES
The board, the columns, the tickets.
Enough to be working in it the same morning, rather than a
half-populated shell you still have to finish by hand.
Your columns, in your order
Trello lists become status columns in the order they were in.
Jira statuses become columns in the order they first appear — a
search result carries no column ordering, so there is nothing
more honest to go on. ClickUp JSON keeps ClickUp's own ordering.
Tickets, with their titles and text
Titles and descriptions come across. Jira titles keep their
issue key, so PROJ-14 Rotate the signing key stays the thing
everyone has been calling it in Slack. Descriptions arrive as plain
text — Jira Cloud stores them as a document format rather than a string,
so you get the words, not the formatting.
Labels and their colours
Trello labels and ClickUp tags become workspace labels, keeping
roughly the colour they had, so the board still looks like the
one your team recognises.
This is a board importer, not a migration service. You will find
this out on your first import, and finding it out here is better.
A good fit when
What you actually care about is the structure — the columns,
the tickets and their text — and the rest was noise you were
not reading anyway.
You want to try the move on a real board before committing,
and re-import it a few times as you go.
The board is under 2,000 tickets. A bigger export is refused
with a message telling you how many it had.
Not what this is
Attachments do not come across. Files stay in
the tool you exported from; only the tickets move.
Comments and history do not come across. The
discussion on a ticket stays behind, so keep the old board readable
until you are sure you are done with it.
Assignees do not come across, because the
people in the export are accounts in someone else's system,
not members of your workspace.
Due dates, priorities and estimates do not come across, and neither do subtasks or links between tickets.
Archived Trello cards, and cards on archived lists, are
skipped rather than restored.
A ClickUp CSV carries the list's name rather than its
id, so renaming the list in ClickUp and exporting again creates
a new board instead of updating the old one. A name is not an
identifier, and quietly overwriting the wrong board would be worse.
IF YOU SCRIPT IT
The same thing, over the API.
One endpoint, the same detection, the same re-import behaviour — 201 with a new board the first time, 200 and "reimported": true when it updated one
that already existed.
POST /workspaces/{uuid}/imports
Send the parsed JSON object, or the text of the CSV, and the
board comes back in the response. An API key is scoped to one
workspace and is the same credential an agent uses for
everything else.
An import that would take the workspace past its board limit is
refused the same way creating that board by hand would be. An
import is not a way around a limit.
Export one board, import it, and look at the result before you decide
anything. If it is not right you have lost ten minutes and changed
nothing in the tool you are still using.