Skip to content

Allow to import tickets from ClickUp#1046

Open
vassalloandrea wants to merge 1 commit intolinear:masterfrom
vassalloandrea:vassalloandrea/add-clickup-import
Open

Allow to import tickets from ClickUp#1046
vassalloandrea wants to merge 1 commit intolinear:masterfrom
vassalloandrea:vassalloandrea/add-clickup-import

Conversation

@vassalloandrea
Copy link
Copy Markdown

@vassalloandrea vassalloandrea commented Feb 20, 2026

Summary

Adds a new ClickUp (CSV export) option to the linear-import CLI, allowing users to import issues from a ClickUp CSV export into Linear. The importer handles the specific quirks of the ClickUp export format (leading-space column names, bracket-wrapped arrays, millisecond-epoch timestamps, numeric priorities) and gives users control over how labels and statuses are imported.

Changes

New/rewritten files:

  • Full implementation of ClickupCsvImporter, it handles:
    • Column name normalization (ClickUp exports have inconsistent leading spaces)
    • Mapping numeric priorities (14 / null) → Linear's IssuePriority (0–4)
    • Parsing millisecond-epoch timestamps for createdAt, dueDate, startedAt
    • Best-effort JSON parsing of the Comments column
    • Mapping 16+ ClickUp statuses to Linear's 5 status categories
    • Appending ClickUp link and custom ID to issue descriptions

Modified files:

  • packages/import/src/cli.ts — Registered "ClickUp (CSV export)" in the service selection menu and switch statement

Import options

Prompt Default Yes No
Create missing labels? Yes Tags, List: <name>, Space: <name> labels are created in Linear Labels are omitted from all imported issues
Import statuses as-is? No ClickUp statuses (e.g. in development, qa, scoping) are created as new workflow states Statuses are mapped to standard Linear states: Backlog, Todo, In Progress, Done, Canceled

Example CLI output

Input your Linear API key (
https://linear.app/settings/account/security
): lin_api_•••
Which service would you like to import from? → ClickUp (CSV export)
Select your exported CSV file of ClickUp issues: clickup-export-osi-all.csv
Do you want to create missing labels from ClickUp tags, lists, and spaces? → Yes
Do you want to import ClickUp statuses as-is? → No
Do you want to create a new team for imported issues? → No
Import into team: [ENG] Engineering
Do you want to include comments in the issue description? → Yes
Do you want to assign these issues to yourself? → No
Assign to user: [Provided assignee]
████████████████████████████████████████ 100% | 682/682
✅ ClickUp (CSV) issues imported to your team:
https://linear.app/team/ENG/all

Status mapping reference

ClickUp status Linear category Linear state (when mapped)
backlog, scoping backlog Backlog
to do, open, Open unstarted Todo
in progress, in development, in design, in review, testing, qa, validation, blocked started In Progress
done, shipped, Closed completed Done
cancelled canceled Canceled

Example of successful import:

image

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Feb 20, 2026

⚠️ No Changeset found

Latest commit: 1b5d585

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant