What this SFTP to SharePoint guide covers

This guide focuses on one job: copying new files from SFTP To Go into SharePoint with Power Automate. Before you build it, use How to Connect Power Automate to SFTP to create and test the shared SFTP-SSH connection. If you need files to move from SharePoint to SFTP To Go instead, use SharePoint to SFTP Sync.

When a partner, customer, vendor, or external system uploads a file to the selected SFTP To Go folder, a webhook starts the flow. Power Automate reads the uploaded path, retrieves the file, and creates it in a defined SharePoint document-library folder for internal review, storage, or processing.

This walkthrough copies files created in the selected SFTP To Go folder. Backfills, renames, deletions, and continuous two-way synchronization require additional flow logic and aren’t covered here.


How the SFTP to SharePoint flow works

The inbound workflow has five stages:

This pattern is especially useful when external senders already use SFTP while your internal team works in SharePoint. Common examples include:

  • Receiving vendor invoices, reports, or scheduled exports in SharePoint
  • Routing partner or customer uploads into a document library for review
  • Copying healthcare, finance, education, or operations files into the team workspace
  • Moving system-generated files from an SFTP drop folder into SharePoint-based processes

Keeping SFTP as the external delivery channel while SharePoint remains the internal working environment.

In the tested setup, each uploaded file started a separate Power Automate run. That makes it easier to match each run to its file when several uploads arrive close together.


Preparation and setup

Before you open the flow designer, confirm the Power Automate connections, source folder, destination folder, permissions, and test conditions for this inbound process.

Confirm the Power Automate connections to SFTP To Go and SharePoint

Complete the shared SFTP connection setup in How to Connect Power Automate to SFTP before you build this flow. The connection test should list the folders available to the SFTP To Go credential that will read files from /inbound.

Confirm the SharePoint connection

Make sure Power Automate is connected to SharePoint with an account that can create files in the required site, document library, and destination folder.

In Power Automate:

  1. Open Data.
  2. Select Connections.
  3. Select New connection.
  4. Choose SharePoint.
  5. Sign in with the Microsoft account that has access to the SharePoint destination used in the flow.

When you add SharePoint Create file, confirm that you can select the correct Site Address and Folder Path. If either option is missing, check the account’s SharePoint permissions or repair the connection before continuing.

Once both connections work, you’re ready to prepare the folders and build the SFTP-to-SharePoint flow.

Prepare the SFTP source and SharePoint destination

Prepare the following:

  • Permission to the SharePoint site, document library, and destination folder
  • Power Automate access with the Request trigger and the SFTP-SSH and SharePoint connectors available
  • The tested SFTP-SSH connection from How to Connect Power Automate to SFTP, using an SFTP To Go credential that can read the source folder
  • A working SharePoint connection that can create files in the selected destination
  • A dedicated SFTP To Go source folder, such as /inbound
  • A dedicated SharePoint destination, such as /Shared Documents/FromSFTP
  • Test files with the names, sizes, and arrival volumes expected in normal use
  • An agreed response for duplicate names, failed runs, retries, and exception review

Keep the route specific: external senders upload to /inbound, and the flow creates the corresponding files in /Shared Documents/FromSFTP.

Confirm that the SFTP To Go credential can read /inbound and that the SharePoint connection can create files in the destination folder. The webhook payload contains the full path to the uploaded file, so this walkthrough uses an SFTP To Go credential whose home directory is set to the storage root. This allows Power Automate to use the path returned by the webhook directly. Check those permissions first, so you don’t spend time troubleshooting the flow when the real problem is access.

Point the webhook at a dedicated source folder rather than the credential’s entire visible root, and write to a specific SharePoint destination. This keeps unrelated uploads out of the flow and makes each run easier to match to its file.

Because the generated HTTP URL can start the flow, treat it like a secret. Don’t publish it, paste it into public documentation, or reuse it outside this workflow.

Before production use, review request validation and webhook security in the SFTP To Go webhook documentation and Microsoft guidance for HTTP request triggers.


Build the SFTP to SharePoint flow in Power Automate

Step 1: Create the SFTP to SharePoint webhook flow

