SFTP
StorageMove files on any SFTP server from agent workflows. Agents browse and stat directories, download files or read them inline as text, upload from FlowRunner storage, URLs, or raw text, and rename, delete, chmod, and manage remote folders.
What This Integration Enables
SFTP is the file exchange that outlives every integration fashion: partners, banks, logistics providers, and legacy systems all speak it, and they will for another decade. The problem was never the protocol; it is that SFTP workflows run on human ritual, someone checking a directory, moving files, remembering what got processed. This connector hands the ritual to FlowRunner agents: list and stat directories, download or read files inline, upload from storage, URLs, or generated text, and manage the folder lifecycle, against any SFTP server. - Pull partner data drops, CSV, JSON, XML, and hand them to parsing and database steps - Push generated reports, invoices, and exports to a customer's or vendor's inbox on schedule - Bridge legacy SFTP exchanges into cloud storage, email, and spreadsheets - Poll, process, then rename or move files into processed folders to prevent reprocessing - Handle housekeeping: dated directories, permission changes, cleanup of old files The cleanup half is where the sharp edge lives: recursive deletion is irreversible, so FlowRunner's [human-in-the-loop](/concepts/human-in-the-loop) orchestration stands in front of it.
Without FlowRunner
With FlowRunner
Use Case Scenarios
The partner drop that processes itself
Each morning, List Directory scans the partner's drop folder for the daily CSV. Download File pulls it, the rows load into [Google Sheets](/integrations/google-sheets) and the downstream database, and Rename / Move File shifts the file into a dated archive folder. If Check Path Exists reports the file never arrived, the agent alerts the partner contact instead of letting the gap surface in next week's report. Either way, a person finds out what happened, not a mystery.
Outbound feeds that never miss the window
When the day's export completes, the agent formats it and calls Upload Text Content to write the CSV directly into the vendor's inbox path, Create Directory building the dated folder structure first. A confirmation goes out through [Gmail](/integrations/gmail-service) with the filename and row count. The vendor's 6 AM import window stops depending on whether someone remembered the upload before leaving the office.
Invoices from the drop folder to the ledger
A poll finds new invoice PDFs in the supplier's directory. Download File stages each one, [PDF.co](/integrations/pdfco) extracts the fields with AI parsing, and the structured data flows into the accounting workflow with a summary to [Slack](/integrations/slack). Rename / Move File archives the processed PDFs into a by-month folder tree. The paper trail keeps itself, and the same invoice never gets keyed twice.
Human-in-Loop Highlight
Remove Directory with Recursive on deletes the directory and all of its contents, and the catalog says it plainly: destructive and irreversible. On a shared exchange server this is the single most dangerous call available, because the target is often a path assembled from variables, and a path bug does not delete the folder you meant, it deletes the one the variables happened to name, possibly the partner's entire live drop. So FlowRunner agents follow a hard rule: non-recursive operations, single-file deletes with Delete File, empty-directory removals, run inside normal flow logic, but any Remove Directory call with Recursive on pauses first. The agent presents the resolved absolute path and the full listing from List Directory, exactly what will cease to exist, and the data owner confirms. Retention cleanup still runs on schedule; it just cannot take anything with it that a person did not see named.
Agent Capabilities
13 actionsInspection
3- List Directory Lists a directory's contents with type, name, size, timestamps, POSIX permissions, and ownership per entry, optionally filtered by a glob pattern like "*.csv". Non-recursive by design; the sweep behind every poll.
- Get File Info Retrieves a POSIX stat for one path: mode, ownership, size, timestamps, and directory, file, or symlink flags. Errors on missing paths; use Check Path Exists when absence is possible.
- Check Path Exists Reports whether a path exists and what it is, file, directory, or symlink, without ever erroring on absence. The safe branch point before reads, writes, and alerts.
Reading and Downloading
2- Download File Downloads a file into FlowRunner file storage and returns a fileUrl for downstream steps: attach, forward, parse. The staging read for files of meaningful size.
- Read File as Text Reads a file's contents directly into the flow as a string, decoded as UTF-8, Base64, or Latin-1, with no stored file created. For small text, CSV, and JSON payloads.
Uploading
3- Upload File Writes a FlowRunner file's bytes to a remote path including the destination filename, overwriting existing files, with optional parent-directory creation. The standard outbound push.
- Upload File from URL Downloads from a public URL and uploads to the server in one step, without staging in FlowRunner storage. The passthrough push.
- Upload Text Content Writes text, or Base64-decoded binary, directly to a remote file: generated CSVs, JSON, and log lines without any staging. The generated-feed push.
File Management
3- Rename / Move File Renames in place or moves across directories by changing the path; the destination parent must exist, and many servers refuse to overwrite. The archival step that prevents reprocessing.
- Delete File Deletes a single file, with Ignore Missing for idempotent cleanup. Does not touch directories.
- Change Permissions Runs a chmod with an octal mode string like "644" or "600". The hardening step for delivered files.
Directory Management
2- Create Directory Creates a directory, building missing parents by default so a full dated path materializes in one call.
- Remove Directory Removes a directory: empty-only by default, everything within it when Recursive is on. The operation this page's human gate exists for.
Frequently Asked Questions
What can FlowRunner do with SFTP?
FlowRunner agents can run List Directory, Get File Info, and Check Path Exists in SFTP, plus 10 more actions.
Does connecting SFTP to FlowRunner require OAuth?
No. SFTP connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.
Can SFTP trigger a FlowRunner workflow automatically?
SFTP doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with SFTP
$100 in credits. No card required. Connect in minutes.