Skip to main content
The SFTP destination writes pipeline output to any Secure File Transfer Protocol (SFTP) server. It supports CSV, TSV, JSON, Parquet, and Fixed width output formats, with optional compression and PGP encryption. Once your connection is set up, see File Storage Options for the full set of write options (output formats, compression, PGP, and more) shared across every file storage provider.

Connection Setup

See SFTP Source for steps to create and configure an SFTP connection in Integrate.io ETL, including firewall rules, authentication options, and SSH tunnel setup.

Destination Configuration

Connection

Select your SFTP connection from the dropdown, or create a new one.

Target Directory

The path on the SFTP server where output files will be written. Paths must begin with /. Integrate.io prepends the slash automatically if omitted. One or more files are created in this directory. By default, the job fails if the directory already exists. Use package variables to generate unique directory names per run (e.g. /output/${_JOB_ID}).
SFTP has no bucket or container field. The path is relative to the SFTP server root.

Destination Format


Delimited Values Options

Header names with spaces: use triple underscores (___) in the alias or column name in a Select component to produce a space in the output header. To use a different separator character, add a package variable _FS_REPLACE_WITH_SPACE_IDENTIFIER with the character you want to replace.

Output Compression

Available for Delimited values, JSON, and Fixed width formats. Not available for Parquet.

PGP Encryption

To encrypt output files with a trading partner's OpenPGP public key, select an active entry from the PGP Key dropdown. The entry must hold a public key. Files are encrypted before being written to the target path.
Paths that contain a space, semicolon, or parenthesis are not supported when a PGP key is set.
See PGP Keys for how to add and manage keys.

Destination Action

Controls what happens when the target directory already exists.

Merge Output to Single File

Check Merge output to single file to write all output to a single file rather than multiple part files. Note that file size limits on some platforms may cause the job to fail for large outputs.

Character Encoding

Available only when Destination action is set to Use intermediate storage, copy to existing directory.

Target File Names

Default pattern: output files are named part-[mr]-[0-9]{5} (e.g. part-m-00000). To use a custom pattern, select Custom pattern:

Fixed Width Layout

When Destination format is set to Fixed width, a Fixed width layout step appears. The layout is a table with one row per incoming field, in schema order. Every incoming field is written with no separators between columns. To write only some fields or in a different order, add a Select transformation before this destination. The total record width in characters is shown below the table and updates as you edit.

Preview with Data

Click Preview with data to run the component through the previewer and see the actual records the job would write. Rows whose sample value does not fit the configured width are marked with an advisory message. Blocking errors (invalid width, pad, or decimals) appear in the errors box and prevent saving.

Persisted Layout Format

The layout is stored as fixed_width_destination_type on the component. Example:
record_delimiter and char_encoding round-trip through the API but are not editable in the UI.

Skip Empty Output

Available for Delimited values, JSON, and Fixed width formats. When checked, no output files are written if the job produces zero records. Useful for downstream processes that should not receive empty files.

FAQ

Which destination actions are available for SFTP? All five destination actions are available: fail if exists, delete and recreate, replace files, copy to existing directory (with character encoding), and copy to new directory. Can I write to a different SFTP server than the one I read from? Yes. The source and destination components each have their own connection. You can use different servers, credentials, or paths.

SFTP Source

File Storage Options

Integrate.io IP Address List

SSH Tunnel Access

Using Variables in Packages

SFTPtoGo

Last modified on September 7, 2026