Skip to main content
Version: 2.1

FTP / SFTP Nodes

FTP/SFTP nodes enable pipelines to transfer files to and from remote servers. Use these nodes to automate file-based integrations, data imports/exports, and partner data exchanges. All four node types support both FTP and SFTP protocols through your configured connections.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

FTP Upload Node

FTP Upload node configuration

FTP Upload Node

Upload files to remote FTP/SFTP servers.

Supported Function Types:

Function NamePurposeCommon Use Cases
UploadUpload file content to remote serverData exports, report distribution, configuration deployment

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesFTP/SFTP connection profile to use
FunctionSelectionYesUpload function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your FTP/SFTP connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Input

The node receives the output of the previous node as input. Input data can be referenced in function parameter expressions using $input.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"remotePath": "/uploads/data/report.csv",
"bytesWritten": 2048,
"created": true
},
"durationMs": 156,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
dataobjectUpload result details (see below)
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

Upload Result Fields

FieldTypeDescription
remotePathstringFull path where the file was uploaded
bytesWrittennumberNumber of bytes written to the remote server
createdbooleanWhether the file was newly created (vs. overwritten)

FTP Download Node

FTP Download node configuration

FTP Download Node

Download files from remote FTP/SFTP servers.

Supported Function Types:

Function NamePurposeCommon Use Cases
DownloadDownload file content from remote serverData imports, report retrieval, configuration fetch

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesFTP/SFTP connection profile to use
FunctionSelectionYesDownload function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema (e.g., remotePath). See your FTP/SFTP connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Input

The node receives the output of the previous node as input. Use expressions like {{ $input.data.fileName }} to dynamically specify which file to download.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"remotePath": "/data/exports/sales.csv",
"content": "header1,header2\nvalue1,value2\n...",
"size": 4096,
"encoding": "utf-8"
},
"durationMs": 234,
"timestamp": "2026-01-15T08:30:00Z"
}

Download Result Fields

FieldTypeDescription
remotePathstringPath of the downloaded file
contentstringFile content (text or base64-encoded for binary)
sizenumberFile size in bytes
encodingstringContent encoding (utf-8 for text, base64 for binary)

FTP List Node

FTP List node configuration

FTP List Node

List files and directories on remote FTP/SFTP servers.

Supported Function Types:

Function NamePurposeCommon Use Cases
ListList files and directoriesCheck for new files, inventory contents, monitor availability

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesFTP/SFTP connection profile to use
FunctionSelectionYesList function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema (e.g., remotePath, pattern). See your FTP/SFTP connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Input

The node receives the output of the previous node as input. Use expressions to dynamically specify the directory path or file pattern.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"remotePath": "/incoming/data",
"files": [
{
"name": "sales_2026-01-15.csv",
"size": 2048,
"modifiedAt": "2026-01-15T06:00:00Z",
"isDir": false
},
{
"name": "archive",
"size": 0,
"modifiedAt": "2026-01-14T12:00:00Z",
"isDir": true
}
],
"count": 2
},
"durationMs": 89,
"timestamp": "2026-01-15T08:30:00Z"
}

List Result Fields

FieldTypeDescription
remotePathstringDirectory that was listed
filesarrayArray of file/directory entries
countnumberTotal number of entries returned

File Entry Fields

FieldTypeDescription
namestringFile or directory name
sizenumberFile size in bytes (0 for directories)
modifiedAtstringLast modification timestamp (ISO 8601)
isDirbooleantrue if the entry is a directory

FTP Delete Node

FTP Delete node configuration

FTP Delete Node

Delete files on remote FTP/SFTP servers.

Supported Function Types:

Function NamePurposeCommon Use Cases
DeleteDelete a file from remote serverClean up processed files, remove temporary data

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesFTP/SFTP connection profile to use
FunctionSelectionYesDelete function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema (e.g., remotePath). See your FTP/SFTP connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Input

The node receives the output of the previous node as input. Use expressions like {{ $input.data.files[0].name }} to dynamically specify which file to delete.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"remotePath": "/processed/old_data.csv",
"deleted": true
},
"durationMs": 67,
"timestamp": "2026-01-15T08:30:00Z"
}

Delete Result Fields

FieldTypeDescription
remotePathstringPath of the deleted file
deletedbooleantrue if the file was successfully deleted

Common Use Cases

Download and Process New Files

Poll for new files, download them, and process the contents:

  1. Use FTP List to find files matching a pattern (e.g., *.csv)
  2. Use For Each Loop to iterate over the file list
  3. Use FTP Download to retrieve each file
  4. Use File Extractor to parse CSV content into JSON
  5. Process the data with subsequent nodes
[Schedule] → [FTP List] → [For Each] → [FTP Download] → [File Extractor] → [Process]

Export Data to Partner SFTP

Generate a report and upload it to a partner's SFTP server:

  1. Generate or transform data in previous nodes
  2. Use Data Serializer to format as CSV/JSON
  3. Use FTP Upload to send the file
[Fetch Data] → [Transform] → [Data Serializer] → [FTP Upload]

Process and Clean Up Files

Download files, process them, then delete the originals:

  1. FTP List to find files to process
  2. FTP Download to retrieve file content
  3. Process the data
  4. FTP Delete to remove the original file
[FTP List] → [For Each] → [FTP Download] → [Process] → [FTP Delete]

Dynamic File Paths

Use expressions to build file paths dynamically:

// Upload with date-based path
Remote Path: {{ '/exports/' + ($execution.startedAt | date: 'YYYY-MM-DD') + '/report.csv' }}

// Download file from previous node's output
Remote Path: {{ '/incoming/' + $input.data.fileName }}

// Delete processed file
Remote Path: {{ $input.data.remotePath }}

Settings Tab

All FTP/SFTP node types share the same Settings tab:

SettingTypeDefaultDescription
DescriptionTextOptional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.


Integration with Other Nodes

File Extractor

The FTP Download node is commonly used with the File Extractor node to parse CSV and Excel files:

  1. FTP Download retrieves the raw file content
  2. File Extractor parses the content into structured JSON rows

Ensure the File Extractor's inputField matches the FTP Download output path (default: data.content).

For Each Loop

Use For Each Loop to process multiple files from an FTP List result:

  1. FTP List returns an array of files
  2. For Each Loop iterates over data.files
  3. Each iteration processes one file

Data Serializer

Use Data Serializer before FTP Upload to format data:

  1. Transform and prepare data in previous nodes
  2. Data Serializer converts to CSV, JSON, or XML
  3. FTP Upload sends the formatted content

Best Practices

  • Use specific file paths when possible for better performance and clarity
  • Set appropriate timeouts for large file transfers or slow connections
  • Implement error handling with the "On Error" setting for critical transfers
  • Use parameterized paths for date-based or dynamic file organization
  • Delete processed files to prevent duplicate processing
  • Monitor connection health to catch server issues before pipeline failures
Retry Configuration

For unreliable network connections, enable "Retry on Timeout" and "Retry on Fail" with appropriate retry counts. This improves pipeline resilience without manual intervention.