Skip to main content
Helpdesk Imports

Send a new key

Replaces the key of a draft, or of an import whose source stopped accepting its key (needs_reconnect): that import then continues by itself. The key must belong to the same source account.

PUT
/v2/helpdesk_imports/{id}/credential
Authorizationstringheaderrequired

API key as Bearer token. Use: Authorization: Bearer sk_...

idstringrequired

The import id (from POST /v2/helpdesk_imports or GET /v2/helpdesk_imports).

Pattern: ^[a-f0-9]{24}$
Example: 6720b1c2d3e4f5a6b7c8d9e0
Featurebase-Versionenum<string>header

API version for this request. Defaults to your organization's configured API version if not specified.

Available options: 2026-08-19.orbit, 2026-01-01.nova, 2025-12-12.clover
Example: 2026-08-19.orbit

Body

application/json
credentialobjectrequired

The fields each source needs are listed by GET /v2/helpdesk_imports/sources (credentialFields).

Response

application/json

Success

accountobjectrequired
companyMatchobject

How imported companies find yours (sources with matchesCompanies only).

continuesobject | nullrequired

Set for "Import new changes" (POST /v2/helpdesk_imports/{id}/sync).

createdAtstringrequired
createdByobjectrequired
expiresAtstring | nullrequired

While the import waits for you (draft, ready, paused, needs_reconnect): when it is cancelled if nothing happens.

Example: 2026-11-02T12:00:00.000Z
fieldsobject | nullrequired

The field mapping. Null for a draft (the fields are known after the pull).

finishedAtstring | nullrequired

When the import ended.

Example: 2026-11-02T12:00:00.000Z
idstringrequired

The import id.

Example: 6720b1c2d3e4f5a6b7c8d9e0
lastErrorobject | nullrequired

The last problem.

mappingobjectrequired

The saved teammate, team and brand choices (see GET /v2/helpdesk_imports/{id}/teammates for what each one maps to).

nextStepobjectrequired

What to do next.

objectenum<string>required

Object type identifier

Available options: helpdesk_import
Example: helpdesk_import
optionsobjectrequired
phaseenum<string>required

pull: reads the source into a private staging area; nothing is added to your workspace. write: adds the data.

Available options: pull, write
Example: pull
pullobject[]required

Progress of reading the source, per stream.

sourcestringrequired

The tool it imports from.

Example: intercom
sourceNamestringrequired
Example: Intercom
startedAtstring | nullrequired

When the pull started.

Example: 2026-11-02T12:00:00.000Z
startedByobject | nullrequired
statusenum<string>required

draft: connected, not started. running: reading the source (phase: pull) or adding the data (phase: write). ready: everything was read; map the fields, then start. paused. needs_reconnect: the source refused the key. completed, cancelled, failed.

Available options: draft, running, paused, needs_reconnect, ready, completed, cancelled, failed
Example: ready
teammatesToInviteobjectrequired

Invite them (in the dashboard) and their imported messages become their own when they join.

totalsobject | nullrequired

What the pull found. Null until the pull ends.

waitobject | nullrequired

Why a running import waits (for example the source's rate limit), and until when. It continues by itself.

writeobject[]required

Progress of adding the data, per object.