> For the complete documentation index, see [llms.txt](https://doc.wearepatchworks.com/product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.wearepatchworks.com/product-documentation/connectors-and-instances/patchworks-connectors/ftp-prebuilt-connector.md).

# FTP (prebuilt connector)

## Description

The Patchworks FTP connector is used to connect FTP servers, for use in process flows.

{% hint style="info" %}
An [SFTP connector](/product-documentation/connectors-and-instances/patchworks-connectors/sftp-prebuilt-connector.md) is also available - use this for secure connections.
{% endhint %}

## Authentication

When adding connector instances of the Patchworks FTP connector, the following authentication methods are supported:

* [Anonymous](#anonymous)
* [Username & password](#username-and-password)
* [Troubleshooting](#troubleshooting)

Guidance for using these authentication methods is summarised below.

{% hint style="warning" %}
If you are using a custom version of our prebuilt FTP connector (i.e. if the authentication method and/or endpoint settings have been updated after the original installation), please be aware that your settings and requirements may vary.
{% endhint %}

### Anonymous

<table><thead><tr><th width="240">Credential</th><th>Notes</th></tr></thead><tbody><tr><td><code>Host</code></td><td>Enter the host name provided by your FTP provider. For example: <code>eu-west-1.sftpcloud.io</code></td></tr><tr><td><code>Username</code></td><td>Enter the username provided by your FTP provider.</td></tr><tr><td><code>Port</code></td><td>Enter the port number provided by your FTP provider.</td></tr><tr><td><code>Root</code></td><td>Enter the initial directory that the FTP client connects to once a connection is made. This becomes the reference point for subsequent file operations. For example: <code>/</code></td></tr><tr><td><code>Path</code></td><td>Specify a location of specific files or directories relative to the root that you wish to use, or leave blank.<br><br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2FKvJZhQaEKfDOWvbHsbYe%2Ftip%20icon.svg?alt=media&amp;token=975b37c4-e5e3-462c-a32f-cc72a5461cac" alt="" data-size="line"> Whenever the <a href="/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/connector-shape/configuring-ftp-connections.md">FTP connector is added to a process flow</a>, you need to enter the required <code>path</code> to be accessed. With this in mind, there's no need to be too specific when setting up the instance - entering <code>/</code> here is fine.</td></tr><tr><td><code>Ignore passive address</code></td><td>The default setting of <code>true</code> means that you will use the default <code>active mode</code> for establishing a connection.</td></tr><tr><td><code>Timeout</code></td><td>Leave the default setting of <code>10</code> seconds unless you experience any timeout issues with your connection.</td></tr></tbody></table>

### Username & password

If you choose to [add a connector instance](/product-documentation/connectors-and-instances/working-with-instances/adding-an-instance.md) with **username & password** authentication, you need to enter the following details:

<table><thead><tr><th width="240">Credential</th><th>Notes</th></tr></thead><tbody><tr><td><code>Host</code></td><td>Enter the host name provided by your FTP provider. For example: <code>eu-west-1.sftpcloud.io</code></td></tr><tr><td><code>Username</code></td><td>Enter the username provided by your FTP provider.</td></tr><tr><td><code>Password</code></td><td>Enter the password provided by your FTP provider.</td></tr><tr><td><code>Port</code></td><td>Enter the port number provided by your FTP provider.</td></tr><tr><td><code>Root</code></td><td>Enter the initial directory that the FTP client connects to once a connection is made. This becomes the reference point for subsequent file operations. For example: <code>/</code></td></tr><tr><td><code>Path</code></td><td>Specify a location of specific files or directories relative to the root that you wish to use, or leave blank.<br><br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2FKvJZhQaEKfDOWvbHsbYe%2Ftip%20icon.svg?alt=media&amp;token=975b37c4-e5e3-462c-a32f-cc72a5461cac" alt="" data-size="line"> Whenever the <a href="/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/connector-shape/configuring-ftp-connections.md">FTP connector is added to a process flow</a>, you need to enter the required <code>path</code> to be accessed. With this in mind, there's no need to be too specific when setting up the instance - entering <code>/</code> here is fine.</td></tr><tr><td><code>SSL</code></td><td>Set this option to <code>true</code>if you want to use FTPS (an extension of FTP that adds a layer of security by using SSL/TLS (Secure Sockets Layer/Transport Layer Security) for encryption.</td></tr><tr><td><code>Ignore passive address</code></td><td>The default setting of <code>true</code> means that you will use the default <code>active mode</code> for establishing a connection.</td></tr></tbody></table>

### Troubleshooting

#### Upload reported as failed, but the file is on the server

When a process flow sends a file to an FTP server, the connector checks the server's response to confirm that the upload completed. Some FTP servers don't return a standard success response after a file has been written - for example, they may close the connection early, return a non-standard code, or respond with an error even though the file has been saved.

When this happens, the FTP connector step in your process flow fails with an `unable to send file` error, even though the file has actually arrived.

**How to check**

Log in to the FTP server (or ask whoever manages it) and confirm whether the file is present and complete. If it is, and your flow fails at the FTP step every time, the cause is the server's response rather than the upload itself.

**What to do**

Contact your Customer Success representative and ask for **strict response checking** to be disabled for FTP put requests on your account. Once this is switched off, the connector no longer treats a non-standard response as a failure, and the step completes when the file has been sent.

{% hint style="warning" %}
Strict response checking exists to catch genuine upload failures, so only request this change once you've confirmed that files are reaching the server correctly.
{% endhint %}
