Access & visibility
Allow customers.GetCrmImportStatus on your API key.
Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.
Request
No parameters. Send an empty JSON object ({}).
Import from a connected CRM
Use Get CRM import status to inspect the HubSpot connection, supported objects and the most recent run. Preview CRM import reads a sample without writing contacts. A missing provider scope requires reconnecting in Brigg; an API grant cannot supply missing provider consent.
Start the connected-CRM import in Brigg. Get CRM import run reads its progress and detailed report. Review created, updated, skipped and not-imported counts; a finished run does not mean every source object was supported.
To import through the public API, use Start record import with a file and permanent external references. That workflow keeps the credential’s approved operation and resource permissions throughout background processing.
Response
Returns 200 OK with a JSON body.
providerstringRequiredExternal service provider used by this connection.
connectionobjectRequiredConnected provider account and its available import capabilities.
Nested fields
connectedbooleanRequiredWhether the CRM provider connection is active.
account_domainstring or nullOptionalPortal domain.
currencystring or nullOptionalPortal currency.
statusstring or nullOptionalCurrent state reported for this item. Treat values as extensible unless an enum is declared.
connected_atnumberOptionalRecorded event time in Unix milliseconds.
optionalarray of stringRequiredOptional object types supported by this import.
alwaysarray of stringRequiredWhether the action applies regardless of the existing cached result.
not_importedarray of GetCrmImportStatusNotImportedRequiredObject types or records this integration does not import.
Item fields
keystringRequiredStable key identifying this option within its collection; distinct from its display label.
reasonstringRequiredExplanation of why this outcome occurred.
Allowed: "missing_scope", "no_equivalent", "degraded", "not_available".
detailstringOptionalAdditional explanation of the reported result.
countnumberOptionalNumber of matching items represented by this result.
latest_jobobject or nullRequiredLatest run.
Nested fields
job_idstringRequiredRun identifier.
statusstringRequiredqueued | running | done | failed
progress_percentnumberRequiredProgress pct.
phasestringOptionalCurrent phase of the background import or preparation job.
reportCrmImportReportRequiredImport counts, exclusions and limitations from the run.
CrmImportReport
countsobjectRequiredPer-object counts for the import.
Nested fields
companiesobjectOptionalCompany records included in the import or search.
Nested fields
scannednumberRequiredSource records examined by the import.
creatednumberRequiredRecords newly created by the import, or whether this reusable item was newly created.
updatednumberRequiredExisting records updated by the import.
skippednumberRequiredSource records left unchanged or not imported.
contactsobjectOptionalContact records included in the import.
Nested fields
scannednumberRequiredSource records examined by the import.
creatednumberRequiredRecords newly created by the import, or whether this reusable item was newly created.
updatednumberRequiredExisting records updated by the import.
skippednumberRequiredSource records left unchanged or not imported.
dealsobjectOptionalSales opportunity records included in the import.
Nested fields
scannednumberRequiredSource records examined by the import.
creatednumberRequiredRecords newly created by the import, or whether this reusable item was newly created.
updatednumberRequiredExisting records updated by the import.
skippednumberRequiredSource records left unchanged or not imported.
notesobjectOptionalNote records included in the import.
Nested fields
scannednumberRequiredSource records examined by the import.
creatednumberRequiredRecords newly created by the import, or whether this reusable item was newly created.
updatednumberRequiredExisting records updated by the import.
skippednumberRequiredSource records left unchanged or not imported.
tasksobjectOptionalTask records included in the import.
Nested fields
scannednumberRequiredSource records examined by the import.
creatednumberRequiredRecords newly created by the import, or whether this reusable item was newly created.
updatednumberRequiredExisting records updated by the import.
skippednumberRequiredSource records left unchanged or not imported.
limitationsarray of objectRequiredKnown exclusions or incomplete coverage in this import run.
Item fields
keystringRequiredStable key identifying this option within its collection; distinct from its display label.
reasonstringRequiredExplanation of why this outcome occurred.
Allowed: "missing_scope", "no_equivalent", "degraded", "not_available".
detailstringOptionalAdditional explanation of the reported result.
countnumberOptionalNumber of matching items represented by this result.
portalobjectOptionalProvider account or portal identifier used by this connection.
Nested fields
idstringOptionalUnique identifier. Use the value returned by a create or list operation.
domainstringOptionalWebsite hostname, without a scheme or path.
currencystringOptionalThree-letter currency code, such as NOK, SEK or EUR.
started_atnumberRequiredTime this work started, in Unix milliseconds.
completed_atnumber or nullOptionalTime this work completed, in Unix milliseconds.
Errors & retries
This operation reads data. It needs no idempotency key and can be retried after a transient failure.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
Wait for Retry-After before retrying. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"examples": [
{}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "External service provider used by this connection."
},
"connection": {
"type": "object",
"properties": {
"connected": {
"type": "boolean",
"description": "Whether the CRM provider connection is active."
},
"account_domain": {
"type": [
"string",
"null"
],
"description": "Portal domain."
},
"currency": {
"type": [
"string",
"null"
],
"description": "Portal currency."
},
"status": {
"type": [
"string",
"null"
],
"description": "Current state reported for this item. Treat values as extensible unless an enum is declared."
},
"connected_at": {
"type": "number",
"description": "Recorded event time in Unix milliseconds."
}
},
"required": [
"connected"
],
"additionalProperties": false,
"description": "Connected provider account and its available import capabilities."
},
"optional": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional object types supported by this import."
},
"always": {
"type": "array",
"items": {
"type": "string"
},
"description": "Whether the action applies regardless of the existing cached result."
},
"not_imported": {
"type": "array",
"items": {
"title": "GetCrmImportStatusNotImported",
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable key identifying this option within its collection; distinct from its display label."
},
"reason": {
"type": "string",
"enum": [
"missing_scope",
"no_equivalent",
"degraded",
"not_available"
],
"description": "Explanation of why this outcome occurred."
},
"detail": {
"type": "string",
"description": "Additional explanation of the reported result."
},
"count": {
"type": "number",
"description": "Number of matching items represented by this result."
}
},
"required": [
"key",
"reason"
],
"additionalProperties": false
},
"description": "Object types or records this integration does not import."
},
"latest_job": {
"type": [
"object",
"null"
],
"properties": {
"job_id": {
"type": "string",
"description": "Run identifier."
},
"status": {
"type": "string",
"description": "queued | running | done | failed"
},
"progress_percent": {
"type": "number",
"description": "Progress pct."
},
"phase": {
"type": "string",
"description": "Current phase of the background import or preparation job."
},
"report": {
"description": "Import counts, exclusions and limitations from the run.",
"title": "CrmImportReport",
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"companies": {
"type": "object",
"properties": {
"scanned": {
"type": "number",
"description": "Source records examined by the import."
},
"created": {
"type": "number",
"description": "Records newly created by the import, or whether this reusable item was newly created."
},
"updated": {
"type": "number",
"description": "Existing records updated by the import."
},
"skipped": {
"type": "number",
"description": "Source records left unchanged or not imported."
}
},
"required": [
"scanned",
"created",
"updated",
"skipped"
],
"additionalProperties": false,
"description": "Company records included in the import or search."
},
"contacts": {
"type": "object",
"properties": {
"scanned": {
"type": "number",
"description": "Source records examined by the import."
},
"created": {
"type": "number",
"description": "Records newly created by the import, or whether this reusable item was newly created."
},
"updated": {
"type": "number",
"description": "Existing records updated by the import."
},
"skipped": {
"type": "number",
"description": "Source records left unchanged or not imported."
}
},
"required": [
"scanned",
"created",
"updated",
"skipped"
],
"additionalProperties": false,
"description": "Contact records included in the import."
},
"deals": {
"type": "object",
"properties": {
"scanned": {
"type": "number",
"description": "Source records examined by the import."
},
"created": {
"type": "number",
"description": "Records newly created by the import, or whether this reusable item was newly created."
},
"updated": {
"type": "number",
"description": "Existing records updated by the import."
},
"skipped": {
"type": "number",
"description": "Source records left unchanged or not imported."
}
},
"required": [
"scanned",
"created",
"updated",
"skipped"
],
"additionalProperties": false,
"description": "Sales opportunity records included in the import."
},
"notes": {
"type": "object",
"properties": {
"scanned": {
"type": "number",
"description": "Source records examined by the import."
},
"created": {
"type": "number",
"description": "Records newly created by the import, or whether this reusable item was newly created."
},
"updated": {
"type": "number",
"description": "Existing records updated by the import."
},
"skipped": {
"type": "number",
"description": "Source records left unchanged or not imported."
}
},
"required": [
"scanned",
"created",
"updated",
"skipped"
],
"additionalProperties": false,
"description": "Note records included in the import."
},
"tasks": {
"type": "object",
"properties": {
"scanned": {
"type": "number",
"description": "Source records examined by the import."
},
"created": {
"type": "number",
"description": "Records newly created by the import, or whether this reusable item was newly created."
},
"updated": {
"type": "number",
"description": "Existing records updated by the import."
},
"skipped": {
"type": "number",
"description": "Source records left unchanged or not imported."
}
},
"required": [
"scanned",
"created",
"updated",
"skipped"
],
"additionalProperties": false,
"description": "Task records included in the import."
}
},
"required": [],
"additionalProperties": false,
"description": "Per-object counts for the import."
},
"limitations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable key identifying this option within its collection; distinct from its display label."
},
"reason": {
"type": "string",
"enum": [
"missing_scope",
"no_equivalent",
"degraded",
"not_available"
],
"description": "Explanation of why this outcome occurred."
},
"detail": {
"type": "string",
"description": "Additional explanation of the reported result."
},
"count": {
"type": "number",
"description": "Number of matching items represented by this result."
}
},
"required": [
"key",
"reason"
],
"additionalProperties": false
},
"description": "Known exclusions or incomplete coverage in this import run."
},
"portal": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier. Use the value returned by a create or list operation."
},
"domain": {
"type": "string",
"description": "Website hostname, without a scheme or path."
},
"currency": {
"type": "string",
"description": "Three-letter currency code, such as NOK, SEK or EUR."
}
},
"required": [],
"additionalProperties": false,
"description": "Provider account or portal identifier used by this connection."
}
},
"required": [
"counts",
"limitations"
],
"additionalProperties": false
},
"started_at": {
"type": "number",
"description": "Time this work started, in Unix milliseconds."
},
"completed_at": {
"type": [
"number",
"null"
],
"description": "Time this work completed, in Unix milliseconds."
}
},
"required": [
"job_id",
"status",
"progress_percent",
"report",
"started_at"
],
"additionalProperties": false,
"description": "Latest run."
}
},
"required": [
"provider",
"connection",
"optional",
"always",
"not_imported",
"latest_job"
],
"additionalProperties": false,
"examples": [
{
"provider": "hubspot",
"connection": {
"connected": false
},
"optional": [
"deals",
"tasks"
],
"always": [
"companies",
"contacts",
"notes"
],
"not_imported": [],
"latest_job": null
}
]
}