Skip to main content

Export

Use the Export node when a workflow needs to turn data into a file that people can download, share, or send to another system.

Common examples:

  • Convert database results into an Excel file.
  • Create a CSV file for finance or operations.
  • Generate a Word document report after data reconciliation.
  • Prepare rows for upload to another tool.

Before You Use This Node​

What you may needWhere to set it upWhy it matters
Reusable source dataDatasetsKeep common business data in one place before exporting it.
Saved file inputs or files used by nearby stepsFilesFiles can be stored centrally and reused by upload, download, or reporting steps.
Reusable names, dates, or report periodsGlobal VariablesUse the same report period or file name pattern across workflows.

What the Export Node Can Do​

ActionPlain meaningUse it when
export:csvCreate a .csv fileThe next system expects a simple spreadsheet-style text file.
export:xlsxCreate an Excel .xlsx filePeople need a familiar Excel report.
export:docCreate a Word .docx documentYou need a formatted document with headings, text, and images.

Modes​

export:csv and export:xlsx support two modes. export:doc always creates a new file (overwrite only).

ModeWhat it doesNeeds existing file?
OverwriteCreates a new file from input dataNo
UpsertFinds rows by a match column and updates them. Inserts new rows if no match is foundYes

The Basic Idea​

Give Rows
Use rows from an earlier step
Choose Format
CSV or Excel
Name File
Use a clear report name
Use File
Download it or send it to another step
Simple: the Export node takes rows and produces a CSV or Excel file.

What You Fill In (CSV and Excel)​

CSV and Excel exports read their configuration from exportDetails (format, fileName, mode, fileId/file, matchColumn, input), with per-format options under options and an optional columns list.

Overwrite Mode​

FieldWhat it meansExample
Input rowsThe list of records to exportResult from SQL, DataTable, or API step
FormatFile type (xls/xlsx are auto-detected for Excel)CSV or XLSX
File nameName without the extensionmonthly-report-april
ColumnsWhich fields should appear in the file, and how they are formattedSee Columns below
Include headersWhether the first row should show column namesYes
Sheet nameExcel sheet name, for XLSX onlyReport

Overwrite options

  • CSV: includeHeaders, dateFormat.
  • Excel: includeHeaders, autoFilter, autoColumnWidth, dateFormat, numberFormat, sheetName. Excel output is written using a streaming writer, so large exports stay memory-safe.

Upsert Mode​

FieldWhat it meansExample
Input dataA JSON object (single row) or JSON array (multiple rows){{$('fetchData').result}}
FileExisting file to update (fileId or file)Select from Files section
Match ColumnThe column header used to find existing rowsDate or Order ID
Sheet NameTarget sheet in Excel (optional)Baby_jogger
ColumnsOptional explicit field-to-header mappingOnly needed when input keys differ from file headers
Create Row If MissingInsert a new row when no match is foundYes (default)
Merged Header SeparatorSeparator for addressing merged headers in Excel:: (default)

Upsert options

  • CSV: createRowIfMissing, headerRowIndex, downloadTimeoutSeconds.
  • Excel: preserveExistingFormat, createSheetIfMissing, sheetIndex, headerRowIndex, mergedHeaderSeparator (default ::), createRowIfMissing, downloadTimeoutSeconds.

Columns​

Each entry in the columns list describes one output column:

FieldWhat it means
fieldSource key, dot-notation supported for nested values (e.g. customer.name)
headerColumn header text to write
typeOptional value type, date or datetime, for typed formatting
formatDate/number format pattern applied to the value

For Excel, a column can additionally be targeted by position using columnIndex, index, or column (a numeric index or an Excel column letter such as C), and can specify a parentHeader to address a cell under a merged header.

For upsert mode, input keys are automatically mapped to file column headers. If the file has merged headers (e.g., a parent cell "12 PM to 1 PM" spanning sub-columns "Orders" and "Failed"), use the :: separator in your input keys:

{
"Date": "5-29-2026",
"Total Order Count": 35,
"OMS": 22,
"12 PM to 1 PM::Orders": 3,
"12 PM to 1 PM::Failed": 1
}

Create a Word Document (export:doc)​

export:doc builds a .docx document from an ordered list of content blocks. Its configuration lives under exportDocDetails.

FieldWhat it meansExample
fileNameOutput name; the .docx extension is added automaticallyreconciliation-summary
pageOrientationPage layout: portrait (default) or landscapeportrait
contentOrdered list of blocks that make up the documentSee below

Each block in content has a type:

Block typeFieldsNotes
headingtext, levellevel sets the size: H1 = 24pt, H2 = 20pt, H3 = 16pt
texttext, boldA paragraph of body text; bold optional
imagepath, caption, width, height, fitToPageDefaults width 400, height 300; fitToPage sizes the image to 450x340
pagebreak—Starts a new page

URLs in text are detected and rendered as clickable hyperlinks. If an image cannot be loaded, a red [Image not found] placeholder is inserted in its place so the document still generates.

export:doc always creates a new file; there is no upsert mode.

Friendly Example — Overwrite​

You want to send finance an Excel file after a reconciliation step.

FieldValue
Input rows{{Reconcile Accounts.output.rows}}
FormatXLSX
File namereconciliation-{{reportMonth}}
ColumnsAccount, Expected Amount, Actual Amount, Difference
Include headersYes

What happens:

  1. Automation Hub reads the rows from the previous step.
  2. It creates the Excel file.
  3. The step output includes the file name and storage details.
  4. A later Email, S3, FTP, or SFTP step can use the generated file.

Friendly Example — Upsert​

You have an Order Count Tracker Excel file with hourly data per day. Every hour, an automation fetches the latest counts and updates the current day's row.

FieldValue
Input data{{$('fetchHourlyData').result}}
ModeUpsert
FileOrder Count Tracker.xlsx
Match ColumnDate
Sheet NameBaby_jogger

What happens:

  1. The step downloads the existing Excel file.
  2. It looks for a row where the Date column matches the input's Date value.
  3. If found, it updates only the cells that have matching headers in the input.
  4. If not found, it creates a new row at the bottom.
  5. The updated file is saved back.

Output​

The output envelope depends on the action:

  • export:csv / export:xlsx report status: "success". Overwrite runs also return fileName, format, mode, rowCount, columnCount, and the generated artifact. Upsert runs return rowsProcessed, rowsUpdated, rowsInserted, rowsSkipped, and the updated fileId/file.
  • export:doc returns a boolean success flag along with fileName, format: "docx", contentBlocks (the number of blocks written), and the generated artifact.

Tips​

  • Use clear column names so the file is understandable outside Automation Hub.
  • Use Global Variables for file names that include a month, region, team, or environment.
  • Use CSV when another system will import the file.
  • Use Excel when people will review the file manually.
  • Use Upsert when you need to update specific rows in an existing tracker or report without overwriting the entire file.
  • In Upsert mode, only the cells you provide in the input are updated — other cells in the row are left untouched.