First, create the flow that’ll receive the HTTP POST request from SFTP To Go.

  1. In Power Automate, select Create.
  2. Select Instant cloud flow.
Automated SharePoint file transfer
  1. Choose When an HTTP request is received.
SFTP to SharePoint file automation
  1. Name the flow SFTP To Go to SharePoint.
  2. Select Create.
  3. For the direct webhook setup used here, set Who can trigger the flow? to Anyone, so SFTP To Go can send the request without Microsoft Entra credentials.
  4. That means anyone with the URL can start the flow, so keep the endpoint private and follow your organization’s security policy. If anonymous HTTP triggers aren’t allowed, use an approved authenticated relay or another endpoint design instead.
  5. Save the flow once.
SFTP SharePoint file sync
  1. Copy the HTTP URL from the trigger card after it appears.

Power Automate doesn’t generate the endpoint until you save the flow for the first time. SFTP To Go will send each matching webhook notification to this URL, so copy it exactly and keep it private.

The flow can now receive a request, but it can’t move a file yet. You still need to add the payload schema, folder check, SFTP file path, and SharePoint file-creation action.

Step 2: Connect the SFTP To Go webhook to Power Automate

Now configure SFTP To Go to send file-created notifications to the Power Automate endpoint.

  1. Open the SFTP To Go dashboard.
  2. Go to Webhooks.
  3. Add a new webhook.
  4. Give it a descriptive name, such as SFTP To Go to SharePoint.
SharePoint SFTP workflow
  1. Paste the Power Automate HTTP URL into the endpoint field.
  2. Select the file-created event (file.created).
  3. Use webhook filters where possible. Limit the path to the credential’s inbound folder (for example, Path starts with home/<username>/inbound/) and use Path matches ^.*[^/]$ to send file events rather than directory-creation events.
  4. Save the webhook.
  5. Upload one small test file to /inbound.
Power Automate SharePoint SFTP

Upload one small test file to /inbound, then open the run it starts in Power Automate. The Request trigger can receive the webhook before you add a JSON schema, but the schema is needed to expose fields such as Topic and Data.Path for use in later actions.

The Path starts with filter keeps events outside the selected /inbound folder from reaching this flow. If you don’t apply a path filter in SFTP To Go, you can add a Power Automate Condition later to check Data.Path before retrieving the file.

Step 3: Generate the Power Automate request schema

The JSON schema lets Power Automate turn fields in the webhook body into values you can use in conditions and later actions.

  1. Upload a test file to the watched SFTP To Go folder.
  2. Open the triggered run in Power Automate.

A failure here is normal. The trigger has received the request, but it can’t expose fields such as Topic and Data.Path until you add the schema.

Automated SFTP to SharePoint
  1. Open the run history.
  2. Copy the trigger body JSON from the output field.
  3. Return to the HTTP trigger card.
  4. Select Use sample payload to generate schema.
  5. Paste the trigger body JSON.
  6. Select Save.
SFTP to SharePoint automation

The uploaded file path is nested under Data, then Path.

In the tested payload, the path begins with:

home/Graeme/inbound/

Power Automate uses this value to identify the exact SFTP file in the retrieval step. Check the prefix and folder in your own payload instead of assuming they’ll match the example.

Step 4: Retrieve the uploaded SFTP file

Inside the True branch, add the SFTP-SSH action that reads the file identified by the webhook.

  1. Add an SFTP-SSH action to the condition.
Power Automate SFTP sync
  1. Select Get file content using path.
  2. Use the file path from the webhook’s Data.Path value. 

This walkthrough uses the SFTP To Go root credentials for the SFTP-SSH connection, so Power Automate can access the full storage path returned by the webhook. If you use credentials with a restricted home directory instead, the file path may need to be adjusted to start from that credential’s home directory.

SFTP file sync with Power Automate and sharepoint

Step 5: Create the SFTP file in SharePoint

Still inside the True branch, add the SharePoint action that’ll write the retrieved file into the chosen document-library folder.

  1. Click the plus button below the condition block.
  2. Add the SharePoint Create file action.
