Get Started

OverviewCreate a sourceCreate a modelCreate a destinationCreate a sync


Table of Contents
SFTP (SSH File Transfer Protocol) is a secure file transfer protocol. It runs over the SSH protocol. It supports the full security and authentication functionality of SSH.


This destination allows you to pull results from your model and securely send a CSV file to a SFTP server or legacy host system that supports pulling files from a directory.

Initial Setup

To get started, you will need your hostname, port, credentials. This user needs to have access to the target directory and file with write privileges. A "permission denied" error message during a sync indicates the user may not have write permissions for both the directory and the file.
Hightouch will always connect from IP addresses or Ensure you've added these to your allow-list.

Supported Authentication Methods

We support three authentication methods:
  • Username + password
  • Username + SSH private key
  • Username + SSH private key + passphrase
We support two formats for the SSH private key:
  • OpenSSH
  • RSA
Provide the full private key for the user, including the header and footer.For example:
<private key body>
<private key body>
<private key body>

Syncing to SFTP Server



"All" mode ignores the concept of additions, changes, removals and will send the full results of your model. For example, if your model has 1,000 records, your csv results file will be 1,000 records.


"Insert" mode will only send records that are new. Changes and removals are ignored. If there are no new records, an empty file will be sent.

File Name

The file name field will allow you to specify which directory and the name of the file that you want to name your results. The parent directory for the file must exist. In the screenshot below, we've specified that we want to put the file in the upload directory and the file name is results.csv.You can also timestamp variables in the file name, surrounding each with {}. We currently support these timestamp variables: YYYY, MM, DD, HH, mm, ss, and ms. All dates and times will be UTC.For example: upload/{YYYY}-{MM}-{DD}-{HH}-{mm}-result.csv.

Columns to Sync

For this destination, we give you the ability to export all columns as they are represented in your model.If you need remap the fields that you're exporting, maybe because you don't want to alter your model, you can manually map fields. Only the fields that you map will be exported in this instance. In this example, we're just exporting id, email and location. These fields are mapped to the new fields in the csv as user_id, user_email and user_location respectfully. All other columns from your results are ignored.

CSV Header

We provide you the option to include a CSV header with your exported results.

Byte Order Mark

We provide you the option to prepend a byte order mark (BOM) to the exported file. The BOM is <U+FEFF>.


By default, the file will be saved in ASCII encoding. If there are any non-ASCII characters in your results, the file will be saved with utf-8 encoding. If the BOM option is enabled, the file will be saved with utf-8 encoding with BOM.

Other Considerations

This destination will not respect any sorting that you have in your model. It will export results file sorted by ID. You will need to ensure that the file that you transmit is removed from the folder before the next sync runs. This ensures that you don't encounter an error when Hightouch detects that the file already exists.