Skip to content

API reference

Get CRM import run

customers.GetCrmImportRunReadAPI key

Read a CRM import’s progress and per-object counts. Created and updated counts describe records written; skipped records and limitations explain what was left out. Requires an owner or administrator. The same job ID can be used with workspace.GetJob by the person who started it.

POST/v1/operations/customers.GetCrmImportRun
On this page

Access & visibility

Allow customers.GetCrmImportRun 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.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

job_idstringRequired

Run identifier.

At least 1 character.

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.

job_idstringRequired

Run identifier.

statusstringRequired

queued | running | done | failed

progress_percentnumberRequired

Progress pct.

phasestringOptional

Current phase of the background import or preparation job.

reportCrmImportReportRequired

Import counts, exclusions and limitations from the run.

CrmImportReport
countsobjectRequired

Per-object counts for the import.

Nested fields
companiesobjectOptional

Company records included in the import or search.

Nested fields
scannednumberRequired

Source records examined by the import.

creatednumberRequired

Records newly created by the import, or whether this reusable item was newly created.

updatednumberRequired

Existing records updated by the import.

skippednumberRequired

Source records left unchanged or not imported.

contactsobjectOptional

Contact records included in the import.

Nested fields
scannednumberRequired

Source records examined by the import.

creatednumberRequired

Records newly created by the import, or whether this reusable item was newly created.

updatednumberRequired

Existing records updated by the import.

skippednumberRequired

Source records left unchanged or not imported.

dealsobjectOptional

Sales opportunity records included in the import.

Nested fields
scannednumberRequired

Source records examined by the import.

creatednumberRequired

Records newly created by the import, or whether this reusable item was newly created.

updatednumberRequired

Existing records updated by the import.

skippednumberRequired

Source records left unchanged or not imported.

notesobjectOptional

Note records included in the import.

Nested fields
scannednumberRequired

Source records examined by the import.

creatednumberRequired

Records newly created by the import, or whether this reusable item was newly created.

updatednumberRequired

Existing records updated by the import.

skippednumberRequired

Source records left unchanged or not imported.

tasksobjectOptional

Task records included in the import.

Nested fields
scannednumberRequired

Source records examined by the import.

creatednumberRequired

Records newly created by the import, or whether this reusable item was newly created.

updatednumberRequired

Existing records updated by the import.

skippednumberRequired

Source records left unchanged or not imported.

limitationsarray of objectRequired

Known exclusions or incomplete coverage in this import run.

Item fields
keystringRequired

Stable key identifying this option within its collection; distinct from its display label.

reasonstringRequired

Explanation of why this outcome occurred.

Allowed: "missing_scope", "no_equivalent", "degraded", "not_available".

detailstringOptional

Additional explanation of the reported result.

countnumberOptional

Number of matching items represented by this result.

portalobjectOptional

Provider account or portal identifier used by this connection.

Nested fields
idstringOptional

Unique identifier. Use the value returned by a create or list operation.

domainstringOptional

Website hostname, without a scheme or path.

currencystringOptional

Three-letter currency code, such as NOK, SEK or EUR.

started_atnumberRequired

Time this work started, in Unix milliseconds.

completed_atnumber or nullOptional

Time 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

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "minLength": 1,
      "description": "Run identifier."
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "job_id": "e_example"
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "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,
  "examples": [
    {
      "job_id": "e_example",
      "status": "completed",
      "progress_percent": 1,
      "report": {
        "counts": {},
        "limitations": []
      },
      "started_at": 1794301200000
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.