Skip to content

Getting started · 5 min read

Import posts from a CSV, including Canny exports

Titles, details and statuses from any CSV, into one board at a time.

What the import does

Looph imports posts from a CSV file. There is no direct connection to Canny, UserVoice or another feedback tool; export your posts from that tool as CSV, or build the file in a spreadsheet, and import it into the board you choose.

Each row becomes one post with a title, details and a status. You can import up to 2,000 rows at a time, and run the import again for more rows or a different board. CSV import is included from Starter up; on Free, it is available during the Business trial.

Who can import

Import is in the toolbar of the admin Posts inbox, and it needs the Data permission from the Roles tab. The workspace owner always has it, admins have it unless the owner switches it off, and members have it only when the owner switches it on. People without it do not see the Import button.

On a plan without CSV import the button is greyed out, and its tooltip says CSV import isn't included on that plan. From Starter up it opens the Import posts from CSV dialog, where you choose the Target board and either choose a file or paste the CSV text into Or paste CSV. A board that is read-only because the workspace has more boards than its plan allows takes no new posts, so an import into it is refused.

Preparing the file

The first row must be a header. Looph reads three columns. title is required and must be between 3 and 200 characters. details holds the description, and a column named description or body is read the same way. status is optional, and rows without one are imported as Open, unless the word list or a board that requires approval holds them as Pending approval.

Status values must match a Looph status: Pending approval, Open, Under review, Planned, In progress, Complete, Closed or Rejected. Case does not matter, and spaces or hyphens are fine, so Under review, under-review and under_review all work. Rename your old tool's statuses in the file before importing; a row with a status Looph does not recognise is skipped.

Formatting rules the importer checks

Column names are matched without regard to case, so Title works as well as title, and any other column, such as a vote count or an author's email, is ignored. Blank lines are skipped and spaces around each value are trimmed. Wrap a value that contains a comma in double quotes, and write a quote mark inside it twice.

Keep every post on one line of the file. The importer reads the file line by line, so a line break inside a cell, even a quoted one, ends the row there, and the rest of that post is read as a new row that is either skipped or imported as a separate post. Replace line breaks in long descriptions with spaces before you import.

Statuses are matched against Looph's built-in names, not the labels you set on the Statuses page. If you renamed In progress to Now, write In progress in the file, not Now.

Details can be up to 20,000 characters per post. The dialog does not check that limit or the 2,000-row limit before you import: if one row's details are longer, or more than 2,000 rows are ready, the whole import is refused and nothing is written. Split the file and import it in parts.

The skipped-rows list names the problem for each row: missing title, title must be 3-200 chars, or unknown status followed by the value it found. Rows are counted with the header as row 1, ignoring blank lines. If the header has no title column, the dialog shows Missing required "title" column in header row and reads nothing.

Running the import

Before anything is written, the dialog reads the file and tells you how many rows are ready to import, and lists the first few rows that will be skipped and why. Fix those rows in the file and choose it again if you want them included.

  1. 1Export your posts from your current tool as CSV, and check the title, details and status columns.
  2. 2In Looph, open Admin, then Posts, and choose Import.
  3. 3Choose the Target board the posts should go into, then choose the file or paste the CSV.
  4. 4Check the number of rows ready and any skipped rows, then import.

What does not come across

Votes, comments and voter identities are not imported, so every imported post starts with no votes. The person running the import is recorded as each post's author, and each post's date is the day of the import. Tags are not imported either; add them afterwards from the Posts inbox.

Looph does not record the old tool's links or produce a redirect map, so links to the old posts will not lead to the new ones.

What happens when the posts arrive

Imported posts are new posts as far as the rest of Looph is concerned. Your workspace members follow boards automatically, so each of them hears about every imported post on that board, the same way they hear about any new post. Webhooks subscribed to post.created, automations that start when a post is created, and integrations that act on new posts run once for each row. Before a large import, tell your team and check which automations and integrations will fire.

Because you are recorded as the author, you follow every post you import and will hear when those posts change status or get comments.

Some rows can arrive as Pending approval whatever the file says. A row whose title or details contain a word on the workspace's word list is held for review, and on a board with Require approval before posts go live every row is held unless you have Triage feedback. Rows held this way, and rows imported with the status Pending approval, go to the moderation queue, and the people who moderate are told about each one.

Cutover checklist

Import into the right board and spot-check your busiest requests. Then tell the customers who voted in the old tool that the board has moved and ask them to vote again on the posts they care about. Point your in-app links and help articles at the new board, set the old tool to read-only for a few weeks so nothing new lands there, then close it.

Running an import again

Looph does not check for duplicates, so importing the same file twice creates every post twice. Posts are written in batches of 100, and if an import stops with an error partway, the batches already written stay on the board. Check the board before you run the file again, and take out the rows that are already there.

If posts did land twice, select the extra copies in the admin Posts inbox and delete them together, or merge them into the originals.