how to sync sftp storage to sharepoint
  1. In Site Address, select the SharePoint site. In the tested example, this is S2G Sync.
  2. In Folder Path, select the destination folder. In the tested example, this is /Shared Documents/FromSFTP.

Use the folder picker when possible. A manually typed path can resolve to the library root instead of the intended FromSFTP folder.

  1. In File Name, use this expression to pull only the file name from the SFTP To Go path:

last(split(triggerBody()?['Data']?['Path'], '/'))

sync sftp to sharepoint automation
  1. In File Content, select the File content output from the previous Get file content step.
  2. Select Save.

The file-name expression extracts the final segment of Data.Path; File content supplies the binary body returned by SFTP-SSH; and SharePoint Create file combines them in /Shared Documents/FromSFTP. The completed flow now looks like this:

automating sftp sharepoint sync

Verify and troubleshoot SFTP to SharePoint sync

Step 6: Verify multiple SFTP uploads in SharePoint

Before testing the flow:

Before using the workflow with real files, decide what should happen if SharePoint already contains a file with the same name. Depending on your requirements, you may choose to fail and alert, overwrite the existing file, rename the incoming file, skip it, or send it to a review folder.

For a controlled inbound workflow, failing and alerting is usually safer than creating silent duplicates.

Then, after one file transfers successfully, add several files within the same short period, using the largest realistic file count and sizes expected in normal use. This checks whether Power Automate starts a separate successful run for every file without missing, delaying, or duplicating transfers.

  1. Upload two or more files at once to the SFTP To Go /inbound folder.
how to sync folders sftp to sharepoint

The tested walkthrough used three PDF files to confirm that separate uploads created separate runs. Use the file sizes and arrival pattern your own process expects.

  1. Upload the files to SFTP To Go.
sync your sharepoint sftp
  1. Wait for the uploads to complete.
sftp automation with sharepoint

Each completed upload should trigger its own Power Automate run. Open the run history and check that the number of successful runs matches the number of files sent to /inbound.

  1. Open this flow’s Run history.
automating sftp and sharepoint
  1. Confirm that there is a separate run for each uploaded file.
  2. Confirm that all runs Succeeded.
  3. Open the SharePoint FromSFTP folder.
how to sync sftp to sharepoint
  1. Confirm that all three files are present.

When every upload has its own successful run and every file appears in FromSFTP with the correct name and content, the inbound flow is working as intended.

Troubleshoot SFTP to SharePoint webhook and path errors

An SFTP upload does not start the flow

  • Confirm that the file reached the folder covered by the webhook and that the webhook is active. Then compare the endpoint stored in SFTP To Go with the current HTTP URL shown in Power Automate.
  • If an older flow suddenly stops receiving requests, compare the stored endpoint with the current HTTP URL. Microsoft has changed older HTTP-trigger URLs, so recopy the endpoint when needed and check Microsoft’s trigger troubleshooting guidance.

The event arrives, but Power Automate cannot retrieve the file

  • Open the webhook payload and compare Data.Path with the path passed into Get file content using path.
  • Because the SFTP-SSH connection starts at the credential’s home directory, remove that repeated home prefix from the webhook path with the tested replace expression.

The SFTP action returns 404 path does not exist

  • Check the SFTP To Go credential’s home directory and the path passed to `Get file content using path`. Power Automate shows that home directory as `/`.
  • Update the expression so the action receives the file path from the credential’s home directory, without repeating the home-directory prefix.

Power Automate shows List not found or GetTable

  • This usually means the flow uses SharePoint Create item, which expects a list, instead of Create file, which writes a document.
  • Replace it with SharePoint Create file, then set the folder, file name, and file content again.

SharePoint creates the file in the wrong location

  • Re-select the destination with the SharePoint folder picker and confirm that the path begins with the intended document library.
  • A path typed by hand can resolve to the library root even when the flow succeeds.

The SharePoint connection needs attention

  • Open Power Automate Connections, re-authenticate the SharePoint connection, and complete MFA if the tenant requires it.
  • Check the failed action for token, permission, or interaction_required messages.
  • After the connection is healthy, resubmit a failed run or upload a new test file.

