Building an ETL Pipeline (Model & ETL)

  • Last Created On Sep 19, 2026
  • 5
0 0

1. Overview

Model & ETL is the Business Intelligence feature used to build pipelines that pull data out of a connected Data Source, join and transform it across multiple tables, and load the result into a dataset the BI platform can use directly.

A pipeline is the set of instructions for that process: which data source and tables to read from, how those tables relate to each other, which columns to keep and how to rename or aggregate them, any extra transformation logic, the structure of the resulting output dataset, and how often the pipeline should run.

Once a pipeline has run successfully, its output dataset can be used the same way as any other dataset — for KPI tracking, report building, and further analysis.

Navigate to: Business Intelligence → Model & ETL → Pipeline 



2. Add Pipeline 

Creating a pipeline is a 6-step wizard:

1. Pipeline Info

2. Select Source

3. Field Mapping

4. Transform Builder

5. Output Dataset

6. Schedule 

Step 1 – Pipeline Info

The first step captures the pipeline's basic information.


To complete this step:

  1. Enter a Pipeline NameA unique, descriptive name for the pipeline, e.g. “Invoices by Client” or “Lead Source Overview”.
  2. Enter a Description of the pipeline's purposeA short explanation of what the pipeline does and what business need it serves.
  3. Select a Load Type How the pipeline loads data on each run (Full Load or Incremental Load).
    • Full Load: reloads all data from the selected source tables on every run. Simplest option; best for small tables or the first version of a pipeline.

    • Incremental Load: loads only new since the last run. More efficient for large tables. 
  4. Click Next.

     Step 2 – Select Source

This step defines which data source and which tables the pipeline will read from.


To complete this step:

1. Select a Data Source from the dropdown: Choose one of the data sources already configured under Business Intelligence → Data Sources

2. In Select Tables, search for and check at least two tables: A searchable, scrollable checklist of every table available in the chosen data source (the same list retrieved via Load Schema on the data source). Check a table to include it in the pipeline; use the eye icon to preview its columns first. Examples: select  tblinvoices and tblclients

3. Set one of the checked tables as the Primary Table: The main, driving table for the pipeline. This field only becomes selectable after at least one table is checked in Select Tables below.  Examples: select  tblinvoices as primary table

4. Adjust Preview limit if needed: The number of rows fetched when previewing data while building the pipeline (default 50).

5. Click Next.


    Step 3 – Field Mapping

This step defines how the selected tables relate to each other, and which columns flow into the output dataset.


Join Builder

Define how each additional table connects to the Primary Table (or to another joined table):

Join type – e.g. INNER (only matching rows from both tables), LEFT.

Join condition – in the form table.column = table.column, for example tblacc_accounts.id = tblacc_account_history.account, or tblinvoices.clientid = tblclients.userid.

Column Selection

The left-hand panel lists each selected table as a card, with the Primary Table labeled PRIMARY and its primary key marked PK. Expand a table's card to see its columns, and check every column that should be included in the output dataset.

Important: You must tick at least one column from the left-hand panel before running Preview. If no columns are selected, the Mapping table stays empty and Run Preview falls back to a placeholder query (SELECT 1 AS no_data ... ) that only checks whether the join finds matching rows — it does not preview any real data. Select the columns you need first, then run Preview again to see actual field values.

Mapping

Once columns are checked on the left, they appear automatically as rows in the Mapping table, which records:

Source – the originating table.column.

Target – the field name it will have in the output dataset.

Type – the data type of the field (text, number, date, etc.).

Aggregation – an optional summary function (e.g. Sum, Count, Average) applied when the dataset needs aggregated values rather than row-level detail.

Preview

Use Run Preview to execute the join and mapping against a sample of rows (up to the Preview limit set in Step 2) and confirm the result looks correct before moving on to Transform Builder.

To complete this step:

1. In the left-hand panel, check the columns to include from each table.

2. In Join Builder, choose the join type and set the join condition(s) linking each table back to the Primary Table.

3. Review or adjust the Target name, Type, and Aggregation for each mapped field.

4. Click Run Preview to check the joined result — confirm it shows real columns and data, not just a no_data placeholder.

5. Click Next once the preview looks correct.

Step 4 – Transform Builder

Transform Builder applies filters and calculated fields to the joined result from Field Mapping, before it is written to the output dataset.



Filters

Each filter row narrows down which rows are included in the output dataset:

table.column – the field to filter on, e.g. tblinvoices.status.

Operator – the comparison to apply (=, !=, >, <, LIKE, IN, BEETWEEN, DATE).

Click + Add Filter to add another condition. Click the red × button to remove a filter row.

Tip: Use filters to limit the dataset to the rows that matter — for example, only paid invoices, or only leads created this year — rather than loading every row from the joined tables.

Calculated Fields

A calculated field adds a new column to the output dataset, computed from the fields already selected in Field Mapping:

field name – the name the new column will have in the output dataset.

Formula – an expression combining existing fields, e.g. total - discount.

Click + Add Calculated to add another calculated field. Click the red × button to remove one.

Preview

Click Preview to run the filters and calculated fields against the joined data and check the result before moving on to Output Dataset.

