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:
- App: PushFTP
- Event: Download File
- 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.