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
- Start from the entity, not this page: Users -> Import. The Imports page is the history and status view.
- 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.
- 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.
- 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.
- 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.
- Verify against the inserted and updated lists in the detail view, each row linking to the record it created.
- Delete the import row afterwards if the file held personal data. Uploaded files stay on the server until the row is deleted.