To complete this step:


1. Add any filter conditions needed to limit the rows in the dataset, using + Add Filter for each additional condition.

2. Add any calculated fields needed, giving each a field name and a formula, using + Add Calculated for each additional field.

3. Click Preview to check the filtered and calculated result.

4. Click Next to continue to Output Dataset.

Step 5 – Output Dataset 

This step defines the dataset that will be produced once the pipeline runs, using the joined and transformed result from Field Mapping (Step 3) and Transform Builder (Step 4).


To complete this step:

1. Enter a Dataset NameA unique, descriptive name for the output dataset. This is the name other Datasets, Reports, Dashboards, and KPI calculations will use to query this pipeline's result — e.g. invoices_by_client_paid_vn.

2. Select a Storage typeTable or View
Table
The result is physically materialized and stored as its own table.
View
Only the query is stored; data is read live from the source tables each time.

3. Select a Write mode Replace or Append.
Replace
Deletes and overwrites all existing data in the dataset on every run. Use when: Snapshot-style or periodic reporting datasets, e.g. current status as of the last run.
Append: Keeps existing data and adds only the new rows produced by each run. Use when: Historical or log-style datasets that should accumulate over time.

4. Click Preview dataset to check the generated SQL and the resulting data in Data Preview.

5. Click Next to continue to Step 6 – Schedule.

Step 6 – Schedule

This final step defines when and how often the pipeline runs automatically once Field Mapping, Transform Builder, and Output Dataset have been configured.


To complete this step:

1. Choose Select scheduleThe overall schedule type for the pipeline: Hourly or Weekly.

2. Choose Frequency — How often the pipeline actually runs: Hourly, Daily, or Weekly. This field determines which additional fields appear below it.

3. Fill in the additional fields shown for the chosen Frequency.

4. Set Start Time — the date the schedule becomes active.

5. Enter Retry Attempts if automatic retries on failure are needed.

6. Check Notify on failure to receive alerts when a run fails. Notifications are sent to the Pipeline creator.

7. Click Finish to complete pipeline creation.

Running and Verifying a Pipeline

After clicking Finish in Step 6, the pipeline is saved and appears in the Pipelines list under Business Intelligence → Model & ETL. This screen is also where a pipeline can be run manually and its result verified.


Running a Pipeline Manually

A newly created pipeline shows N/A in Run Status and “–” in Last Run, since it has not executed yet — whether or not a schedule was configured in Step 6. To run it immediately rather than waiting for the schedule:


1. Find the pipeline in the Pipelines list.

2. Click the green Run button (play icon) in the Actions column for that pipeline.

3. Wait for the run to complete. Run Status changes from N/A to Success once it finishes, and Last Run updates to the current timestamp.

4. If Run Status shows a failure instead of Success, click the pipeline name to re-open it and review Field Mapping, Transform Builder, and Output Dataset for issues.

Note: Run Status reflects only the most recent run. Running the pipeline again — manually or on schedule — overwrites this status with the new result.


Pipeline Detail Page

Clicking a pipeline's name in the Pipelines list opens its detail page, with four tabs: Overview, Mapping, Output Dataset, and Logs. The same Run, Edit (pencil), and Delete actions available from the Pipelines list are also available here, in the top-right corner.

Overview tab

A read-only summary of the pipeline's configuration from Steps 1, 2, and 6:


  • Source – the data source selected in Step 2.
  • Primary Table – the Primary Table selected in Step 2.
  • bi_tables – every table used in the pipeline (primary and related), shown as badges.
  • Frequency and Start Time – the schedule configured in Step 6.
  • Created at / Created by – when the pipeline was created and by whom.

Mapping tab

A read-only view of the join and field mapping configured in Step 3 – Field Mapping:


  • Primary Table and Related Tables – the tables involved in the pipeline.
  • Join Conditions – the Join Type, Left Field, and Right Field configured in Join Builder.
  • Source Field / bi_alias / Aggregation – every mapped column, its output name (bi_alias corresponds to the Target column in Step 3), and its aggregation setting.

Output Dataset tab

Shows the SQL the pipeline generates and a live preview of its result:


  • Sql Query – the full SQL statement generated from Field Mapping and Transform Builder, including any filters and calculated fields (for example days_to_due).
  • Preview Result – the rows currently produced by that query.

Logs tab

A step-by-step log of the pipeline's most recent run — useful for troubleshooting a run that failed


Each row logs one stage of the run — Connecting data source, Executing dataset query, Writing dataset, Sync dataset registry, Extract dataset schema, and Pipeline executed successfully — with its own Status, Rows, and Execution Time. If a run fails, the stage where it failed will show a non-success status here.

Views: 5

Recent Articles

  • Building Dashboards
    9
  • Analysis (OLAP – Comparative)
    6
  • KPI & Metrics
    7
  • Building Reports (Report Builder)
    8
  • Dataset
    7

Popular Articles

  • Connect your X (Twitter) account and Syn...
    3358
  • Warehouse
    2717
  • Item Settings
    2268
  • X (Twitter) Analytics
    2132
  • Plaid environment & Setup Your Bank Acco...
    2043