Import CRM exports
migrate_crmAdmin CRM import: describe → preview (no writes) → user reviews exact values/exclusions → stage the same preparation → start jobId in background. Explain preview.activationGuidance before starting; activation is reviewed separately and waiting rows remain saved for resume. Stage also returns guidance. Page status/list for every outcome. Identical source identity/payload is skipped; changed identities and email/domain collisions require manual resolution, never name merges. Resolve per-record approval requirements first: they block imports. Historical imports emit no automation events or enrichment. Custom objects, workflows, attachments and unavailable history need separate scoping. See inputs for authority, mappings, limits and retries. snake_case input aliases are accepted; outputs unchanged.
When to use: An administrator imports a Salesforce, HubSpot, Attio or CSV export with explicit mappings and resumable progress.
Example: Help me move our CRM data to Capable.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | A human-readable name for this import batch (1–120 characters), shown on the staged job and in list/status. | |
| files | No | Up to 20 exports as {name,sourceObject,csv,idColumn?}: raw CSV with header; idColumn is the stable source-id column (auto-detected if omitted). Batch limits: 5000 rows, 2000000 CSV bytes, 3900000 request bytes, 5242880 normalized bytes. | |
| jobId | No | The job id (uuid) returned by stage, list or status; required for start, run and status. | |
| action | Yes | describe (destinations/fields), preview (validate, no writes), status (one job, paged), list (jobs) use read authority. stage (save batch), start (background), run (legacy, ≤25 rows synchronously) require write authority. Explicit tool policies apply. start retries unsuccessful rows after execution finishes; replay never duplicates an imported source identity. | |
| job_id | No | Alias of jobId. | |
| source | No | The exporting system — salesforce, hubspot, attio or csv; it selects the id-column and column-name conventions used to read the files. | |
| mappings | No | Per sourceObject: {sourceObject,objectType,fields:{column:{field,referenceObject?,valueMap?,amountUnit?}},ignoredColumns,defaults?}; map or ignore every column. Preserve relationships via referenceObject source ids. Explicitly map owners, stages, currencies and amount units; money defaults to integer minor units, multiselect to JSON-array strings. | |
| rowLimit | No | For status: job rows per page (1–200, default 100). | |
| rowOffset | No | For status: job rows to skip (0–5000, default 0); advance by the returned rows.length while hasMoreRows is true. | |
| row_limit | No | Alias of rowLimit. | |
| row_offset | No | Alias of rowOffset. | |
| sourceInstance | No | A stable label for the customer's source CRM instance (1–200 chars); reuse the same value for every later export so source ids resolve to the same records. | |
| source_instance | No | Alias of sourceInstance. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | ||
| jobs | No | ||
| note | No | ||
| error | No | ||
| applied | No | ||
| preview | No | ||
| destinations | No | ||
| activationGuidance | No |