title: "Bulk import format" description: "Bulk import consumes CSV files packaged in a single ZIP archive." This page defines how files must be structured, named, and parsed for the import to be acc...
Bulk import format
Bulk import consumes CSV files packaged in a single ZIP archive.
This page defines how files must be structured, named, and parsed for the import to be accepted and processed.
Only files that fully comply with these format rules can pass structural validation.
File structure
A bulk import consists of exactly one ZIP archive.
Rules for the archive:
- exactly one ZIP file per import
- the ZIP may contain multiple CSV files
- all CSV files must be located at the root level
- no subdirectories are allowed
- only
.csvfiles are processed
Each CSV file maps to exactly one target: either a table or a many-to-many relation.
File-to-target mapping is determined solely by the file name.
Required columns
Every CSV file must include a header row.
Regular tables
CSV files targeting regular tables must include the following columns:
_operationid_id
All three columns are mandatory, even if the values are empty.
Many-to-many relation files
CSV files targeting many-to-many relations must include:
_operationsource_sourcetarget_target
Each row represents exactly one relation edge.
Special columns
_operation
The _operation column defines the mutation applied for each row.
Supported values:
INSERTUPDATEDELETE
Operation constraints:
UPDATEandDELETErequire a resolvable identifier- many-to-many files only allow
INSERTandDELETE - invalid operations are rejected during validation
Identifier columns
Identifier columns are used to resolve target rows:
id→ internal system identifier_id→ external reference identifier
For relations, equivalent identifier pairs apply:
<relation>/_<relation>source/_sourcetarget/_target
Resolution rules are defined in the identifiers reference.
Parsing rules
CSV files are parsed using the following rules:
- RFC 4180 compliant format
- UTF-8 encoding
- comma-separated values
- header row is mandatory
- empty values are interpreted as
null - column names are case-sensitive
- column names must match schema API names exactly
Parsing occurs before any dry run or execution logic is applied.
Common errors
Format-related errors are detected during structural validation.
Typical causes include:
- missing mandatory columns
- incorrect file names
- invalid CSV structure or encoding
- unknown column names
- unsupported operations for the target file type
Structural validation errors prevent the import from proceeding.
Row-level data errors are handled separately during dry run and execution.
Related resources
How-to
Related concepts