A practical field guide from Automation Ace.
The short answer
To automate SFTP file transfers in Zapier, connect your server to SFTP by Zapier, then build two kinds of Zaps. Inbound: trigger on a new or updated file, download it, parse and validate it, and send the data where it belongs. Outbound: trigger on a schedule or app event, build the file, and upload it to the right path with a unique name. Add logging, deduplication, and alerts to both.
New to SFTP? Read SFTP by Zapier explained and SFTP vs FTP vs FTPS first.
Before you start
- Get connection details: host, port, username, and password or SSH private key.
- Confirm network access: if the server restricts by IP, allowlist Zapier's published IP addresses.
- Agree on folders: for example
/inbound,/outbound,/processed, and/errors. - Agree on file names and formats: delimiter, headers, encoding, date format, and naming such as
orders_YYYYMMDD_HHMM.csv. - Get sample files for testing. See how to test a Zap without live data.
Automate downloads: process inbound files
- Trigger: SFTP by Zapier → New or Updated File, pointed at the inbound folder.
- Filter: continue only for expected names or extensions, such as
.csv. See filters. - Deduplicate: look up the file name in a log table and stop if it has already been processed.
- Download File: retrieve the file so later steps can read it.
- Parse: use Formatter utilities or a Code step to turn CSV, JSON, or XML into rows. See parsing strings in Code steps and Python libraries in Zapier.
- Validate: check row counts, required columns, and totals.
- Load: create or update records in your CRM, database, or spreadsheet. For many rows, see looping through line items.
- Log and notify: record the file, row count, and outcome, and alert the owner on errors.
Automate uploads: deliver outbound files
- Trigger: a schedule (see custom schedules), a new record, or a file in cloud storage.
- Gather data: search or export the records to include.
- Build the file: generate CSV or another format in a Code step, or use a file an earlier step produced.
- Name it uniquely: include a timestamp and a batch ID. See Zapier timestamps.
- Upload File: SFTP by Zapier to the partner's inbound path.
- Confirm and log: record the file name, size, and row count, and notify the recipient if needed.
For payroll or financial files, add a human approval step before upload.
Processing patterns that hold up
- Header mapping: map columns by header name, not position, so a reordered column does not corrupt data.
- Type cleanup: normalize dates, numbers, and currencies. See why dates are off by one day and parsing numbers.
- Chunking large files: split big files or hand rows to a Sub-Zap or webhook to stay within step limits.
- Error files: write rejected rows to an error file or table for review instead of failing the whole batch.
- Queueing: when order matters, process files sequentially. See sequential queues with Zapier Tables.
Example: daily supplier inventory sync
06:00 Supplier uploads /outbound/inventory_20260929.csv
~06:1x SFTP New or Updated File → Filter: name starts with "inventory_"
→ Zapier Tables lookup: already processed? stop
→ Download File → Code: parse CSV, validate 1,000+ rows, compute totals
→ Loop: update stock levels in store
→ Log: file, rows, totals, "success"
→ Slack: summary to #ops
18:00 Schedule → Code: build orders_20260929_1800.csv
→ SFTP Upload File → /inbound/ → log → email confirmation
More ideas are in 10 SFTP by Zapier use cases.
Troubleshooting
- Cannot connect: check host, port, credentials, key format, and IP allowlisting. See reconnection issues.
- Trigger not firing: confirm the folder path and that files are new or modified. See why a Zap is not triggering.
- Partial or empty files: the sender may still be writing. Ask for a temporary name plus rename, or add a Delay.
- Timeouts: large files or slow servers; reduce file size or split work. See timeout errors.
- Duplicates: strengthen the processed-file check. See reprocessing without duplicates.
Need the cloud storage side too? See SFTP vs cloud storage. Then connect your server with SFTP by Zapier.
Frequently asked questions
How do I automatically download files from SFTP with Zapier?
Use the SFTP by Zapier New or Updated File trigger on the inbound folder, filter for the file names you expect, check a log to skip processed files, then use the Download File action and parse the contents in later steps.
How do I automatically upload files to SFTP with Zapier?
Trigger on a schedule or app event, build or retrieve the file, give it a unique timestamped name, and use the SFTP by Zapier Upload File action to write it to the destination path.
How do I process a CSV file from SFTP in Zapier?
Download the file, then parse it with Formatter utilities or a Code step, map columns by header name, validate rows and totals, and loop through rows to create or update records.
How do I stop an SFTP Zap from processing partial files?
Ask the sender to upload with a temporary name and rename when complete, filter out temporary names, or add a short delay before downloading.
Why is my SFTP Zap not triggering?
Check the folder path, that files are new or modified since the last check, that the connection is still valid, and that the server allows connections from Zapier's IP addresses.
Disclaimer: Zapier features, plan availability, and settings can change. Confirm current details in Zapier's help documentation and your SFTP server or hosting provider's documentation before relying on a specific setting. This article may include links to apps, products, or services; some links may be affiliate links, which means Automation Ace may earn a commission at no extra cost to you.