SharePoint already contains the same file name

  • Apply the policy chosen during setup: fail and alert, overwrite, add a timestamp, skip the file, or route it to a review folder.
  • Don’t leave this behavior undefined, especially when partners may resend files.

SFTP to SharePoint file-size and concurrency limits

In the tests behind this guide, files up to about 80MB moved successfully through the inbound Power Automate flow. That isn’t an SFTP To Go storage limit, and the reliable maximum can vary by Microsoft tenant, connector limits, and the number of uploads arriving at once. See Power Automate limits for current platform guidance.

The main points to test are the largest file your process expects and how many files may arrive within the same short period.

Inbound reliability can be affected by:

  • the time required to retrieve and pass file content between connectors
  • content-encoding overhead and action timeouts
  • SharePoint library, tenant, and permission limits
  • `SFTP-SSH` connector path handling and action limits
  • parallel Power Automate runs when several files arrive together
  • retry behavior and the risk of creating duplicate files
  • unsupported filename characters, long paths, and deep folder structures
  • the response time of the source and destination services

Before production use, test the exact webhook filter, source path, credential home directory, SharePoint folder, permissions, duplicate policy, realistic file count, and failure-notification process.

Test the largest files and the busiest arrival period the flow is likely to handle. One successful small-file transfer doesn’t show how the flow will behave under normal load.

For the wider control model around this inbound workflow, explore  Managed File Transfer: MFT Software, SOC 2, GDPR, DORA, HIPAA, What Is MFT? and Enterprise Managed File Transfer: Benefits & Best Practices.


SFTP to SharePoint sync is now set up

You’ve now built and tested the SFTP-to-SharePoint flow. A file.created webhook starts each run, Power Automate reads the uploaded path and retrieves the file, and SharePoint creates it in the selected document-library folder.

After checking the paths, permissions, duplicate behavior, expected file sizes, and simultaneous uploads, the flow is ready to bring incoming SFTP files into SharePoint. For details on the shared SFTP-SSH connection, see How to Connect Power Automate to SFTP. If you also need to send SharePoint files to SFTP To Go, continue to SharePoint to SFTP Sync.


Frequently asked questions

Which SFTP To Go webhook event should trigger the SharePoint flow?

Use the `file.created` topic. It covers a new file or directory creation event, so pair it with a file-only path filter such as `Path matches ^.*[^/]$`. That keeps download, delete, ping, and directory events away from the SharePoint file-creation action.

Why does the Power Automate HTTP URL appear only after I save the flow?

Power Automate doesn’t generate the Request trigger endpoint until the first save. Save the flow once, reopen the trigger if needed, and copy the complete `HTTP URL` into the SFTP To Go webhook endpoint field.

Why does the HTTP trigger need a JSON request schema?

The schema tells Power Automate how to expose fields from the SFTP To Go webhook payload, including `Topic` and `Data.Path`. Generate it from a real test delivery so your later conditions and expressions use the payload structure the webhook actually sends.

How do I pass the SFTP To Go webhook path to the SFTP-SSH connector?

Compare `Data.Path` with the home directory used by the `SFTP-SSH` connection. If the webhook path includes that home directory, remove the repeated prefix with a `replace` expression before passing the path to `Get file content using path`.

Why does Get file content using path return a 404 error?

The action is usually looking in the wrong path. Check the credential’s home directory, inspect the full webhook path, and make sure the expression removes only the home-directory prefix that Power Automate already treats as `/`.

How do I make sure only files from the inbound folder reach SharePoint?

Add a condition that checks whether `Data.Path` contains the selected folder, such as `/inbound`. Continue the SFTP and SharePoint actions only in the `True` branch, and ignore or log the `False` branch.

How can the flow keep the original SFTP file name in SharePoint?

Use `last(split(triggerBody()?['Data']?['Path'], '/'))` in the SharePoint `File Name` field. It extracts the final path segment while the previous SFTP action supplies the binary file content.

What should the flow do when SharePoint already has the same file name?

Choose the behavior before production use: fail and alert, overwrite, append a timestamp, skip the file, or send it to a review folder. For a controlled workflow, failing and alerting is often safer than creating silent duplicates.