Providers#
The service exposes providers through two discovery endpoints. Each provider declares the capabilities it supports (the connection methods it can offer), and the registry enforces those declarations at the request edge.
| Provider | Capabilities | Page |
|---|---|---|
| Airtable | CSV_IMPORT |
Airtable |
| Apple Calendar | SYNC, USER_IMPORT |
Apple Calendar |
| Asana | SYNC, USER_IMPORT |
Asana |
| Basecamp | SYNC, USER_IMPORT |
Basecamp |
| Bitrix24 | CSV_IMPORT, SYNC, USER_IMPORT |
Bitrix24 |
| Cal.com | SYNC, USER_IMPORT |
Cal.com |
| Calendly | SYNC, USER_IMPORT |
Calendly |
| ClickUp | CSV_IMPORT, SYNC |
ClickUp |
| Discord | SYNC, USER_IMPORT |
Discord |
| Google Calendar | SYNC, USER_IMPORT |
Google Calendar |
| Hive | CSV_IMPORT, SYNC, USER_IMPORT |
Hive |
| Jira | CSV_IMPORT, SYNC |
Jira |
| Kanboard | CSV_IMPORT, SYNC, USER_IMPORT |
Kanboard |
| Linear | CSV_IMPORT, SYNC, USER_IMPORT |
Linear |
| Microsoft Outlook | SYNC, USER_IMPORT |
Microsoft Outlook |
| Monday | SYNC, USER_IMPORT |
Monday |
| Notion | CSV_IMPORT |
Notion |
| OpenProject | SYNC, USER_IMPORT |
OpenProject |
| Plane | CSV_IMPORT, SYNC, USER_IMPORT |
Plane |
| Sendbird | SYNC, USER_IMPORT |
Sendbird |
| Shortcut | CSV_IMPORT, SYNC, USER_IMPORT |
Shortcut |
| Smartsheet | CSV_IMPORT, SYNC, USER_IMPORT |
Smartsheet |
| Taiga | CSV_IMPORT |
Taiga |
| Teamwork | SYNC, USER_IMPORT |
Teamwork |
| Todoist | SYNC, USER_IMPORT |
Todoist |
| Trello | CSV_IMPORT, SYNC, USER_IMPORT |
Trello |
| Wrike | SYNC, USER_IMPORT |
Wrike |
| YouTrack | SYNC, USER_IMPORT |
YouTrack |
| Zoom | SYNC, USER_IMPORT |
Zoom |
| Zoho Projects | CSV_IMPORT, SYNC, USER_IMPORT |
Zoho Projects |
More adapters are added one at a time; the planned set is on the Roadmap.
Generic capability endpoints#
Because the system is organized by capability, the import and credential endpoints
are written once and parameterized by {provider}. For a worked example with real
request/response shapes, see the Linear page.
| Route | Capability | Purpose |
|---|---|---|
POST /api/v1/providers/{provider}/imports/csv |
CSV_IMPORT |
Upload a provider CSV export → reviewable import session. |
POST /api/v1/providers/{provider}/imports/sync |
SYNC |
Pull from the provider API (using the stored key) → import session. |
GET /api/v1/providers/{provider}/imports/{id} |
any | Fetch an import session for review (org-scoped). |
PATCH /api/v1/providers/{provider}/imports/{id}/mappings |
any | Replace the proposed user mapping; refresh mapping-owned actor fields without overwriting reviewed task drafts; optionally confirm. |
PATCH /api/v1/providers/{provider}/imports/{id}/task-entries/{index} |
any | Replace one projected task draft by its 0-based index. |
PUT/GET/DELETE /api/v1/providers/{provider}/credentials |
API-backed | Store / check / delete the org's encrypted provider credential. |
POST /api/v1/providers/{provider}/credentials/verify |
API-backed | Live-test the stored credential. |
GET /api/v1/providers/{provider}/oauth/authorize |
OAuth-backed | Build an org-scoped authorization URL; optionally sign targetAccountId into state. |
GET /api/v1/providers/{provider}/oauth/callback |
OAuth-backed | Exchange a provider redirect code or structural callback parameters and store encrypted OAuth material. |
POST /api/v1/providers/{provider}/oauth/callback |
OAuth-backed | Authenticated relay of the same code/error/structural callback contract. |
User import
USER_IMPORT means a provider adapter can bring provider users into the
proposed TeamBoost user mapping. There is no standalone
/imports/users endpoint yet. Apple Calendar, Asana, Basecamp, Bitrix24,
Cal.com, Calendly, Discord, Google Calendar, Linear, Microsoft Outlook,
Monday, OpenProject, Plane, Sendbird, Shortcut, Hive, Kanboard, Smartsheet, Teamwork, Todoist, Trello,
Wrike, YouTrack, Zoom, and Zoho Projects pull users during /imports/sync; Airtable,
ClickUp, Jira, Notion, and Taiga do not currently declare
USER_IMPORT.
Import sessions carry projected task drafts#
An import session is not just parsed rows: each task is projected into the
internal integrations task-create draft at import time. The session exposes
taskEntries (not a flat tasks list) — each entry has the normalized source,
the projected draft, projectionErrors (blocking — they hold the session in
PROJECTION_ERRORS and block confirm), and mappingNotes (non-blocking review
items). A task-entry edit is the authoritative reviewed draft: confirming with an
unchanged user mapping preserves it. When mappings change, the service refreshes
creatorId, ownerId, requestedById, and mapping-driven diagnostics while
preserving reviewed task fields. Confirm is accepted only once no
projectionErrors remain. See the Jira page for a worked projection.
List registered providers#
GET /api/v1/providers
{ "status": "success", "data": { "providers": ["airtable", "apple-calendar", "asana", "basecamp", "bitrix24", "cal-com", "calendly", "clickup", "discord", "google-calendar", "hive", "jira", "kanboard", "linear", "microsoft-outlook", "monday", "notion", "openproject", "plane", "sendbird", "shortcut", "smartsheet", "taiga", "teamwork", "todoist", "trello", "wrike", "youtrack", "zoom", "zoho-projects"] } }
Describe a provider's capabilities#
GET /api/v1/providers/{provider}
Returns the provider's declared capabilities, or 404 unknown_provider if the
name isn't registered:
{ "status": "success", "data": { "provider": "linear", "capabilities": ["CSV_IMPORT", "SYNC", "USER_IMPORT"] } }
Capability values are the registry's declared capabilities, verbatim — currently
one of CSV_IMPORT, SYNC, USER_IMPORT, WEBHOOK.
Both routes require authentication — see Authentication.