Skip to main content

Configuration - Jobs - File formats

Updated over a week ago

File formats determine how Zero Friction reads and processes CSV files during import jobs. They define how columns are separated, how dates and numbers are interpreted, and how columns are linked to measurements and attributes (such as meter serial, unit, and utility type).

You can find this component via Configuration → Jobs → File formats.

Correct configuration is essential to:

  • Import measurement data reliably

  • migrations (customers, contracts, invoices) to be carried out without errors

  • to keep automatic and scheduled imports running stably


What does this part show?


The File Formats page shows an overview of all available formats:

  • Name – The name of the file format

  • Description – Brief explanation

  • CategoryMetering or Migration

  • Format – Specific type (e.g. Elvaco 1104, Custom Csv, ZF BulkImport)

  • TypeBuilt-in (system) or Custom (created by you)

Built-in formats are shown at the top; custom formats follow alphabetically.


Layout

Built-in vs. custom sizes

Built-in formats

  • Pre-configured for common meters (including Elvaco, Cadis, Kamstrup)

  • Read-only (cannot be edited or deleted)

  • Can be used directly in import jobs

Custom sizes

  • Created by you, usually via Custom CSV

  • Fully configurable

  • Suitable for custom CSV structures


Categories

  • Metering – For importing meter readings (multiple built-in types + Custom CSV)

  • Migration – For bulk import of customers, contracts and invoices (ZF BulkImport)

The category and format type cannot be changed after creation.


Actions

Users with appropriate rights can:

  • Create custom file formats

  • edit custom sizes

  • Delete custom sizes (soft delete)

Embedded formats can only be viewed.


Behaviors & Logic

Parameters (basic)

When creating/editing a custom format, configure:

  • Time Zone – Context for date/time in the file

  • Date/Time Format – For example, dd/MM/yyyy, yyyy-MM-dd

  • Delimiter – Comma, Semicolon, or Tab

  • Decimal separator – . or ,

  • Thousands separator – Optional (e.g., , or space)

  • Culture – Regional parsing (e.g., nl-NL, en-US)


Custom CSV – Metering

Header

  • First line is header: check if column names are present

Values

  • Value Path – Column index (0-based) containing the measured value

  • End Date Path – Column index with date/time

Attributes

  • Linking columns to attributes such as:

    • Meter serial

    • Unit

    • Utility type

  • By attribute:

    • Path (column index), or

    • Fixed Value (fixed value for all rows)

Example
CSV:

MeterID,Date,Value,Unit,Utility 12345,01/01/2024,1250.5,kWh,Electricity

Configuration:

  • Delimiter: ,

  • Date format: dd/MM/yyyy

  • Header: on

  • Value Path: 2

  • End Date Path: 1

  • Attributes:

    • Meter serial: Path 0

    • Unit: Path 3

    • Utility type: Path 4


Migration formats (ZF BulkImport)

Specifically for bulk import of administrative data.

Settings include:

  • Invoice date handling

    • Do nothing

    • Recalculate invoice periods

    • Link to existing periods

  • Advances expected periodically – Indicate whether advances are imported regularly


Use in Jobs

File formats are used in:

  • Import Jobs (migration)

  • Metering Imports (meter readings)

  • Scheduled imports via data providers

Important: If you delete a format that is currently in use, existing jobs will fail with an error. In that case, create a new format and upload the files again.



Why can't I edit a built-in format?
Because it's managed by the system, create a custom format.

How do I choose the right size?
Start with a built-in format that fits your meter. If that doesn't work, use Custom CSV.

My CSV file uses tabs instead of commas. What should I do?
Select Tab as the separator.

Can I change a size later?
Yes, for custom sizes. The category and format type are fixed.

What happens when you delete a format?
It will be soft-deleted; jobs that use it will fail.

Why don't I see all the format type options?
Some types are hidden from UI usage (historical/API).

How do column paths work?
0-based: first column = 0, second = 1, etc.

Path vs. Fixed Value?
Path reads from a column; Fixed Value uses a single fixed value for all rows.


  • Built-in format – Preconfigured system format (read-only)

  • Custom Size – User-configured size

  • Delimiter – Separator between columns

  • Format type – Concrete implementation (e.g. Custom Csv)

  • Metering format – For importing meter readings

  • Migration format – For bulk import of administrative data

  • Path – 0-based column index

  • Value Path – Column with the measured value

  • End Date Path – Column with the end date/time

  • Attribute – Additional metadata for a measurement

  • Fixed Value – Fixed value instead of column value

  • Culture – Date/Number Parsing Rules

  • Time Zone – Context for date/time in files

Did this answer your question?