Skip to content
Voxbi Cockpit APIs
API Guides

Imports

An import is a background job that creates or updates records in bulk from an uploaded CSV / XLSX / XLS file. You upload a spreadsheet, map its columns to fields, and the platform processes the rows asynchronously.

Overview

An import is started from the entity's own page (Users -> Import, Contacts -> Import). The Imports page is where you check status, open an import to see what it touched, complete one that was uploaded but never confirmed, or delete old rows (which does not undo imported data). Imports are supported for four entity types:

Entity Use case
Users Bulk onboard new users or update existing ones.
Contacts Import an external contact list into the PBX address book.
Keywords Bulk-load AI call-classification keywords with their prompts.
SIP devices Bulk-provision SIP devices, for example a fleet of hardware phones.

What it does

An import runs in two phases. You upload a file (status Incomplete), then confirm a column mapping plus per-entity options like skip on error, which queues the background job. If you never confirm the mapping, the import stays Incomplete and the list shows a Complete import action to resume.

Status Meaning
Incomplete File uploaded but mapping not confirmed. Use Complete import to resume.
Pending Job queued and waiting for a worker.
Processing Worker is reading and inserting / updating rows.
Completed All rows processed successfully.
Completed with errors Some rows failed validation. Open the detail view for the error list.
Failed The job aborted (catastrophic error, malformed file).

The detail view shows the inserted and updated records, each linking to its edit page, plus an error list giving the row number, failed attribute, validation messages, and original row data. The Skip on error option (on by default) controls what happens when a row fails. When on, bad rows are dropped and the rest proceed (Completed with errors). When off, the first bad row aborts the import (Failed).

How to bulk-create users from a spreadsheet

  1. Start from the entity, not this page: Users -> Import. The Imports page is the history and status view.
  2. Cut a test file of three or four rows first. An import cannot be undone in one click, so a wrong mapping on a thousand rows means deleting a thousand records by hand.
  3. Upload it, then confirm the column mapping. Nothing is created until you do: an import sits at Incomplete until the mapping is confirmed, and Complete import on the list resumes one you walked away from.
  4. Leave Skip on error on for the test run, then open the import and read the error list. It gives you the row number, the attribute that failed, and the original row.
  5. Fix the spreadsheet and run the full file, keeping the headers identical to the test file. The mapping is per file and nothing is saved between runs.
  6. Verify against the inserted and updated lists in the detail view, each row linking to the record it created.
  7. Delete the import row afterwards if the file held personal data. Uploaded files stay on the server until the row is deleted.

See also

Form fields

Fields available in the create and edit forms.

General

User

The user who started this import.

Resource type

The type of records being imported (for example, User or Contact).

Status

The current state of the import: Incomplete, Pending, Processing, Completed, Failed, or Completed with errors.

Duration

How long the import took to finish, in seconds. Only shown after the import completes.

Created at

When the import file was uploaded.

Started at

When background processing began.

Completed at

When the import finished processing.

Errors

A list of validation or processing errors that came up during the import, showing the row number, attribute, error messages, and original row data.

Number of errors

The total number of errors encountered during processing.

Number of records inserted and updated

The total number of records that were inserted or updated by this import.

Records inserted

Links to the individual records that were newly created by this import.

Records updated

Links to the individual records that were updated by this import.

Complete import

An action button that lets you finish configuring an import that was uploaded but not yet started.

Updated