Update options, teammates, fields or the company match
Changes the choices of an import. Only what you send changes: one teammate, one field, or one option at a time is fine, and changes sent at the same time are merged one after another (with many at once, a change that keeps losing answers 409 revision_conflict: send it again). Many fields fit in one call.
options(before the pull): what to import (streams),conversationsSince,openConversations(close/keep_open),snoozedConversations,syncContactsToCrm,importAttachments.mapping(before the pull): source agent → teammate, source team → team (ornew), Freshdesk product → brand. Ids of the source come fromGET /v2/helpdesk_imports/{id}/teammates.fieldMapping(once the pull started, until the start; the field list is read then): source custom field → attribute ({ "kind": "attribute", "attributeId": "…" }), a new attribute ({ "kind": "new", "name": "Plan" }), a Featurebase field (builtin), or{ "kind": "skip" };null= back to the suggestion. Keys come fromGET /v2/helpdesk_imports/{id}/fields. Example, to skip two contact fields:{ "fieldMapping": { "contact": { "cf_a": { "kind": "skip" }, "cf_b": { "kind": "skip" } } } }.companyMatch(until the start): how imported companies find yours.
Body
Custom fields, by the key from GET /v2/helpdesk_imports/{id}/fields. Only the fields you send change; a field without a choice gets the suggestion. Can change until the import starts adding data.
Teammates, teams and brands (before the pull only). Only the entries you send change; the others keep their choice.
Response
Success
While the import waits for you (draft, ready, paused, needs_reconnect): when it is cancelled if nothing happens.
2026-11-02T12:00:00.000ZThe field mapping. Null for a draft (the fields are known after the pull).
The saved teammate, team and brand choices (see GET /v2/helpdesk_imports/{id}/teammates for what each one maps to).
Object type identifier
helpdesk_importhelpdesk_importpull: reads the source into a private staging area; nothing is added to your workspace. write: adds the data.
pull, writepulldraft: 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.
draft, running, paused, needs_reconnect, ready, completed, cancelled, failedreadyInvite them (in the dashboard) and their imported messages become their own when they join.
Why a running import waits (for example the source's rate limit), and until when. It continues by itself.