ClickUp#
ClickUp is registered for CSV import and API sync. It parses ClickUp task CSV exports or pulls ClickUp API tasks into a reviewable import session, then projects each task into the internal integrations task-create draft for operator review.
| Capability | Method | Status |
|---|---|---|
CSV_IMPORT |
Upload a ClickUp task CSV export | ✅ Built |
SYNC |
Pull tasks from the ClickUp API | ✅ Built |
USER_IMPORT |
Standalone ClickUp user-directory import | Not built |
WEBHOOK |
— | Not built |
The endpoints below live under /api/v1/providers/clickup/.... They are generic —
the same routes serve any registered provider by substituting the {provider} path
segment. All routes require an organization-scoped user token (see
Authentication).
Credential Verification#
ClickUp personal API tokens can be stored and verified for API sync:
PUT /api/v1/providers/clickup/credentials?organization_id=<id>
POST /api/v1/providers/clickup/credentials/verify?organization_id=<id>
The stored secret must be a personal token starting with pk_. Verification sends
the raw token in ClickUp's Authorization header and probes GET /api/v2/team,
which lists Workspaces visible to the token.
Importing From CSV#
Produce a ClickUp task export from selected Spaces, Folders, or Lists: Workspace avatar → Settings → Imports / Exports → Export Items → Select locations → Start Export → Download Export.
POST /api/v1/providers/clickup/imports/csv?organization_id=<id>
curl -X POST "https://<host>/api/v1/providers/clickup/imports/csv?organization_id=590789" \
-H "Authorization: Bearer <user-token>" \
-F "file=@clickup-export.csv"
The parser requires Task ID, Task Name, Status, and a created-date column
(Date created / Date Created). It reads documented task-export fields such as
Task Custom ID, Task Type, Task Content, Priority, Assignees, Tags, Due date
/ Due Date, Parent ID, List Name,
Folder Name/Path, and Space Name. Malformed rows are returned in rowErrors
rather than failing the whole import.
The Import Session#
{
"status": "success",
"message": "CSV parsed; review the proposed user mapping.",
"data": {
"provider": "clickup",
"capability": "CSV_IMPORT",
"status": "PENDING_REVIEW",
"summary": {
"taskCount": 2,
"userCount": 4,
"errorCount": 0,
"projectionErrorCount": 0,
"mappingNoteCount": 1
},
"taskEntries": [
{
"index": 0,
"projected": {
"title": "Fix OAuth redirect",
"type": "BUG",
"status": "IN_PROGRESS",
"priority": "URGENT",
"creatorId": 501,
"ownerId": 502,
"projectTitle": "Platform",
"taskGroupTitle": "Authentication",
"source": "clickup",
"scheduleStage": "PENDING"
},
"projectionErrors": [],
"mappingNotes": []
}
]
}
}
Importing From the ClickUp API#
POST /api/v1/providers/clickup/imports/sync?organization_id=<id>
Uses the stored, encrypted personal token to discover authorized Workspaces and pull tasks through ClickUp's Workspace task endpoint. The adapter follows page pagination and imports tasks from every Workspace visible to the token because the current generic sync endpoint has no provider-specific filter body.
The API mapper normalizes the same task fields as CSV where ClickUp exposes them: task id/custom id, title, description, custom item type, status, priority, creator, assignees, tags, due date, parent id, Space, Folder, List, and task URL. User mappings are proposed from task creators and assignees. A standalone ClickUp user-directory endpoint is intentionally deferred; task import does not require it.
Projection Field Coverage#
| ClickUp source | TeamBoost draft field | Notes |
|---|---|---|
Task Name |
title |
Error if shorter than 2 characters |
Task Type |
type |
Common types such as Bug, Feature, Review, Documentation map directly; unknowns default to OTHER with a mapping note |
Task Content |
description |
|
Status |
status |
Common open/to-do names → NOT_STARTED; in-progress/review names → IN_PROGRESS; approved/done/closed names → COMPLETED; canceled names → CANCELED; unknown → left unset. Emoji prefixes in exported status names are ignored for matching. |
Priority |
priority |
urgent/high/normal/low map to TeamBoost priority values; missing/null priority becomes UNKNOWN |
| Creator id/e-mail, when present | creatorId |
Resolved through the user mapping. If the CSV lacks creator data or the creator is unmapped, creatorId is left unset with a mapping note; no fallback id is invented. |
| First assignee id/e-mail | ownerId |
Present-but-unmapped assignee is a blocking projectionError |
Tags |
labels |
Pass-through; TeamBoost creates/maps labels server-side |
Folder Name/Path |
projectTitle |
|
List Name |
taskGroupTitle |
|
Due date |
plannedEndDate |
|
Parent ID, provider refs, raw-only columns |
descriptionJson |
Context only; parent/subtask links are not wired as dependencies in this first CSV unit |
requestedById is not populated from ClickUp creator. ClickUp creator is treated as
creator provenance and maps only to creatorId when resolvable.
Not Built Yet#
- Standalone ClickUp user-directory import endpoint and list-member enrichment.
- OAuth app install flow.
- Webhook registration and
X-Signatureverification.