> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.meetgail.com/platform/workflows/node-reference/integrations/sftp/sftp-upload/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.meetgail.com/_mcp/server. # SFTP Upload > Uploads a file from the run to a path on a remote SFTP server. The Upload node pushes a file from your workflow out to a path on a remote SFTP server. You give it the file from the run and the destination path, and it writes the file there. ## When to use it * You produced a file in the run and need to deliver it to a partner's server. * You downloaded or built a file and want to place it in a specific directory. * You want to hand a file off to a system that picks files up over SFTP. ## Inputs | Field | What it's for | Example | | ---------------- | ---------------------------------------------------------------- | --------------------------------------------------------------- | | Server | The SFTP server to connect to. | `sftp.example.com` | | Port | The server's port, usually 22. | `22` | | Username | The username to sign in with. | `automation-user` | | Password or key | The password or private key to sign in with, stored as a secret. | A [Secret](/platform/workflows/core-concepts/secrets) reference | | Destination path | The full path on the server to write the file to. | `/inbound/uploads/incoming.csv` | | File | The file from the run to upload. | A file from a start step or a download | The password or key must reference a workflow [Secret](/platform/workflows/core-concepts/secrets). Any field can be a fixed value or an [expression](/platform/workflows/core-concepts/expressions/using-expressions-in-nodes) that reads from an earlier step. ## Outputs | Field | What you get back | | ----------------- | -------------------------------------------------- | | Path written | The path where the file was written on the server. | | Bytes transferred | How many bytes were uploaded. | ## Example A workflow builds a nightly claims export for Chen Insurance Group and needs to deliver it to the carrier's SFTP server. It uses Upload to write the file to `/inbound/uploads/claims.csv`, then follows with a [Check](/platform/workflows/node-reference/logic-and-flow/check) step so the run can raise an alert if the delivery did not succeed. ![The SFTP Upload node configuration panel, showing the server, destination path, and file.](/_fern-img/64ce1ee1fcffb50ae4eb5bc7296135fa9720872435068700ef15938a378f57e0.webp) > **Note** > > The destination directory has to exist already and be writable by your username - > Upload writes the file, it does not create missing parent folders. If the path is > not writable the node hands back a failure you can branch on. ## Related nodes #### [Download](/platform/workflows/node-reference/integrations/sftp/sftp-download) Pull a file off the server before working with it. #### [List Directory](/platform/workflows/node-reference/integrations/sftp/sftp-list-directory) See what is already in a directory before uploading. #### [Create CSV](/platform/workflows/node-reference/files-and-documents/create-csv) Build a CSV file in the run before uploading it. #### [Check](/platform/workflows/node-reference/logic-and-flow/check) Branch on whether the upload succeeded. > Documentation for Gail, the AI platform for financial services. Learn how to set up GailGPT and Gail Agent to automate customer communications for insurance, banking, and finance.