CSV Import: Frequently asked questions and common issues
Overview
The CSV data import transfers data from spreadsheets (Excel, LibreOffice) into the i-doit CMDB. Many organizations use spreadsheets for their IT documentation — the CSV import provides a structured way to consolidate this data in i-doit.
The import is located under Extras > Import > CSV Import.
Prerequisites
- CSV file in UTF-8 encoding (convertible e.g. via Notepad++)
- First row contains column headers
- Each subsequent row corresponds to one object
- Create a complete backup before each import
Workflow
1. Upload file
Upload the CSV file via the upload dialog. After upload, the options "Use for import", "Download" and "Delete" become available.
2. Configure options
Object type: Either set a global object type for all rows, or control per row via a column with the database constant (e.g. C__OBJTYPE__SERVER). A mixed approach is not possible.
Separator: Default is semicolon (;). Can be adjusted as needed.
Empty values:
- Yes: Empty cells overwrite existing attributes in i-doit
- No: Empty cells are ignored, existing data is preserved
Multi-Value categories (list categories): Three input modes:
- Additional rows: The same object (same title) in multiple CSV rows with different category entries
- Comma-separated list: Multiple values in one cell, separated by commas
- Columns: All entries in separate columns
For existing entries in Multi-Value categories, three modes are available: "Create only if empty", "Append" or "Replace".
3. Map columns
Each CSV column is assigned to an i-doit attribute via the pencil icon. Required fields:
- Object title — always required
-
Object type — required if no global type is set (use database constant, e.g.
C__OBJTYPE__SERVER)
Columns without assignment are ignored during import.
4. Values with units
Attributes with units (e.g. memory, frequency) are entered combined in one cell: 4 TB, 2.5 GHz, 24 Inch. When mapping, select the variant with "(Unit)".
5. Save profile
Column mappings and options can be saved as a profile. For recurring imports with identical CSV structures, the mapping does not need to be reconfigured. Profiles can also be referenced via the CLI.
6. Start import
Select the logging detail (Debug recommended for initial tests), then click "Import". After completion, links to the imported/updated objects are displayed.
Practical examples
Importing relationships (links)
Objects can be linked to each other during import — e.g. a client with its associated user or an application with a server.
- Add a column in the CSV with the exact object title of the object to be linked
- Select the relationship type during column mapping (e.g. "Contact assignment")
- Optional: Enable "Create objects automatically" if the target object does not yet exist (target object type must be specified)
Assigning organizations
Add an "Organization" column to the CSV and configure the corresponding Organization Matching in the import profile. The name in the CSV must exactly match the organization name in i-doit.
Multiple object types in one file
Leave the global object type empty and instead use a column with the database constant per row:
ObjectType;ObjectTitle;Manufacturer
C__OBJTYPE__SERVER;SRV-WEB-001;Dell
C__OBJTYPE__CLIENT;PC-HR-042;Lenovo
C__OBJTYPE__MONITOR;MON-HR-042;Dell
The constant can be found under Administration > Data Structure > Object Type Configuration. Display names do not work — the constant must be used.
Automated import via CLI
sudo -u www-data php console.php import-csv \
--user admin --password admin \
--tenantId 1 --importFile /path/to/file.csv \
--importProfileId 1
List profile IDs: console.php import-csvprofiles
Common issues
CSV files not displayed after upload (v38)
Symptom: Files do not appear in the import list after upload.
Cause: A bug in v38 with filenames containing umlauts (e.g. Räume.csv). All files alphabetically after the affected file are also hidden.
Workaround: Use only ASCII characters in filenames (e.g. Raeume.csv).
Import profiles not displayed
Solution: A profile must be created first. During the first import, configure the column mapping manually and save it via "Save profile".
Objects are created as duplicates
Cause: No identification feature configured.
Solution: Select an Object Matching Profile that identifies existing objects by a characteristic (e.g. object title, inventory number, serial number).
IP addresses imported without network assignment
Automatic assignment to the Layer 3 network only works with manual entry in the host address category. During CSV import, the network must be specified as a separate column.
Imported data contains special characters
Cause: Incorrect encoding of the CSV file.
Solution: Open the file in Notepad++ > Encoding > Convert to UTF-8 > Save.
High memory consumption with large imports
For very large CSV files, the import may abort. Increase the PHP memory limit or split the file into smaller parts.
Detailed documentation: CSV data import in the Knowledge Base | Example: Importing applications
Comments
0 comments
Please sign in to leave a comment.