Skip to main content

ETL and Report Templates

ETL templates define how external data files are parsed and loaded into the platform. Report templates define how data is extracted and formatted for export. Together they provide the data import/export infrastructure that domain modules use for bulk operations.

ETL templates

Each template defines the parsing configuration for a specific file format and target entity.

File format configuration

AttributePurpose
NameHuman-readable name
File formatFile type: CSV, TSV, or XLSX
Target entityThe entity type to load data into
Skip rowsNumber of header rows to skip
Header rowRow number containing column headers
SeparatorField separator
Quote characterQuote character
Thousands separatorThousands separator for numeric parsing
Decimal separatorDecimal separator

Column mapping

AttributePurpose
Columns by nameColumn names to import
Columns by positionColumn positions to import (alternative to names)
Column name overridesOverride column names (when file has no header)
Output columnsColumn names in the target entity
ConvertersColumn-specific type conversion rules

Template lines

Individual transformation rules within a template. Each line defines how a single source column maps to a target field, including any data transformation logic.

Report templates

Define report configurations for data export and display:

AttributePurpose
NameHuman-readable name
DescriptionWhat the report covers
CodeUnique code within the tenant
VisibilityWho can see/use this template: PERSONAL or ORGANIZATION

Report templates are referenced by the job system — generating a report creates a job that executes the template and stores the output as a document.

Authorization

ETL and report templates use specific permission checks, ensuring only users with explicit template management roles can create or modify templates. This is more restrictive than the general Foundation permissions.

Relationship to jobs

ETL and report execution both flow through the job system:

  1. A user selects a template and submits parameters
  2. A job is created referencing the relevant program (e.g. ETL_IMPORT, REPORT_GENERATE)
  3. A worker picks up the job, loads the template configuration, and executes
  4. Results are stored as documents
  5. Notifications are sent based on the program's notification group