Unify Logo Footer.svg
Unify Automations
Logo
Transform & Merge

Transform & Merge

Logo

3 mins READ

The CSV node includes operations for reshaping and combining delimited data. Transform operations modify rows or columns during processing; merge operations combine data from multiple CSV inputs into a single output.

Overview

Beyond reading and writing, the CSV node supports transforming, converting, and merging CSV data. Transform and Convert to Excel each configure their own reader settings — delimiter, encoding, quote character, and escape character — and Transform additionally configures a separate set of writer settings for its output; these are set per action, not shared globally across the node. Merge does not expose delimiter, encoding, quote, or escape settings at all — it works with the files as given. Supported delimiters are comma, tab, pipe, semicolon, space, and colon. Supported encodings are UTF-8 (default), UTF-16, UTF-16 (Big Endian), UTF-16 (Little Endian), US-ASCII, ISO-8859-1 (Latin-1), and Windows-1252. Source files are not modified in place; each operation produces a new output. For large input files, use the separate Consume data from CSV file node — a Loop-type node with a Batch mode and configurable batch size — to iterate through rows in chunks and feed each batch through Transform, instead of loading the entire file into memory at once.

Operations

  • Transform — Modifies the structure or values of CSV data during processing. Use Transform to reshape rows before writing output — for example, to reorder fields, apply row-level changes, or prepare data for a downstream system with a different column layout. The transformed data is written to a new output; the source is not changed. Transform reads the source file using its own Reader settings and writes the output using a separate Writer settings — each with its own delimiter, encoding, quote character, and escape character. This means a single Transform step can read one format and write another — for example, reading a semicolon-delimited file and writing a comma-delimited one.

Input

Field

Type

Required

Default

Description

fileDetails

File

Yes

CSV file to be processed. Ensure the file is a valid CSV.

fileName

String

No

Used as a prefix for the exported file name.

keepExactFileName

Boolean

No

false

If enabled, the file is saved with the exact name in File Name. If disabled, a timestamp is appended to the file name.

sourceHasHeader

Boolean

No

false

Enable if the source CSV file has a header row. If disabled, the first row is treated as data.

skipHeaderRow

Boolean

No

false

Omits column headers in the output; the output file starts directly with data rows.

reader.delimiter

String

No

Comma

Character used to separate values when reading the source file. Options: Comma, Tab, Pipe, Semicolon, Space, Colon.

reader.encoding

String

No

UTF-8

Character encoding of the source file. See supported encodings.

reader.quote

String

No

