CSV / TSV
Combining files
This group merges several loaded CSV/TSV tables into a new one: stack them one below another, join them side by side on a shared column, or compare two versions to see what changed. Every instruction in this group reads existing loaded documents and produces a brand-new document — it never touches the originals.
Prerequisite: the documents you want to combine must already be loaded — each created with Create CSV/TSV file or opened with one of the Reading instructions — and, in general, loaded with headers (named columns), because these instructions match and align rows by column name.
These concepts recur across the instructions in this group; they are explained here once.
- Inputs are documents, referenced by key — not files. You don’t point these instructions at a file on disk; you point them at documents already loaded in the workflow, using their document key (Base/Compare document key, Primary/Secondary document key, or the comma-separated Source document keys). An unloaded key simply contributes no rows.
- Columns are matched by name, ignoring upper/lower case. These instructions expect tables loaded with headers. Rows are aligned and joined by column name; a document loaded without headers (rows are plain lists of values) contributes no named columns and is effectively ignored.
- The result is a new document (
Output …fields): the combined table is registered as a separate document — the sources are left unchanged. Output name is the file it will be saved under, Output path is its folder, Output document key names it so later instructions can target it, and Output delimiter decides the extension (a tab saves it as.tsv, anything else as.csv). The result is only produced when at least one of Output name or Output document key is filled in; otherwise the instruction does nothing. - Case sensitive key: for the joins and the compare, this controls whether the values in
the key column are matched exactly (
Apple≠apple) or treated the same regardless of case. Default is No (case is ignored). - Dynamic values
@name: the text fields (the document keys, column names, Output name, Output path, etc.) accept a saved value — type@followed by its name and the engine substitutes it at run time. - Saving a result (
Save … count keyfields): these instructions save row counts (how many rows were written, added, removed, …). Type a name and the count is stored under it for later instructions to use with@name; leave it empty and nothing is saved.
Compare Files .csv
Compares two versions of a table and writes out only the differences — the rows that were added, removed, or modified between them.
When to use it: to audit what changed between two exports — a yesterday-vs-today snapshot, an original vs an edited file — keyed on a column that uniquely identifies each row.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Base document key | The original/“before” loaded table (accepts @name) |
(empty) | Yes |
| Compare document key | The “after” loaded table to compare against the base (accepts @name) |
(empty) | Yes |
| Key column | The column that uniquely identifies each row (accepts @name) |
(empty) | Yes |
| Case sensitive | Yes = match the key values exactly; No = ignore upper/lower case | No |
No |
| Output delimiter | Delimiter/extension of the produced document (accepts @name) |
, |
No |
| Case sensitive (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Output name | File name the new document will be saved under (accepts @name) |
(empty) | To save |
| Output path | Folder the new document will be saved to (accepts @name) |
(empty) | To save |
| Output document key | Names the new document so later instructions can target it (accepts @name) |
(empty) | No |
| Save added count key | Saves the number of added rows | (empty) | No |
| Save removed count key | Saves the number of removed rows | (empty) | No |
| Save modified count key | Saves the number of modified rows | (empty) | No |
Important behavior: the instruction does nothing unless both Base document key and Compare
document key are given. If you fill in neither Output name nor Output document key, the
comparison still happens and its counts are still saved — only the result document is not kept. The result table has a leading
_Change column tagging each row as Removed, Added, or Modified, followed by all the
columns of the base table. A row present in the base but not in the compare is Removed; one
present in the compare but not the base is Added; one present in both but with any differing
value is Modified. Rows are keyed by Key column (whose matching honors Case sensitive
key), while the value-by-value change check is always exact. A tab Output delimiter saves
the result as a .tsv.
Concatenate Files .csv
Stacks the rows of several loaded tables one below another into a single new document.
When to use it: to append monthly exports, combine split files, or merge tables that share the same columns into one long table.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Source document keys | The loaded documents to stack, as a comma-separated list of keys, e.g. jan,feb,mar (accepts @name) |
(empty) | Yes |
| Require matching headers | Yes = skip any document whose columns don’t match the first one; No = include every document | Yes |
No |
| Output delimiter | Delimiter/extension of the produced document (accepts @name) |
, |
No |
| Require matching headers (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Output name | File name the new document will be saved under (accepts @name) |
(empty) | To save |
| Output path | Folder the new document will be saved to (accepts @name) |
(empty) | To save |
| Output document key | Names the new document so later instructions can target it (accepts @name) |
(empty) | No |
| Save count key | Saves the number of rows written | (empty) | No |
Important behavior: the instruction does nothing if Source document keys is empty. If you fill
in neither Output name nor Output document key, the stacking still happens and Save count
key is still saved — only the combined document is not kept. The column layout of the first non-empty
document wins — every row in the result is aligned to those columns (extra columns from other
documents are dropped, missing ones are left blank). With Require matching headers = Yes, any
document whose columns don’t exactly match that first layout is skipped entirely. Empty or
unloaded documents are skipped. A tab Output delimiter saves the result as a .tsv.
Join Files .csv
Combines two tables side by side by matching a key column — an inner join, so only rows that have a match on both sides are kept.
When to use it: to enrich one table with columns from another — e.g. add customer details to an orders table by matching on a customer ID.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Primary document key | The main loaded table (accepts @name) |
(empty) | Yes |
| Secondary document key | The table whose columns are added on (accepts @name) |
(empty) | Yes |
| Primary key column | The column in the primary table used to match rows (accepts @name) |
(empty) | Yes |
| Secondary key column | The column in the secondary table used to match rows (accepts @name) |
(empty) | Yes |
| Case sensitive | Yes = match the key values exactly; No = ignore upper/lower case | No |
No |
| Output delimiter | Delimiter/extension of the produced document (accepts @name) |
, |
No |
| Case sensitive (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Output name | File name the new document will be saved under (accepts @name) |
(empty) | To save |
| Output path | Folder the new document will be saved to (accepts @name) |
(empty) | To save |
| Output document key | Names the new document so later instructions can target it (accepts @name) |
(empty) | No |
| Save count key | Saves the number of rows written | (empty) | No |
Important behavior: the instruction does nothing unless both Primary document key and
Secondary document key are given. If you fill in neither Output name nor Output document
key, the join still happens and Save count key is still saved — only the joined document is
not kept. Each result row carries all the primary columns plus the secondary columns,
except the secondary key column (it would just duplicate the primary one). A primary row
with no match is dropped; if several secondary rows share the same key, the primary row is
repeated once per match. A tab Output delimiter saves the result as a .tsv.
Left Join Files .csv
Like Join Files, but keeps every row of the primary table — when a primary row has no match, the secondary columns are simply left blank (a left join).
When to use it: to add optional details to a table without losing any rows — e.g. attach a category to each product, keeping products that have no category yet.
| Parameter | Meaning | Default | Required |
|---|---|---|---|
| Primary document key | The main loaded table, every row of which is kept (accepts @name) |
(empty) | Yes |
| Secondary document key | The table whose columns are added on (accepts @name) |
(empty) | Yes |
| Primary key column | The column in the primary table used to match rows (accepts @name) |
(empty) | Yes |
| Secondary key column | The column in the secondary table used to match rows (accepts @name) |
(empty) | Yes |
| Case sensitive | Yes = match the key values exactly; No = ignore upper/lower case | No |
No |
| Output delimiter | Delimiter/extension of the produced document (accepts @name) |
, |
No |
| Case sensitive (from variable) | Reads the yes/no value from a saved value | (empty) | No |
| Output name | File name the new document will be saved under (accepts @name) |
(empty) | To save |
| Output path | Folder the new document will be saved to (accepts @name) |
(empty) | To save |
| Output document key | Names the new document so later instructions can target it (accepts @name) |
(empty) | No |
| Save count key | Saves the number of rows written | (empty) | No |
Important behavior: same requirements as Join Files — both document keys plus an output
target, or the instruction does nothing. The difference is that a primary row with no match is
still written, with its secondary columns empty. As with the inner join, the secondary key
column is not duplicated, and a primary row that matches several secondary rows is repeated once
per match. A tab Output delimiter saves the result as a .tsv.
This documentation is the help of the application, and it comes underCreative Commons Attribution 4.0.