Back to blog

How to Download Files from SFTP with Zapier

Pull files from SFTP/FTP/S3 into your Zapier workflows using PushFTP's Download File action.

·5 min read

When You Need Files From SFTP

Your SFTP server has files that other systems need — reports, exports, invoices, data feeds. Manually downloading and forwarding them is a time sink. With PushFTP and Zapier, you can pull files from SFTP automatically and route them wherever they need to go.

PushFTP connects to your server from a single fixed IP address, so your firewall rules stay simple. One IP, all your downloads.

What You Need

  • A PushFTP account with an SFTP connection (sign up free)
  • PushFTP's static IP whitelisted on your SFTP server
  • A Zapier account

Step 1: Choose Your Trigger

Downloads are typically triggered by one of two things:

A new file arrives — use PushFTP's New File Detected trigger with a watched folder:

Trigger: PushFTP → New File Detected
Watched Folder: /exports/daily/

A schedule or external event — use any Zapier trigger:

Trigger: Schedule → Every Day at 8am
Trigger: Webhooks → Incoming POST request
Trigger: Gmail → New Email matching criteria

Step 2: Add the Download Action

In your Zap, add the PushFTP Download File action:

  1. App: PushFTP
  2. Event: Download File
  3. Account: Your PushFTP account

Configure it:

Connection: My SFTP Server
Remote Path: /exports/daily/report.csv

If you're using the New File Detected trigger, map the path dynamically:

Remote Path: {{path}} (from trigger)

The action returns the file content as a URL you can use in subsequent steps — attach it to an email, upload it somewhere else, or parse its contents.

Step 3: Do Something With the File

Here are common patterns after downloading:

Forward via Email

Action 1: PushFTP → Download File
Action 2: Gmail → Send Email
  To: [email protected]
  Subject: Daily Report - {{date}}
  Attachment: {{file_url from step 1}}

Upload to Another Server

Action 1: PushFTP → Download File (from Server A)
Action 2: PushFTP → Upload File (to Server B)
  Connection: Backup SFTP
  Path: /backups/{date}-{original}

This is a server-to-server file transfer orchestrated through Zapier, with both connections going through PushFTP's fixed IP.

Store in Google Drive

Action 1: PushFTP → Download File
Action 2: Google Drive → Upload File
  Folder: Shared Reports
  File: {{file_url from step 1}}

Parse CSV/JSON Content

If you need the file contents (not just the file), use Read File instead of Download File. Read File returns the actual text content, which you can parse in Zapier. More on that in the Read File guide.

Step 4: Test It

Place a test file on your SFTP server:

echo "name,amount" > test-report.csv
echo "Widget A,100" >> test-report.csv
sftp user@server:/exports/daily/ <<< "put test-report.csv"

Run your Zap. The download action should pull the file and pass it to the next step. Check the Zap history for success or error details.

Download + Move Pattern

A common workflow: download the file, process it, then move the original to an archive folder. This prevents reprocessing:

Trigger: PushFTP → New File Detected (/incoming/)
Action 1: PushFTP → Download File
Action 2: (your processing step)
Action 3: PushFTP → Move File
  From: {{path}}
  To: /archive/{date}-{original}

The move step keeps your incoming folder clean and creates a record of what's been processed. See the move/rename guide for more details.

Downloading From FTP and S3

The Download File action works identically for FTP and S3 connections. Select the right connection, specify the path (or S3 object key), and PushFTP handles the protocol differences.

For S3:

Connection: My S3 Bucket
Remote Path: exports/2025/01/report.csv

All connections go through the same static IP. No extra firewall rules needed when you add new connections.

Handling Missing Files

If you try to download a file that doesn't exist, the action fails. To prevent this, add a Find File search step before the download:

Action 1: PushFTP → Find File
  Path: /exports/daily/
  Filename: report-{{date}}.csv
Filter: Only continue if file found
Action 2: PushFTP → Download File

This is especially useful for schedule-triggered Zaps where the file might not be ready yet. Check the Find File guide for more.

Pulling files from SFTP into your Zapier workflows takes one PushFTP action. No server-side scripts, no exposed endpoints — just a secure connection through a fixed IP that your firewall already trusts.

FAQ

What's the difference between Download File and Read File?

Download File returns the file as a downloadable URL — use it when you need to forward or store the file. Read File returns the actual text content — use it when you need to parse CSV, JSON, or text data within Zapier. Both connect through PushFTP's fixed IP.

Is there a file size limit?

PushFTP doesn't impose a strict limit. However, Zapier has timeout constraints for action steps. Files under 50MB work reliably. For larger files, use PushFTP's REST API directly.

Can I download multiple files at once?

Each Download File action handles one file. To download all files in a folder, first use List Files to get the filenames, then loop through them with Zapier's looping feature.

What if the file is still being written when I try to download?

PushFTP downloads whatever is on the server at that moment. If a file is mid-write, you might get a partial file. To avoid this, have the writing process use a temporary filename (like .tmp) and rename it when done. Set your watched folder to ignore .tmp files using a Zapier filter.

Next Steps

Downloading files is half the equation — the other half is what you do with them. Pair downloads with Zapier's app ecosystem to build complete workflows: SFTP to email, SFTP to database, SFTP to SFTP. PushFTP's fixed IP makes the connection reliable, and Zapier makes the routing flexible.

Ready to automate your file transfers?

Connect to any SFTP, FTP, or S3 server from a fixed IP address. Free plan available — no credit card required.