Character used to quote fields in the source file. Options: Double quote ("), Single quote (').

reader.escape

String

No

Character used to escape special characters in the source file.

writer.delimiter

String

No

Comma

Character used to separate values in the output file. Same options as reader delimiter.

writer.encoding

String

No

UTF-8

Character encoding for the output file. Same options as reader encoding.

writer.quote

String

No

Character used to quote fields in the output file.

writer.escape

String

No

Character used to escape special characters in the output file.

Output

Field

Type

Description

fileDetails.name

String

Name of the output file.

fileDetails.source

String

Source location of the output file.

fileDetails.sourceType

String

Type of source the output file was written to.

fileDetails.fileType

String

File type of the output file.

  • Convert to Excel — Converts a CSV file to Excel format (XLSX or XLS). Convert to Excel reads the source CSV using its own Reader settings — delimiter, encoding, quote character, and escape character. There is no separate writer configuration, since the output is an Excel workbook rather than delimited text.

Input

Field

Type

Required

Default

Description

fileDetails

File

Yes

CSV file to be converted. Ensure the file is a valid CSV.

fileName

String

No

File name without extension; the extension is added automatically based on the selected output file type.

keepExactFileName

Boolean

No

false

If enabled, the file is saved with the exact name in File Name. If disabled, a timestamp is appended.

fileType

String

No

xlsx

Output Excel format. Options: XLSX, XLS.

sheetName

String

No

Sheet1

Name of the sheet in the output Excel file.

sourceHasHeader

Boolean

No

false

Enable if the source CSV file has a header row. If disabled, the first row is treated as data.

skipHeaderRow

Boolean

No

false

Omits column headers in the output Excel file; the file starts directly with data rows.

reader.delimiter

String

No

Comma

Character used to separate values in the source CSV. Options: Comma, Tab, Pipe, Semicolon, Space, Colon.

reader.encoding

String

No

UTF-8

Character encoding of the source CSV. See supported encodings.

reader.quote

String

No

Character used to quote fields in the source CSV. Options: Double quote ("), Single quote (').

reader.escape

String

No

Character used to escape special characters in the source CSV.

Output

Field

Type

Description

fileDetails.name

String

Name of the output Excel file.

fileDetails.source

String

Source location of the output file.

fileDetails.sourceType

String

Type of source the output file was written to.

fileDetails.fileType

String

File type of the output file (xlsx or xls).

fileDetails.size

Integer

Size of the output file.

  • Merge — Combines a list of CSV files into a single output file. Files are concatenated in the order they appear in the files list — merge does not reorder or align files by content. Merge has no delimiter, encoding, quote, or escape settings of its own; it works with the files as given, so source files should already share a compatible format. If Source files has header is enabled, each file's header row is skipped when its data is read, and only the header row from the first file is written to the merged output. Use Header columns (specificHeader) to choose which of those header columns appear in the merged file, and in what order — this lets you select a subset of columns or reorder them without reordering the source files themselves.

Input

Field

Type

Required

Default

Description

files

Array of files

Yes

List of CSV files to merge. Files are concatenated in the order listed.

sourceHasHeader

Boolean

No

false

Enable if the source files have a header row.

specificHeader

Array of strings

No

Available only when Source files has header is enabled. Defines the header columns to include in the merged CSV file, and their order.

Output

Field

Type

Description

fileDetails.name

String

Name of the merged output file.

fileDetails.source

String

Source location of the output file.

fileDetails.sourceType

String

Type of source the output file was written to.

fileDetails.fileType

String

File type of the output file.

fileDetails.link

String

Link to the merged output file.

fileDetails.size

String

Size of the merged output file.

Encoding, Quote, and Escape Characters

Transform (reader and writer) and Convert to Excel (reader) support the following character encodings:

  • UTF-8 (default)

  • UTF-16

  • UTF-16BE — UTF-16 (Big Endian)

  • UTF-16LE — UTF-16 (Little Endian)

  • US-ASCII

  • ISO-8859-1 — Latin-1

  • Windows-1252

Both also expose a quote character and an escape character:

  • Quote character — the character used to quote fields that contain the delimiter, quote character, or line breaks. Options: Double quote (") or Single quote (').

  • Escape character — a free-text field for the character used to escape special characters (such as a quote character appearing inside a quoted field).

Merge does not have encoding, quote, or escape settings — it does not parse field-level content, only concatenates whole files.

Notes

Keep the following in mind when using transform and merge operations.

  • Transform and Convert to Excel each have their own reader delimiter setting (Transform also has a separate writer delimiter) — confirm these match your source and desired output files. Merge has no delimiter setting; it concatenates files as provided.

  • Transform and Convert to Excel read (and Transform writes) files in UTF-8 by default; UTF-16 and its Big Endian/Little Endian variants, US-ASCII, ISO-8859-1 (Latin-1), and Windows-1252 are also supported.

  • When merging files with a header row, only the first file's header is kept in the output — use Header columns (specificHeader) to select or reorder columns if the files' columns don't already match the order you want.

  • Source files are not modified in place; transform and merge operations each produce a new output file.

  • For large input files, use the Consume data from CSV file node's Batch mode (a Loop-type node with a configurable batch size) to process rows in chunks alongside Transform, instead of loading the entire file into memory at once.

Test transform and merge configurations with a representative sample of your actual data — including edge cases such as empty rows, fields containing the delimiter character, and mismatched column counts — before running on full production datasets.

FAQs

Can I merge CSV files that use different delimiters?

The CSV node uses one delimiter setting per operation. To merge files with different delimiters, read each file separately with its correct delimiter, normalize each to a common intermediate format, and then run the merge with the desired output delimiter.

Does the transform operation modify the source file?

No. Transform produces a new output with the modified data; the source file is not changed.

What happens if merged files have different numbers of columns?

When merging by header name, columns present in one file but absent in another will be empty in the combined output for the rows that lack them. When merging by position, extra columns in a wider file are appended; shorter rows leave those positions empty. Verify column alignment before merging to avoid unexpected blank fields