Skip to main content

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.
File name extension

There is no constraint on file extension. ETLs only handle CSV-formatted content regardless of how the file is named.

Encoding

Supported encodings:

  • UTF-8
  • ISO-8859-1

The encoding must be declared in the ETL definition and match the actual file encoding.

BOM characters

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

TypeFormatExample
StringPlain text, max 255 charsJohn Smith
NumericInteger or decimal, . as decimal separator3.14, -42
BooleanSee accepted values belowTRUE, 1, Y
Dateyyyy-MM-dd2024-03-15
Date-timeyyyy-MM-dd hh:mm:ss2024-03-15 14:30:00
EmailValid email addressjohn.smith@actito.com
PhoneInternational format, restricted charset+3210458514
LanguageISO 639-1 (2 chars)FR
CountryISO 3166-1 alpha-2 (2 chars)BE
SexM or FM
Person titleMr, Mrs, or MsMrs
UTM coordinatesWSG 84, | separator, . decimal4.610927|50.675338
Empty values on update

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):

TrueFalse
TRUEFALSE
10
Y / YESN / NO
TF
VRAI / OUI / OFAUX / 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

Source format transformation

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, set attributeName to subscriptions#xxxx where xxxx is the subscription name.

Segmentations

Segmentations represent business categories a profile belongs to. One column per segmentation.

  • Simple segmentation: Member if 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, set attributeName to S_xxxx where xxxx is the technical name of the segmentation.
Technical names vs. display names

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.