Input files — format and data validation
File delivery
ETLs accept files compressed with ZIP or GZIP, or uncompressed. ZIP archives can contain multiple CSV files; GZIP compresses one file at a time.
Compressed file names and CSV file names are independent. There is no constraint on file extension — a CSV file can be named myfile.txt.
CSV format
CSV files must conform to the CSV RFC 4180. The comma separator can be replaced by any single character, configured per ETL definition.
Structural requirements:
- Every line must contain the exact same number of columns.
- The first line must contain column headers. ETLs rely on headers to map columns to data model attributes — column order is irrelevant.
- Any column containing the separator character must be properly enclosed.
- Columns containing free text (including carriage returns or line feeds) must be enclosed to prevent them from being parsed as new lines.
There is no constraint on file extension. ETLs only handle CSV-formatted content regardless of how the file is named.
Encoding
Supported encodings:
UTF-8ISO-8859-1
The encoding must be declared in the ETL definition and match the actual file encoding.
UTF-8 WITH BOM and UTF-16 WITH BOM are not supported. Files with a BOM leading character will be rejected.
Data types
Quick reference
| Type | Format | Example |
|---|---|---|
| String | Plain text, max 255 chars | John Smith |
| Numeric | Integer or decimal, . as decimal separator | 3.14, -42 |
| Boolean | See accepted values below | TRUE, 1, Y |
| Date | yyyy-MM-dd | 2024-03-15 |
| Date-time | yyyy-MM-dd hh:mm:ss | 2024-03-15 14:30:00 |
| Valid email address | john.smith@actito.com | |
| Phone | International format, restricted charset | +3210458514 |
| Language | ISO 639-1 (2 chars) | FR |
| Country | ISO 3166-1 alpha-2 (2 chars) | BE |
| Sex | M or F | M |
| Person title | Mr, Mrs, or Ms | Mrs |
| UTM coordinates | WSG 84, | separator, . decimal | 4.610927|50.675338 |
When updating existing records, an empty CSV value voids the current database value — unless ignoreEmptyValues is set to true in the ETL definition.
Exception: empty values on boolean fields (including subscriptions) are always ignored, as booleans must remain true or false.
Basic types
String
- Max 255 characters, unless overridden in the attribute definition.
- Must match the optional regexp defined on the attribute.
Numeric
- Integers, longs, or decimals.
- Negative numbers prefixed with
-. Positive numbers must not be prefixed with+. - Decimal separator:
.
Boolean
Accepted values (case-insensitive):
| True | False |
|---|---|
TRUE | FALSE |
1 | 0 |
Y / YES | N / NO |
T | F |
VRAI / OUI / O | FAUX / NON / N |
Date
Format: yyyy-MM-dd
Date-time
Format: yyyy-MM-dd hh:mm:ss
Standard Actito attributes
Email address
Must be a valid email address. Example: john.smith@actito.com
Phone number
Accepted characters: +().- /0123456789
Must include the international country prefix. Example: +3210458514
Mother language
ISO 639-1 format (2 characters). Example: FR
Country
ISO 3166-1 alpha-2 format (2 characters). Example: BE
Sex
M (male) or F (female)
Person title
Mr, Mrs, or Ms
UTM coordinates
WSG 84 format. Separator between latitude and longitude: |. Decimal separator: .
Example: 4.610927|50.675338
If your source system cannot produce the formats above, define data transformations in the ETL to convert raw values before ingestion. See Transform section.
Profile table attributes
The following attribute types are specific to Profile tables.
Subscriptions
Subscriptions represent the opt-in preferences of a profile. One column per subscription.
- Expected value: boolean (
true/false). - In
attributesMapping, setattributeNametosubscriptions#xxxxwherexxxxis the subscription name.
Segmentations
Segmentations represent business categories a profile belongs to. One column per segmentation.
- Simple segmentation:
Memberif the profile belongs to the segmentation, empty otherwise. - Exclusive segmentation: the technical name of the segment sub-category (shown in parentheses in the interface, not the display label). Empty field means no category assigned, if the segmentation is not mandatory.
- In
attributesMapping, setattributeNametoS_xxxxwherexxxxis the technical name of the segmentation.
Technical names are normalized and may differ from display names (spaces and special characters removed). Use the value shown in parentheses in the interface. For example, if the display label is Gold Member, the technical name and the expected CSV value is GoldMember.
Multi-value attributes
Multi-value attributes hold several distinct values at once (e.g. football,hockey,cycling).
- Values are separated by
,. This separator is fixed and cannot be customized. - If the ETL includes multi-value attributes, use a different character as the main column separator.
,is never allowed within individual values, even when escaped.