> This is part 1 of 2 of the full documentation (pages 1–100 of 180).
> The content is paginated: fetch every part to see all of it.
> Next part: https://docs.couchdrop.io/llms-full.txt/1
> Page index: https://docs.couchdrop.io/llms.txt

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
This site has an agentic ask interface you may use to query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.couchdrop.io/index.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

---

# Welcome to Couchdrop

Learn about Couchdrop

Couchdrop is a secure file transfer platform for moving files between people, partners, storage platforms, and business systems.

It supports transfer methods such as SFTP, FTP, AS2, webhooks, Mailboxes, and Upload Links, and connects them to the storage and systems you already use.

With Couchdrop, you can:

* Provide [SFTP](/managed-file-transfer/sftp) and other transfer methods without running servers
* Connect [cloud storage](/storage/integrations), [business systems](/integrations/overview), and [file servers](/storage/local-storage)
* Automate file movement, naming, routing, and notifications
* Apply [data governance and policy controls](/security-and-governance/transfer-shield-dlp) to transfers

[Couchdrop-hosted storage](/storage/hosted-storage) is available to help you get started, but most customers connect their existing storage.

{% hint style="info" %}

### Zero-custody, direct-to-storage transfers

When you connect your own storage, Couchdrop acts as the secure conduit between systems rather than becoming another place to store your files.

Files move between the source and destination you choose, while you retain control over where they are stored.
{% endhint %}

## Get started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4>Receive a file via SFTP </h4></td><td>Set up an SFTP user and receive your first file.</td><td><a href="/get-started/set-up-an-sftp-user-and-endpoint">Set up an SFTP user &amp; endpoint</a></td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F4Ixn8CuyDuv05h8WKx9k%2FInbound%20SFTP-no-border.png?alt=media&amp;token=4445a52a-f5df-4462-ad2a-4966d9e2662b">Inbound SFTP-no-border.png</a></td></tr><tr><td><h4>Connect your Storage</h4></td><td>Send and receive files using your existing storage platforms.</td><td><a href="/get-started/connect-your-existing-storage">Connect your existing storage</a></td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FtiMCaY75ad3p5T1S4oAA%2FCouchdrop-storage-grid.png?alt=media&amp;token=8f1ee3ae-474a-479f-832f-2c4ac42f3efd">Couchdrop-storage-grid.png</a></td></tr><tr><td><h4>Automate a file workflow</h4></td><td>Process and route files automatically without writing code.</td><td><a href="/get-started/build-your-first-automation">Build your first automation</a></td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FNxlaZ48kY8eII2bcqrGg%2FCouchdrop-automate-docs.png?alt=media&amp;token=3dcad7d1-58db-47d0-b1ce-ba2815edd264">Couchdrop-automate-docs.png</a></td></tr></tbody></table>


# How Couchdrop works

Couchdrop works differently from legacy SFTP and MFT infrastructure. There are a few key concepts that explain how the platform works and why it is different.

## Overview

Couchdrop works differently from a traditional file server. Understanding its virtual filesystem, connected storage, and managed transfer layer will make the rest of the platform easier to understand.

## Virtual filesystem

Couchdrop presents connected storage and systems through a virtual filesystem.

When you connect a platform such as SharePoint, Amazon S3, Google Drive, or an external SFTP server, it appears as a folder in Couchdrop.

That folder is a Couchdrop path to the connected system. The files themselves remain in the underlying storage platform.

For example:

**Couchdrop folder** → **SharePoint document library**

When you browse that folder in Couchdrop, you are viewing the files stored in SharePoint rather than copies stored separately in Couchdrop.

This lets you work with different storage platforms through a consistent filesystem while keeping your existing storage architecture.

{% hint style="info" %}
A folder in Couchdrop does not necessarily mean the files are stored by Couchdrop. It can represent a location in another connected platform.
{% endhint %}

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FsIFWbfo7TMpAG6PdAFd7%2FOverview%20-%20File%20Browser.jpg?alt=media&amp;token=35a6ddde-3f56-4419-9eef-b19857681a25" alt=""><figcaption></figcaption></figure>

### Your data stays in your storage

When you use your own connected storage, Couchdrop transfers files directly to or from that storage rather than becoming another permanent place where those files are kept.

Couchdrop refers to this as **zero-custody transfer**.

Conceptually:

**Source → Couchdrop → Your storage**

rather than:

**Source → Couchdrop storage → Your storage**

For example, an SFTP user can upload a file to a Couchdrop folder that represents a SharePoint location. Couchdrop transfers the file into SharePoint, and SharePoint remains the system storing the file.

This allows you to retain control over where your business data is stored, including the storage platform's own residency, retention, and access policies.

{% hint style="info" %}
Zero-custody transfers apply when you use your own connected storage. Couchdrop-hosted storage is also available where required.
{% endhint %}

Couchdrop still retains the account information and metadata required to operate the service. Audit records may also contain information such as file and folder names.

### Access is separate from storage

Couchdrop separates **how files are transferred** from **where files are stored**.

A user or external system can access a Couchdrop folder without needing direct access to the storage platform behind it.

```mermaid
flowchart LR
    A["Partner<br/>connects over SFTP"]

    subgraph CD["Couchdrop"]
        B["Virtual folder"]
    end

    C["Your SharePoint storage"]

    A --> B
    B --> C
```

In the example above, the partner only needs the SFTP access you provide through Couchdrop. They do not need a SharePoint account or direct SharePoint permissions. They won't even know that you use SharePoint, they only see SFTP.

The same principle allows Couchdrop transfer methods and workflows to work with storage hosted elsewhere.

This separation means you can choose the transfer method required by a partner or system while retaining control of the underlying storage.

## Cloud-native SaaS

Couchdrop provides secure file transfer as a **managed SaaS platform**.

You configure the users, connections, virtual folders, and workflows that define how files move between your systems. Couchdrop operates the transfer infrastructure underneath them.

That means you do not need to deploy, patch, or maintain an SFTP server, virtual machine, local file transfer software, supporting scripts, or the infrastructure required to scale them.

Your storage and business systems remain where they are. Couchdrop provides the **secure transfer layer** that connects them to your other systems and external partners.

Platform updates, security maintenance, availability, and infrastructure scaling are managed as part of the Couchdrop service.

You manage how files should move. Couchdrop manages the infrastructure required to move them.

## API-first

Couchdrop provides an API for integrating platform administration and configuration into your own systems and processes.

This allows organizations to automate Couchdrop management rather than relying entirely on manual configuration through the web interface.

For API documentation, see the [Couchdrop Management API](https://developers.couchdrop.io/).


# How to upgrade from trial

Learn how to upgrade your Couchdrop account from a trial to a full subscription.

## Overview

New Couchdrop accounts start with a **14-day free trial** on the Business plan.

During the trial, you can configure and test Couchdrop, including connections, workflows, Automations, and file transfers.

When you are ready to continue with a paid plan, you can upgrade directly from your Couchdrop account.&#x20;

{% hint style="success" %}

### Upgrading does not reset your configuration or require any migration.

Your existing users, connections, Automations, workflows, SFTP endpoints, and account settings remain unchanged when you upgrade.
{% endhint %}

## Upgrading your subscription

{% hint style="warning" %}

### Before you start

To upgrade your trial, you will need:

* Access to the **Account Owner**
* A valid credit card
* The Couchdrop plan you want to subscribe to

Only the Account Owner can access billing and subscription settings.
{% endhint %}

{% stepper %}
{% step %}

### Open your Couchdrop account

Sign in to [Couchdrop](https://my.couchdrop.io) using the Account Owner credentials.
{% endstep %}

{% step %}

### Open billing

In the bottom-left corner of Couchdrop, click **Upgrade Plan**.

This opens the billing and subscription section for your account.
{% endstep %}

{% step %}

### Choose a plan

Select the Couchdrop plan you want to use, then click **Subscribe**.

If you are unsure which plan is appropriate, contact <sales@couchdrop.io>.
{% endstep %}

{% step %}

### Enter your billing details

Enter the requested billing, company, and payment information.

Confirm the subscription to complete the upgrade.
{% endstep %}

{% step %}

### Confirm your subscription

Once payment has been processed, your trial converts to a paid subscription.

Your existing Couchdrop configuration remains in place and you can continue using the account without reconfiguring users, connections, workflows, or Automations.
{% endstep %}
{% endstepper %}

{% hint style="success" %}

### After upgrading

Once your subscription is active:

* Your existing users remain active
* Connections and SFTP endpoints continue working
* Automations and workflows remain configured
* Your existing account settings are retained
* Billing starts from the date you upgrade
* You can manage your subscription from the billing section

No migration or account recreation is required.
{% endhint %}

## Enterprise and assisted billing

Contact <sales@couchdrop.io> if your organization requires:

* Annual billing
* Purchase orders
* Custom contracts
* Security reviews
* Enterprise onboarding assistance

The Couchdrop team can arrange billing and contracting outside the standard self-service subscription process.

## Frequently asked questions

<details>

<summary>I can't see Upgrade Plan</summary>

Only the **Account Owner** can access billing and subscription settings.

If you are signed in as another administrator or user, contact your Account Owner.

</details>

<details>

<summary>Will upgrading reset my account?</summary>

No. Your existing users, connections, Automations, workflows, SFTP endpoints, and account configuration remain unchanged.

</details>

<details>

<summary>When does billing start?</summary>

Billing starts from the date you upgrade your trial to a paid subscription.

</details>

<details>

<summary>Can I extend my trial?</summary>

Yes. Contact <sales@couchdrop.io> if you need additional evaluation time.

</details>

<details>

<summary>Can I change plans later?</summary>

Yes. You can manage or change your subscription later from the Couchdrop billing section.

</details>

<details>

<summary>My payment was declined</summary>

Check that:

* Your card details are correct
* Your card supports online and international payments
* Your billing address is correct
* Sufficient funds are available

If the payment continues to fail, contact your payment provider or the Couchdrop team.

</details>


# Set up an SFTP user & endpoint

Set up an SFTP endpoint and receive your first file using Couchdrop-hosted storage.

## Introduction

When you create a Couchdrop trial, Couchdrop-hosted storage is automatically set up in the region selected during signup.

In this guide, you will create an SFTP user, connect to your Couchdrop SFTP endpoint, and upload your first file.

{% hint style="warning" %}

#### Before you start

The admin user created during signup is the account owner.

Account owners do not have file transfer access enabled by default. We recommend leaving this unchanged and creating a separate user for SFTP access.
{% endhint %}

{% stepper %}
{% step %}

### Create an SFTP user

In Couchdrop, select:

**+ Create → Create SFTP or FTP User**

Select **SFTP User**.
{% endstep %}

{% step %}

### Configure the user

For **Username**, use the autogenerated username or enter your own.

For **Root directory**, select the root directory in the folder picker.

For **Password**, select **Autogenerated Password**.

Leave **Public and Automatic RSA Key creation** disabled for this guide.

{% hint style="info" %}
A root directory limits the user to a specific folder in Couchdrop or connected storage. The user cannot browse outside that location or identify the underlying storage.
{% endhint %}

Click **Create user**.
{% endstep %}

{% step %}

### Save your credentials

Couchdrop displays the new user's:

* Username
* Password
* SFTP endpoint
* Private key, if enabled

Your SFTP endpoint will look similar to:

`sftp://username@your-subdomain.couchdrop.io`

{% hint style="warning" %}
Copy or download the credentials before leaving this page.

Generated passwords and private keys are not stored by Couchdrop and cannot be displayed again.
{% endhint %}
{% endstep %}

{% step %}

### Connect and upload a file

Open your SFTP client and connect using:

| Setting      | Value                         |
| ------------ | ----------------------------- |
| **Host**     | `your-subdomain.couchdrop.io` |
| **Port**     | `22`                          |
| **Username** | Your new username             |
| **Password** | Your generated password       |

Upload a small test file.
{% endstep %}

{% step %}

### Check the file arrived

Open **File Browser** in Couchdrop.

Your test file should appear in the root directory.

You can also open **Activity** to confirm the upload.
{% endstep %}
{% endstepper %}

## Next steps

You now have a working SFTP endpoint and have received your first file through Couchdrop.

Next, **connect your existing storage** so files can be delivered directly to the platform where they need to live.


# Connect your existing storage

Connect Couchdrop to the storage platform where your files already live.

## Introduction

Couchdrop connects to the storage platform where your files already live, such as SharePoint, Amazon S3, Azure, Google Drive, or Dropbox.

Connected storage appears inside Couchdrop as part of its virtual file system, so you can work with different storage platforms through one consistent folder structure.

Files are not copied into or stored by Couchdrop when you connect a storage platform. When a file is uploaded to a connected folder, Couchdrop transfers it directly to the underlying storage location.

{% hint style="info" %}

#### How connected storage works

A connected storage location appears as a folder in Couchdrop, but the folder is a view of your underlying storage.

For example, if `/SharePoint` is connected to a SharePoint document library, files uploaded to `/SharePoint` are written directly to that SharePoint location. They are not moved into Couchdrop-hosted storage first.

You can organize multiple storage connections within the same Couchdrop virtual file system and use them with SFTP users, file transfers, and automations.
{% endhint %}

## Connect your cloud storage to Couchdrop

{% hint style="warning" %}

### Before you start

To connect your existing storage, you will need:

* Administrator access to your Couchdrop account
* Access to the storage platform you want to connect
* The credentials, account permissions, or API details required by that platform
  {% endhint %}

{% stepper %}
{% step %}

### Create a storage connection

In Couchdrop, select:

**+ Create → Add Storage Connection**

You can also create a connection from the **Connections** page.
{% endstep %}

{% step %}

### Choose where it appears

Enter a folder name and choose where the connection should appear in Couchdrop.

For example:

`/SharePoint`

{% hint style="info" %}
Connected storage appears in Couchdrop as a virtual folder.

The files remain in the underlying storage platform while Couchdrop provides access to them through its file system.
{% endhint %}
{% endstep %}

{% step %}

### Select your storage platform

Choose the storage platform you want to connect.

You will need the credentials, API key, account access, or permissions required by that platform.

Follow the setup steps shown for the selected connection, then test and save it.
{% endstep %}

{% step %}

### Check the connection

Open **File Browser**.

Your connected storage should appear as a folder in the location you selected.

Open it and confirm that Couchdrop can browse the files and folders inside it.
{% endstep %}
{% endstepper %}

## Next steps

Your storage is now connected to Couchdrop.

In the previous guide, you created an SFTP user that pointed to Couchdrop-hosted storage.

Now update that user so files uploaded over SFTP go directly to your connected storage.

1. Open **SFTP & FTP Users** and select the user you created earlier.
2. Open the user's settings.
3. Change the **Home Directory** to a folder inside your connected storage.
4. Save the changes.
5. Connect over SFTP using the same user credentials and upload a test file.

Open **File Browser** and confirm the file appears in the connected storage folder.

Because the user's root directory now points to connected storage, files uploaded by that user are written to that storage location rather than Couchdrop-hosted storage.

Next, **build your first automation** to automatically organize files after they arrive.


# Build your first automation

Automations let Couchdrop handle repetitive file operations without scripts or manual work.

### Introduction

[Automations](/automations/overview) let Couchdrop perform file operations when a defined event occurs.

In this guide, you will create an automation that runs when a file is uploaded, renames the file, and moves it into a folder based on the upload date.

## Creating an automation in Couchdrop

{% hint style="warning" %}

#### Before you start

To complete this guide, you will need:

* Administrator access to your Couchdrop account
* A folder you can upload a test file to
* The storage connection you created in the previous guide, if you want to test the automation against your own storage
  {% endhint %}

{% stepper %}
{% step %}

### Create an automation

In Couchdrop, select:

**+ Create → Create Automation**

Enter a name for the automation, for example:

`Organize uploaded files`
{% endstep %}

{% step %}

### Choose the trigger

Select the [trigger](/automations/triggers) for when a file is uploaded.

Set the source to the folder you want Couchdrop to monitor.

For this guide, use the connected storage folder you configured in the previous step.
{% endstep %}

{% step %}

### Add a rename action

Add a **Rename** [action](/automations/actions).

Set the new filename format. For example:

`{TIMESTAMP}_{EXISTING_NAME}`

Use the variable picker in the Automation Builder to insert [dynamic variables](/automations/variables).
{% endstep %}

{% step %}

### Add a move action

Add a **Move** action after the rename step.

Set the destination folder using date variables:

`/{YYYY}/{MM}/{DD}/`

For example, a file uploaded on July 27, 2026 moves to:

`/2026/07/27/`

Couchdrop creates the folder path if it does not already exist.
{% endstep %}

{% step %}

### Enable the automation

Review the trigger and actions.

Enable **Automation Enabled**.
{% endstep %}

{% step %}

### Test the automation

Upload a small test file to the source folder.

Open **File Browser**, or check your underlying storage, and confirm the file:

* Has been renamed
* Has moved to the correct date folder

Open **Activity** to confirm each automation step completed successfully.
{% endstep %}
{% endstepper %}

{% hint style="success" %}

### Automate your SFTP workflows

You already have an SFTP user pointing to your connected storage.

Upload another file using that SFTP user.

The file should arrive in the connected storage location, trigger the automation, then be renamed and moved into the date-based folder structure.

Open **File Browser** to confirm the final location, then check **Activity** to see the automation run.
{% endhint %}

### Next steps

You now have a working end-to-end flow:

**SFTP upload → connected storage → automation**

From here, you can build automations for other file transfer workflows using different triggers, actions, and storage locations.


# SFTP

Couchdrop lets you use SFTP without managing traditional SFTP infrastructure. Run Couchdrop as a secure SFTP server or endpoint for external partners and systems, or connect Couchdrop to existing external SFTP servers and manage them alongside your cloud storage.&#x20;

You can use Couchdrop SFTP to:

* Host secure SFTP endpoints for customers and partners
* Connect to external or partner-managed SFTP servers
* Receive files directly into SharePoint, Google Drive, and other storage platforms
* Automate scheduled and event-driven SFTP transfers

<a href="https://www.couchdrop.io/register" class="button primary medium">Start your free trial</a> <a href="https://www.couchdrop.io/get-a-demo" class="button secondary medium">Book a demo</a>

***

## Get started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Inbound SFTP Connections</td><td>How to connect to Couchdrop via SFTP</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F4Ixn8CuyDuv05h8WKx9k%2FInbound%20SFTP-no-border.png?alt=media&amp;token=4445a52a-f5df-4462-ad2a-4966d9e2662b">Inbound SFTP-no-border.png</a></td><td><a href="/managed-file-transfer/sftp/inbound-sftp-connections">Inbound SFTP connections</a></td></tr><tr><td>External SFTP Connections</td><td>How to connect to an external SFTP endpoint</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FXPkSY0qSx0z0eqRX8PPt%2FOutbound%20SFTP.png?alt=media&amp;token=a25229f9-c2af-4132-8de7-18d568f80855">Outbound SFTP.png</a></td><td><a href="/managed-file-transfer/sftp/connect-to-external-sftp-servers-and-endpoints">Connect to external SFTP servers and endpoints</a></td></tr><tr><td>Connect Storage</td><td>How to connect to cloud storage using SFTP</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FtiMCaY75ad3p5T1S4oAA%2FCouchdrop-storage-grid.png?alt=media&amp;token=8f1ee3ae-474a-479f-832f-2c4ac42f3efd">Couchdrop-storage-grid.png</a></td><td><a href="/storage/integrations">Storage integrations</a></td></tr><tr><td>Create SFTP Users</td><td>Create external SFTP Users with root folder isolation</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FkLEopZ5gfFh702sbciQx%2FCouchdrop-create-sftp-users-2.png?alt=media&amp;token=1612fadb-a8d7-4b8a-916b-5475479f6d4a">Couchdrop-create-sftp-users-2.png</a></td><td><a href="/managed-file-transfer/sftp/create-sftp-users">Create SFTP Users</a></td></tr><tr><td>Connect Platforms</td><td>How to connect to business platforms using SFTP</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FArYhVXIRd16IT07hBj0x%2FCouchdrop-platform-grid.png?alt=media&amp;token=0ef63fd1-ce0b-410d-9d9d-97298c00d9f6">Couchdrop-platform-grid.png</a></td><td><a href="/integrations/overview">Integrations</a></td></tr><tr><td>Automate Transfers</td><td>How to schedule and automate SFTP workflows</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FNxlaZ48kY8eII2bcqrGg%2FCouchdrop-automate-docs.png?alt=media&amp;token=3dcad7d1-58db-47d0-b1ce-ba2815edd264">Couchdrop-automate-docs.png</a></td><td><a href="/automations/overview">Overview</a></td></tr></tbody></table>

***


# Inbound SFTP connections

Learn about using Couchdrop as an alternative to traditional SFTP servers

## How it works

Couchdrop acts as an SFTP server to deploy hyper-scale, secure, cloud-hosted SFTP endpoints that connect directly to your existing storage without deploying or maintaining SFTP infrastructure.

Your cloud SFTP service and endpoint are enabled automatically when you first set up your Couchdrop account. To use it, [**create an SFTP user**](/managed-file-transfer/sftp/create-sftp-users) and assign their home folder, also known as [**root directory**](/administration/user-and-group-management/root-directory).

The root directory determines which files and folders the user can access. It can point to [Couchdrop hosted storage](/storage/hosted-storage) or [cloud and on-prem storage connected to Couchdrop](/storage/overview).

## Connection details

Couchdrop uses the default ports for SFTP and a unique hostname for your tenant.

| Parameter      | Value                      |
| -------------- | -------------------------- |
| Hostname       | \<yourdomain>.couchdrop.io |
| Port           | 22                         |
| Authentication | Password or SSH key        |

## How to connect to Couchdrop using SFTP

{% hint style="warning" %}

#### Before you start

To connect to Couchdrop using SFTP, you will need:

* An SFTP username and password, or username and SSH key
* Your Couchdrop hostname
* An SFTP client, application, or system that supports SFTP

If you do not have a user yet, see [**Create an SFTP User**](/managed-file-transfer/sftp/create-sftp-users).
{% endhint %}

{% stepper %}
{% step %}

### Open your SFTP client or application

This could be a standalone SFTP client, such as FileZilla or Cyberduck, or an SFTP connection configured within another product, service, or platform, such as NetSuite or Salesforce.
{% endstep %}

{% step %}

### Enter your Couchdrop SFTP credentials

Enter the connection details for your Couchdrop SFTP user:

* Your Couchdrop hostname
* Your SFTP username
* Your password or SSH key
  {% endstep %}

{% step %}

### Connect via SFTP

Start the connection from your SFTP client or application. Once authenticated, you'll be connected to Couchdrop and can begin transferring files.
{% endstep %}
{% endstepper %}

{% hint style="info" %}

#### Host key authentication

If your client requires SSH host key verification, use the host key details shown below.
{% endhint %}

## Host key authentication

Couchdrop provides a public host key that can be used to verify the authenticity of the endpoint you are connecting to. This key is static and we do not expect it to change in the future.

**The host key for all Couchdrop endpoints**

```
AAAAB3NzaC1yc2EAAAADAQABAAAAgQCFzDO6AiZhK4ks4Bz/VBysjB3fpExCfOmy2EuI2gXJDYgom4nvZK4eEEgHRrkNoRUww4RJ7CTRKKXWodP7OthQw2AfppgBfR8dUK3zYdp/IClqTZ0+yxk72lLV9k8HwbtalOEzlJNc6AKlAkDi+WtG8RRZbJeaQZf3pe0k6oa7yQ==
```

## Common issues and errors

<details>

<summary>Authentication failed</summary>

Confirm that the username is correct and that the user has a valid password or SSH public key configured.

</details>

<details>

<summary>Connection refused or timed out</summary>

Confirm that your network allows outbound SFTP connections over port 22 and that you are connecting to the correct Couchdrop hostname.

</details>

<details>

<summary>User cannot see the expected files or folders</summary>

Check the user's folder permissions and Virtual Folder configuration, and confirm that the underlying storage connection is available.

</details>

<details>

<summary>Permission denied when uploading or modifying files</summary>

Check that the user has write access to the relevant folder and that the connected storage permits the requested operation.

</details>

## Frequently asked questions

<details>

<summary><strong>Do I need to run my own SFTP server?</strong></summary>

No. Couchdrop provides the SFTP endpoint as a hosted service, so you do not need to deploy or maintain SFTP server infrastructure.

</details>

<details>

<summary><strong>Can Couchdrop connect to another SFTP server?</strong></summary>

Yes. Couchdrop can also connect to [external SFTP servers](/managed-file-transfer/sftp/connect-to-external-sftp-servers-and-endpoints) for file transfers and workflows.

</details>

<details>

<summary><strong>Can Couchdrop replace a self-hosted SFTP server?</strong></summary>

Yes. Couchdrop can act as the hosted SFTP server while using Couchdrop hosted storage or your existing connected storage.

</details>

<details>

<summary><strong>Can SFTP connect directly to cloud storage?</strong></summary>

Yes. Couchdrop can provide SFTP access to connected cloud and on-premises storage, so users can work with files over SFTP without accessing the underlying storage platform directly.

</details>

<details>

<summary><strong>Can I use SFTP with Google Drive, Dropbox, or SharePoint?</strong></summary>

Yes. Couchdrop can connect SFTP users to [supported storage platforms](/storage/integrations) such as Google Drive, Dropbox, and SharePoint.

</details>

<details>

<summary><strong>Can SFTP transfers be automated?</strong></summary>

Yes. Couchdrop can use SFTP connections within [automated file transfer workflows](/automations/overview).

</details>


# Create SFTP Users

Learn about allowed users for SFTP and FTP

To access Couchdrop over SFTP, each person, partner, or system needs a Couchdrop SFTP user account.

Users are separate from Couchdrop Administrators and can be given access to a specific folder location. This lets you provide SFTP access without exposing administrative access to your Couchdrop tenant.

Avoid using your owner account for SFTP connections. Owner accounts have elevated permissions, while SFTP credentials are often used by external systems, applications, or business partners.

## How to create a new SFTP User

{% hint style="warning" %}

### Before you start

To create an SFTP user, you will need:

* Administrator access to your Couchdrop tenant
* A unique username and password
* A folder location for the user to access
  {% endhint %}

Creating a new Inbound SFTP user is done in the management dashboard from Couchdrop and is a simple two step process.

{% stepper %}
{% step %}

### Create an SFTP user

In Couchdrop, select **SFTP & FTPs Users**, then click **Create New**. Select **SFTP User** and continue.

If you do not see this option, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure the user

Configure the new user by setting a **username**, selecting their [**home/root directory**](/administration/user-and-group-management/root-directory), and choosing an authentication method.

You can use an **autogenerated password**, set a **custom password**, or create an **RSA key pair** for SFTP and SCP authentication.

If [**Transfer Shield**](#transfer-shield) is enabled, you can select a **content rule group** to surface or block unexpected, non-compliant, or malicious files uploaded by this user.
{% endstep %}

{% step %}

### Save your new SFTP user credentials

Once the user has been created, Couchdrop will display the user credentials and provide the option to download credentials or share them directly from the platform.&#x20;

Sharing from Couchdrop is done via email from <noreply@couchdrop.io>.
{% endstep %}
{% endstepper %}

***

## User Settings

After creating a user, you can configure additional permissions, access and security controls, and Transfer Shield DLP from the user's settings.

### General User Settings

| Setting                                             | Description                                                                                                                                                              |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Email Address**                                   | Set or update the email address associated with the user. Optional.                                                                                                      |
| **Password**                                        | Set or update the user's password.                                                                                                                                       |
| **User must create a new password at next sign-in** | Requires the user to replace the configured password the next time they sign in.                                                                                         |
| **Public Key Authentication**                       | Adds a public key for SFTP or SCP authentication. Couchdrop supports [RSA, DSA, and ECDA public keys](/administration/user-and-group-management/passwords-and-rsa-keys). |

### File Permissions

| Setting                           | Description                                                                                                   |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Home Directory**                | Sets the home or root directory for the user. This determines the highest-level location the user can access. |
| **Global filesystem permissions** | Controls the user's overall file access permissions. Read only, write only, reader/write.                     |
| **Delete allowed**                | Allows the user to delete files within locations they can access.                                             |

### Access & Security Controls

| Setting            | Description                                                                                                          |
| ------------------ | -------------------------------------------------------------------------------------------------------------------- |
| **Network ACLs**   | You can restrict a user so they can only connect from approved IP addresses or networks.                             |
| **Expiry**         | Controls whether the user expires. Select **Never Expire** or configure the user to expire after a specified period. |
| **Allow FTP/FTPS** | Allows the user to connect using [FTP or FTPS](/managed-file-transfer/ftp-and-ftps).                                 |

### Transfer Shield

Transfer Shield lets you define the type of content expected from a user and apply controls when uploaded files do not match those expectations.

| Setting                           | Description                                                                          |
| --------------------------------- | ------------------------------------------------------------------------------------ |
| **Enable Content Classification** | Files uploaded by the user are classified using the Transfer Shield DLP engine.      |
| **Block unclassified files**      | Denies a file if Transfer Shield cannot classify it for any reason.                  |
| **Content Rule Groups**           | Applies a selected Transfer Shield content rule group to files uploaded by the user. |

Transfer Shield can be used to block files or surface them for approval when their content does not match what you expect from that user.

***

## How to bulk create SFTP users

If you need to provision multiple SFTP users, you do not need to create each user individually.

Couchdrop supports bulk and automated user provisioning for larger deployments. Depending on your environment, you can use:

* **Bulk import** - [create multiple users in one operation](broken://pages/22BtNvXJWLvJhljcAMOS).
* **SCIM provisioning** - automatically provision and manage users from a [supported identity provider](/administration/scim-and-sso).
* **API** - automate user provisioning using the [Couchdrop API](https://developers.couchdrop.io/administration/managing-users#create-or-modify-a-user) from your own systems.

For ongoing identity lifecycle management, use SCIM rather than manually creating users.

***

## Frequently asked questions

<details>

<summary>Can different SFTP users access different folders?</summary>

Yes. Each user can be configured with access to specific folders and storage locations.

</details>

<details>

<summary>Can I use SSH keys instead of passwords?</summary>

Yes. Couchdrop supports SSH public key authentication for SFTP users.

</details>

<details>

<summary>Can I use my own storage?</summary>

Yes. Most Couchdrop customers connect their existing cloud or on-premises storage rather than using Couchdrop hosted storage exclusively.

</details>

<details>

<summary>Can I bulk create SFTP users?</summary>

Yes. Couchdrop supports bulk import via CSV, SCIM provisioning, and automated user creation via the [Couchdrop Management API](https://developers.couchdrop.io).&#x20;

</details>


# How to connect via SFTP

Learn how to connect to Couchdrop with SFTP

{% hint style="warning" %}

#### Requirements

To connect to Couchdrop using SFTP, you will need:

* An SFTP username and password, or username and SSH key
* Your Couchdrop hostname
* An SFTP client, application, or system that supports SFTP

If you do not have a user yet, see [**Create an SFTP User**](/managed-file-transfer/sftp/create-sftp-users).&#x20;
{% endhint %}

### Connection details

Couchdrop uses the default ports for SFTP and a unique hostname for your tenant.&#x20;

| Parameter      | Value                      |
| -------------- | -------------------------- |
| Hostname       | \<yourdomain>.couchdrop.io |
| Port           | 22                         |
| Authentication | Password or SSH key        |

### How to connect to Couchdrop via SFTP

1. Open your SFTP client or application.
2. Enter your Couchdrop hostname.
3. Use port **22**.
4. Enter your SFTP username.
5. Authenticate with your password or SSH key.
6. Connect.

If your client requires SSH host key verification, use the host key details shown below.

{% hint style="info" %}

#### Host key authentication

Couchdrop provides a public host key that can be used to verify the authenticity of the endpoint you are connecting to. This key is static and we do not expect it to change in the future.

**The host key for all Couchdrop endpoints**

```
AAAAB3NzaC1yc2EAAAADAQABAAAAgQCFzDO6AiZhK4ks4Bz/VBysjB3fpExCfOmy2EuI2gXJDYgom4nvZK4eEEgHRrkNoRUww4RJ7CTRKKXWodP7OthQw2AfppgBfR8dUK3zYdp/IClqTZ0+yxk72lLV9k8HwbtalOEzlJNc6AKlAkDi+WtG8RRZbJeaQZf3pe0k6oa7yQ==
```

{% endhint %}

### Frequently asked questions

<details>

<summary>What port does Couchdrop SFTP use?</summary>

Couchdrop SFTP uses port **22**.

</details>

### Common issues and errors

<details>

<summary>Connection refused or timed out</summary>

Confirm that your network allows outbound SFTP connections over port 22 and that you are connecting to the correct Couchdrop hostname.

</details>


# Host key authentication

Learn about host key authentication

Couchdrop provides a public host key that can be used to verify the authenticity of the endpoint you are connecting to. This key is static and we do not expect it to change in the future.&#x20;

**The host key for all Couchdrop endpoints**

```
AAAAB3NzaC1yc2EAAAADAQABAAAAgQCFzDO6AiZhK4ks4Bz/VBysjB3fpExCfOmy2EuI2gXJDYgom4nvZK4eEEgHRrkNoRUww4RJ7CTRKKXWodP7OthQw2AfppgBfR8dUK3zYdp/IClqTZ0+yxk72lLV9k8HwbtalOEzlJNc6AKlAkDi+WtG8RRZbJeaQZf3pe0k6oa7yQ==
```


# Connect to external SFTP servers and endpoints

Learn how to connect to an external SFTP endpoint using Couchdrop

## Introduction

Couchdrop can connect directly to an external SFTP server, allowing you to transfer files between that server and other systems connected to Couchdrop.

Once connected, the external SFTP server will appear as a [**Virtual Folder**](/storage/file-browser) in Couchdrop. You can browse and transfer files directly, use the connection with Automations, or combine it with inbound transfer methods such as Mailboxes, Upload Links, AS2, webhooks, and the S3 Gateway.

This is useful when a partner, vendor, customer, or legacy system already provides an SFTP server and you need to incorporate it into your file transfer workflows without changing the external system.

## How it works

Similar to all connections in Couchdrop - all external SFTP connections appear as folders in Couchdrop. Couchdrop can transfer to and from the external SFTP server directly or through automations.

{% hint style="success" %}
External SFTP providers appear as Virtual Folders in Couchdrop. We recommend learning about Virtual Folders [here](/storage/file-browser)
{% endhint %}

## Creating an outbound SFTP connection

{% hint style="warning" %}

#### Before you start

To connect to an external SFTP server with Couchdrop you will need:

* The hostname or IP address and port number for the external server
* A username and password for the external server or a private key
  {% endhint %}

{% stepper %}
{% step %}

### Add a new connection

In Couchdrop, click **+ Create → Connect to Partners/Providers**. Alternatively, select **+ Add Connection** from the **Connections** tab, then choose **SFTP Server**.
{% endstep %}

{% step %}

### Enter your outbound SFTP credentials

Enter the connection details for the SFTP endpoint, including the hostname, port, username, authentication details, and subfolder.

{% hint style="info" %}
Most SFTP providers use **port 22.** If you are unsure - try this port first and if it fails chat with your provider.
{% endhint %}
{% endstep %}

{% step %}

### Test and save the connection

Click **Test Connection** to confirm Couchdrop can connect successfully, then click **Save Settings**.
{% endstep %}
{% endstepper %}

## Settings

After you have created an outbound SFTP connection, you can configure additional folder-level settings in the same way as any other Virtual Folder in Couchdrop.

Navigate to **Browser**, hover over the row for the SFTP connection, click the **three-dot menu** at the far right of the row, then select **Manage Folder**.

### Permissions

Use folder permissions to restrict access to the SFTP connection to specific Couchdrop users or groups.

| Setting                                 | Description                                                                                                       |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Enable Permissions**                  | Enables advanced permissions for the folder. When enabled, access can be restricted to a subset of users.         |
| **Add a shortcut in users home folder** | Makes the folder appear automatically in the user's home folder for easier access. Files are not copied or moved. |
| **Add Permission**                      | Opens the **Configure Permissions** window, where you can assign permissions to a user or group.                  |

When adding a permission, the following options are available:

| Setting                           | Options                                                                                                                                                    |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Which user or group?**          | Select the user or group that the permission applies to.                                                                                                   |
| **What permissions are allowed?** | **List Contents**, **Get Properties**, **Delete**, **Upload**, **Download**, **Share**, **Create Inbox**, **Manage Permissions**, **Manage Notifications** |

{% hint style="warning" %}
**Note:** If no users are configured, all access to the folder will be denied.
{% endhint %}

### Notifications

Notifications can alert specified recipients or webhook endpoints when activity occurs within the SFTP connection.

| Notification type         | Setting                  | Options / Description                                         |
| ------------------------- | ------------------------ | ------------------------------------------------------------- |
| **Email Notifications**   | **Send email on**        | **Upload**, **Download**, **Failure**                         |
|                           | **Email Address**        | Enter the email address that should receive notifications.    |
| **Webhook Notifications** | **Send notification on** | **Upload**, **Download**, **Failure**                         |
|                           | **Webhook URI**          | Enter the webhook endpoint that should receive notifications. |

### Folder Encryption

PGP Folder Encryption and Decryption can automatically encrypt or decrypt files when they are transferred through the folder. Encryption keys are configured from the **Encryption Keys** tab in the admin section.

| Setting                       | Description                                              |
| ----------------------------- | -------------------------------------------------------- |
| **Encrypt files on Upload**   | Encrypts files when they are uploaded to the folder.     |
| **Public keys**               | Select the public key used to encrypt uploaded files.    |
| **Decrypt files on Download** | Decrypts files when they are downloaded from the folder. |
| **Private keys**              | Select the private key used to decrypt downloaded files. |

### Approval

Approval settings can require files or shared links associated with the SFTP connection to be reviewed before they become available.

| Setting                               | Description                                                                       |
| ------------------------------------- | --------------------------------------------------------------------------------- |
| **Require approval for shared links** | Users creating shared links will require approval before the link becomes active. |
| **Require approval for uploads**      | Files uploaded to the folder will be staged for approval.                         |

### Transfer Shield

Transfer Shield lets you define the type of content expected within the folder and block or surface files for approval when they do not match those expectations.

| Setting                           | Description                                                                             |
| --------------------------------- | --------------------------------------------------------------------------------------- |
| **Enable Content Classification** | Files uploaded into the folder will be classified by Couchdrop's DLP engine.            |
| **Block unclassified files**      | Denies a file if Couchdrop cannot classify it for any reason.                           |
| **Content Rule Groups**           | Select the content rule group that should be applied to files uploaded into the folder. |

## Using SFTP connections in Couchdrop workflows

Once connected, an external SFTP server can be used as a source or destination alongside Couchdrop’s other transfer methods and Automations.

<table data-search="false"><thead><tr><th width="250.515625">Feature</th><th>How it works with an external SFTP connection</th></tr></thead><tbody><tr><td><strong>Inbound SFTP</strong></td><td>Receive files over Couchdrop SFTP and transfer them to the external SFTP server.</td></tr><tr><td><strong>Mailboxes</strong></td><td>Receive email attachments into Couchdrop and deliver them to the external SFTP server.</td></tr><tr><td><strong>Upload Links</strong></td><td>Collect files through an Upload Link and send them to the external SFTP server.</td></tr><tr><td><strong>Webhooks (HTTPS)</strong></td><td>Receive files through an inbound webhook and route them to the external SFTP server.</td></tr><tr><td><strong>AS2</strong></td><td>Receive files over AS2 and transfer them to the external SFTP server.</td></tr><tr><td><strong>S3 Gateway</strong></td><td>Receive files through Couchdrop’s S3-compatible interface and transfer them to the external SFTP server.</td></tr><tr><td><strong>Automations</strong></td><td>Move files to or from the external SFTP server as part of an scheduled or event-driven workflow automation.</td></tr></tbody></table>

## Frequently Asked Questions

<details>

<summary>Do you support RSA key based authentication</summary>

Yes - Couchdrop can use key based authentication to connect to external SFTP providers. You can upload a private key when configuring the connection.

</details>

<details>

<summary>Can we schedule a copy from one SFTP server to the cloud</summary>

Yes - this is Couchdrop's bread and butter. You can configure a connection to an external SFTP server - select a folder and then automate a transfer using a Scheduled Transfer Automation that polls the SFTP server for new files and then moves them.

</details>

<details>

<summary>Can Couchdrop provide Static IPs that we can whitelist</summary>

Yes - [Contact our support team](/support/technical-support) to request static IPs.

</details>

<details>

<summary>Do you support legacy ciphers and keys</summary>

Yes - we can support some restricted legacy ciphers. [Contact our team](broken://pages/8w72LN9IbLUy6081CIId) if you run into connectivity issues.

</details>

<details>

<summary>Are SFTP connections encrypted with Couchdrop</summary>

Absolutely - SFTP as a protocol is very secure and uses asymmetric SSL encryption.

</details>

## Common issues and errors

<details>

<summary>Access denied</summary>

Access denied when browsing, uploading or downloading files generally means that you do not have adequate permissions with the external platform. Contact the external providers support team to make sure you have permissions on their service.

</details>

<details>

<summary>Timeout</summary>

A timeout normally occurs when there a firewall preventing access. Check with the external provider and [talk to our support team](/support/technical-support) about static IPs for the external vendor to whitelist.

</details>


# FTP and FTPS

Couchdrop supports FTP and FTPS for organizations that need to keep legacy file transfer workflows running while moving away from legacy FTP infrastructure. Receive and send files over FTP or FTPS, connect those transfers to modern cloud storage, and replace your FTP server without forcing every partner or system to change at once.

You can use Couchdrop to:

* Receive files from partners and systems that still connect over FTP or FTPS
* Send files to destinations that require FTP or FTPS
* Modernize or replace legacy FTP infrastructure while maintaining compatibility with existing workflows

<a href="https://www.couchdrop.io/register" class="button primary medium">Start your free trial</a> <a href="https://www.couchdrop.io/get-a-demo" class="button secondary medium">Book a demo</a>

***

## Get Started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Inbound FTP</td><td>Learn about connecting to Couchdrop via FTP</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F4Ixn8CuyDuv05h8WKx9k%2FInbound%20SFTP-no-border.png?alt=media&amp;token=4445a52a-f5df-4462-ad2a-4966d9e2662b">Inbound SFTP-no-border.png</a></td><td><a href="/managed-file-transfer/ftp-and-ftps/inbound-ftp-ftps">Inbound FTP/FTPS</a></td></tr><tr><td>Outbound FTP</td><td>Learn about connecting to external FTP endpoints</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FXPkSY0qSx0z0eqRX8PPt%2FOutbound%20SFTP.png?alt=media&amp;token=a25229f9-c2af-4132-8de7-18d568f80855">Outbound SFTP.png</a></td><td><a href="/managed-file-transfer/ftp-and-ftps/connect-to-external-ftp-ftps-servers-and-endpoints">Connect to external FTP/FTPS servers and endpoints</a></td></tr><tr><td>Connect Storage</td><td>Learn how to use existing cloud storage for FTP</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FtiMCaY75ad3p5T1S4oAA%2FCouchdrop-storage-grid.png?alt=media&amp;token=8f1ee3ae-474a-479f-832f-2c4ac42f3efd">Couchdrop-storage-grid.png</a></td><td><a href="/storage/overview">Overview</a></td></tr><tr><td>Create FTP Users</td><td>Create external FTP Users with root directory isolation</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FkLEopZ5gfFh702sbciQx%2FCouchdrop-create-sftp-users-2.png?alt=media&amp;token=1612fadb-a8d7-4b8a-916b-5475479f6d4a">Couchdrop-create-sftp-users-2.png</a></td><td><a href="/managed-file-transfer/ftp-and-ftps/create-ftp-ftps-users">Create FTP/FTPS Users</a></td></tr><tr><td>Connect Platforms</td><td>Learn about integrating business platforms</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FArYhVXIRd16IT07hBj0x%2FCouchdrop-platform-grid.png?alt=media&amp;token=0ef63fd1-ce0b-410d-9d9d-97298c00d9f6">Couchdrop-platform-grid.png</a></td><td><a href="/integrations/overview">Overview</a></td></tr><tr><td>Automate Transfers</td><td>Learn how to automate FTP workflows</td><td><a href="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FNxlaZ48kY8eII2bcqrGg%2FCouchdrop-automate-docs.png?alt=media&amp;token=3dcad7d1-58db-47d0-b1ce-ba2815edd264">Couchdrop-automate-docs.png</a></td><td><a href="/automations/overview">Overview</a></td></tr></tbody></table>


# Inbound FTP/FTPS

Learn about Inbound FTP and FTPs with Couchdrop

Inbound FTP/FTPS allows external users to connect to your Couchdrop environment using the FTP/S protocol. For inbound connections, Couchdrop acts as an alternative to traditional FTP servers.&#x20;

{% hint style="info" %}
Inbound FTP is supported by default in Couchdrop accounts, but you will need to [configure FTP users](/managed-file-transfer/ftp-and-ftps/create-ftp-ftps-users) for access.​
{% endhint %}

## Setting up inbound FTP/FTPS

Configuring inbound FTP/FTPS requires these steps:&#x20;

{% stepper %}
{% step %}

### Configure storage

Inbound FTP connections require a storage endpoint. For Couchdrop, this endpoint can be Couchdrop [hosted storage](/storage/hosted-storage), but most users choose to use a directory in any compatible [storage integration](/storage/integrations).

See [How storage integrations work](/storage/overview) for the setup process.&#x20;
{% endstep %}

{% step %}

### Create FTP/S users

In order to interact with your storage via FTP, you must create FTP/S users.  Users will be limited to the home directory that you set during FTP user creation.&#x20;

These users can then [use an FTP client](/managed-file-transfer/ftp-and-ftps/how-to-connect-via-ftp-ftps) to log in to your Couchdrop environment, or you can provide them with permission to use the Couchdrop web portal that can take the place of a traditional client. &#x20;

See [Creating FTP/S users](/managed-file-transfer/ftp-and-ftps/create-ftp-ftps-users) for the setup process.&#x20;
{% endstep %}

{% step %}

### Configure automated FTP transfers (Optional)

You can automate FTP file transfers and file processing with automations. These automations can be triggered on a schedule or when a specific event happens, such as when a file is uploaded or downloaded from the FTP endpoint.&#x20;

See [Automations Overview](/automations/overview) for more information about automated file transfers.&#x20;
{% endstep %}
{% endstepper %}

## How to connect via FTP/FTPS

Once you create an endpoint for inbound FTP, connecting to Couchdrop via an FTP client is simple and supported by all major FTP clients.&#x20;

{% hint style="warning" %}

#### Before you start

To connect via FTP/FTPs, you will need:&#x20;

* A username & password *OR* A username & key
* The hostname for your Couchdrop POP.
* An FTP client or platform/software that supports FTP.&#x20;
  {% endhint %}

These details will need to be entered into the FTP client in the appropriate fields.&#x20;

{% hint style="info" %}
Your hostname will look like **\<my domain>.couchdrop.io** and can be found at the top of the dashboard in the Couchdrop web app.
{% endhint %}

## Recommended connection settings for FTP clients

FTP has a few options around networking and security. Couchdrop attempts to support as many clients as feasible, but these are the recommendations.&#x20;

| Option               | Recommended Value          | Description                                                                                                                                                                                                                           |
| -------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TLS auto negotiation | ON                         | <p>FTP by default is insecure. It is unencrypted and very easy to break. FTPs use an auto negotiation process that occurs during authentication that uses encrypted channels. <br><br>We recommended always enabling this option.</p> |
| Port                 | 20                         | Couchdrop uses the default port for FTP access                                                                                                                                                                                        |
| Passive Mode         | ON                         | Passive FTP mode forces the client to negotiate data channels with the server. This alleviates most of the issues with NAT and firewalls that do not support active channel negotiation.                                              |
| Hostname             | \<yourdomain>.couchdrop.io | Couchdrop provides a domain name for each tenant. You can find this under at the top of the dashboard in the Couchdrop web app.                                                                                                       |


# Create FTP/FTPS Users

Learn how to create external users for Inbound FTP

To access Couchdrop over FTP, each person, partner, or system needs a Couchdrop FTP user account.

FTP users are separate from Couchdrop Administrators and can be given access to a specific folder location. This lets you provide FTP access without exposing administrative access to your Couchdrop tenant.

{% hint style="danger" %}
We do not recommend using your owner account as they have elevated permissions to Couchdrop. General FTP users with limited access can be shared with external systems and providers.&#x20;
{% endhint %}

## How to create a new FTP user

Creating a new Inbound FTP/S user is done in the management dashboard from Couchdrop.

{% hint style="warning" %}

#### Before you start

To create a new FTP/S user, you will need:

* A username and password - the username needs to be unique in Couchdrop.
* A folder location where that user will be isolated to.&#x20;
* Permissions to create new external users in Couchdrop
  {% endhint %}

{% stepper %}
{% step %}

### Create an FTP user

In Couchdrop, select **SFTP & FTPs Users**, then click **Create New**. Select **FTP User** and continue.

If you do not see this option, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure the user

Configure the new user by setting a **username**, selecting their [**home/root directory**](/administration/user-and-group-management/root-directory), and choosing an authentication method.

You can use an **autogenerated password** or set a **custom password.**

If [**Transfer Shield**](#transfer-shield) is enabled, you can select a **content rule group** to surface or block unexpected, non-compliant, or malicious files uploaded by this user.
{% endstep %}

{% step %}

### Save your new FTP user credentials

Once the user has been created, Couchdrop will display the user credentials and provide the option to download credentials or share them directly from the platform. Sharing from Couchdrop is done via email from <noreply@couchdrop.io>.
{% endstep %}
{% endstepper %}

## User Settings

After creating a user, you can configure additional permissions, access and security controls, and Transfer Shield DLP from the user's settings.

### General User Settings

<table><thead><tr><th width="268.83984375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Email Address</strong></td><td>Set or update the email address associated with the user. Optional.</td></tr><tr><td><strong>Password</strong></td><td>Set or update the user's password, with optional user must creawte password at next sign-in.</td></tr><tr><td><strong>Set the home/root directory for this user</strong></td><td>Change the user's home/root directory.</td></tr><tr><td><strong>Global filesystem permissions for this user</strong></td><td>Change global permission level between Read-only, Write-only, and Read/Write access. </td></tr><tr><td><strong>Delete allowed</strong></td><td>Allow the user to delete files</td></tr><tr><td><strong>Delete User</strong></td><td>Permanently remove the user</td></tr></tbody></table>

### Access Controls

<table><thead><tr><th width="272.5">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Features and Services</strong></td><td>Add or restrict feature usage such as SFTP, Upload portals, and the <a href="/storage/file-browser">web portal</a>. </td></tr><tr><td><strong>Network ACLs</strong></td><td>Restrict a user so they can only connect from approved IP addresses or networks.</td></tr></tbody></table>

### Security Settings

<table><thead><tr><th width="273.9140625">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Expiry</strong></td><td>Controls whether the user expires. Select <strong>Never Expire</strong> or configure the user to expire after a specified period.</td></tr><tr><td><strong>Transfer Shield</strong></td><td>Define what type of content you expect to upload with this user. Block or surface files for approval with content that does not match what you expect.</td></tr><tr><td><strong>Delete allowed</strong></td><td>Allows the user to delete files within locations they can access.</td></tr></tbody></table>

### Advanced Options

<table><thead><tr><th width="278.74609375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Notes</strong></td><td>Create notes about the user</td></tr><tr><td><strong>User active</strong></td><td>When unchecked, the user loses access to the platform until reactivated. </td></tr></tbody></table>

***

## How to bulk create FTP users

If you need to provision multiple FTP users, you do not need to create each user individually.

Couchdrop supports bulk and automated user provisioning for larger deployments. Depending on your environment, you can use:

* **Bulk import** - [create multiple users in one operation](/administration/user-and-group-management/creating-users#bulk-creating-users).
* **SCIM provisioning** - automatically provision and manage users from a [supported identity provider](/administration/scim-and-sso).
* **API** - automate user provisioning using the [Couchdrop API](https://developers.couchdrop.io/administration/managing-users#create-or-modify-a-user) from your own systems.

For ongoing identity lifecycle management, use SCIM rather than manually creating users.

***

## Frequently asked questions

<details>

<summary>Can different FTP users access different folders?</summary>

Yes. Each user can be configured with access to specific folders and storage locations.

</details>

<details>

<summary>Can I use my own storage?</summary>

Yes. Most Couchdrop customers connect their existing cloud or on-premises storage rather than using Couchdrop hosted storage exclusively.

</details>

<details>

<summary>Can I bulk create FTP users?</summary>

Yes. Couchdrop supports bulk import via CSV, SCIM provisioning, and automated user creation via the [Couchdrop Management API](https://developers.couchdrop.io).&#x20;

</details>


# How to connect via FTP/FTPs

Learn how to connect to Couchdrop with FTP

Connecting to Couchdrop via an FTP client is simple and supported by all major FTP clients.&#x20;

{% hint style="success" %}

#### Requirements

To connect via FTP/FTPs, you will need:&#x20;

* A username & password *OR* A username & key
* The hostname for your Couchdrop POP.
* An FTP client or platform/software that supports FTP.&#x20;
  {% endhint %}

These details will need to be entered into the FTP client in the appropriate fields.&#x20;

{% hint style="info" %}
Your hostname will look like **\<my domain>.couchdrop.io** and can be found at the top of the dashboard in the Couchdrop web app.
{% endhint %}

## FTP Connection Options

FTP has a few options around networking and security. Couchdrop attempts to support as many clients as feasible, but these are the recommendations.&#x20;

| Option               | Recommended Value          | Description                                                                                                                                                                                                                           |
| -------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TLS auto negotiation | ON                         | <p>FTP by default is insecure. It is unencrypted and very easy to break. FTPs use an auto negotiation process that occurs during authentication that uses encrypted channels. <br><br>We recommended always enabling this option.</p> |
| Port                 | 20                         | Couchdrop uses the default port for FTP access                                                                                                                                                                                        |
| Passive Mode         | ON                         | Passive FTP mode forces the client to negotiate data channels with the server. This alleviates most of the issues with NAT and firewalls that do not support active channel negotiation.                                              |
| Hostname             | \<yourdomain>.couchdrop.io | Couchdrop provides a domain name for each tenant. You can find this under at the top of the dashboard in the Couchdrop web app.                                                                                                       |


# Enabling FTP/FTPS

Learn about enabling FTP access to Couchdrop

Compared to SFTP, FTP is comparatively buggy and insecure, so we do not recommend using it where there are other options. However, as there are not always other options, you can still choose to enable FTP and FTPS at the user level.&#x20;

{% hint style="warning" %}
Unencrypted FTP is disabled by default. Users will need to be authorised to access Couchdrop via FTP
{% endhint %}

FTP/S will be enabled if you choose to create an FTPs user. To allow FTP capabilities after user creation, you will need to enable FTP/S for the user.&#x20;

## Enabling FTP/S

To enable FTP/FTPS access, you must be an administrator or the owner in Couchdrop.&#x20;

* Log in to Couchdrop's web app and go to the Admin Console
* In user management, choose the user you want to update and click to Edit.&#x20;
* Go to Access controls and choose **Allow FTP/FTPs**

This setting will activate immediately.&#x20;


# Connect to external FTP/FTPS servers and endpoints

Learn how to connect Couchdrop to an external FTP/S endpoint or server folder

Couchdrop can be connected to any external FTP/s in a few simple steps. When connected, you can upload and download files with an external FTP/s provider from Couchdrop.&#x20;

{% hint style="warning" %}
FTPs is a different protocol from SFTP. If you are unsure if you need FTP, check with your provider, as you may need to use the more common [SFTP connector](/managed-file-transfer/sftp/connect-to-external-sftp-servers-and-endpoints).
{% endhint %}

## How it works

Similar to all connections in Couchdrop, all external FTP connections appear as [virtual folders](/storage/file-browser) in Couchdrop. Once connected, Couchdrop can transfer to and from the external FTP server directly or through automations.&#x20;

You can also take advantage of Couchdrop’s automation features and inbound transfer methods, such as mailboxes and upload links, to streamline and simplify data transfers with external FTP/s servers.

## Connecting to an external FTP/S server

To connect to an FTP/S server, you need to add the details of the endpoint and authenticate the connection in Couchdrop.&#x20;

{% hint style="warning" %}

#### Before you start

To connect to an external FTP server with Couchdrop, you will need:

* The hostname or IP address and port number for the external server
* A username and password for the external server.
* A unique folder name in Couchdrop
  {% endhint %}

{% stepper %}
{% step %}

### Create a new connection

In Couchdrop, click **+ Create → Connect to Partners/Providers**, or select **+ Add Connection** from the **Integrations** tab.
{% endstep %}

{% step %}

### Select FTP/s Server

Select **FTP/s Server** from the list of available connections.
{% endstep %}

{% step %}

### Configure the connection

Enter the required connection details for the external FTP/s server.
{% endstep %}

{% step %}

### Test and save the connection

Test the connection, choose a subfolder from the folder selector, then save the integration.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Most FTP providers use P**ort 21.** If this doesn't work, check with your provider for the port number.
{% endhint %}

## Frequently asked questions

<details>

<summary>Can we schedule a copy from one FTP server to the cloud?</summary>

Yes - this is Couchdrop's bread and butter. You can configure a connection to an external FTP server - select a folder and then automate a transfer using a Scheduled Transfer Automation that polls the FTP server for new files and then moves them. &#x20;

</details>

<details>

<summary>Can Couchdrop provide Static IPs that we can whitelist?</summary>

Yes - Contact our support team to request [static IPs](/security-and-governance/static-ips).&#x20;

</details>

<details>

<summary>Do you support TLS?</summary>

Yes - Connecting via TLS is enabled by default with external connections

</details>

<details>

<summary>Do you support implicit SSL for external FTP providers?</summary>

Not currently - Implicit SSL is not as secure as FTP via TLS. If this is a deal breaker for you - reach out to <support@couchdrop.io> and we can chat about options and workarounds

</details>

## Common issues and errors

<details>

<summary>Access denied</summary>

Access denied when browsing, uploading or downloading files generally means that you do not have adequate permissions with the external platform. Contact the external provider's support team to make sure you have permissions on their service.&#x20;

</details>

<details>

<summary>Timeout</summary>

A timeout normally occurs when there a firewall preventing access. Check with the external provider and talk to our support team about static IPs for the external vendor to whitelist.&#x20;

</details>


# Mailboxes

Receive files via email with Couchdrop Mailboxes.

## Introduction

Mailboxes in Couchdrop provide a way to receive files by email without manually downloading and moving attachments.

Each Mailbox has a dedicated email address. Files sent to that address are delivered directly to your selected storage location. This supports workflows such as email-to-SFTP and can also trigger Automations after files arrive.

You can optionally restrict who can send files using **Allowed Senders**.

## How to create a Mailbox <a href="#how-to-create-the-inbox" id="how-to-create-the-inbox"></a>

{% hint style="warning" %}

### Before you start <a href="#requirements" id="requirements"></a>

To setup an Mailbox, you will need the following:

* Access to Couchdrop, with the appropriate user rights. Talk to your admin to get these.
* A folder location for the Mailbox to connect to
  {% endhint %}

{% stepper %}
{% step %}

### Create a new Mailbox

In Couchdrop, select **Mailboxes**, then click **Create New**. Enter a name for the Mailbox.

If you do not see this option, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure your Mailbox

Select where Couchdrop will store received files by choosing an existing folder or configuring a cloud storage connection.

Optionally, configure **Allowed Senders** to restrict who can send files to the Mailbox, and set an expiry if required.
{% endstep %}

{% step %}

### Save and use your Mailbox

Save the Mailbox configuration. Your new Mailbox will appear in Couchdrop with an email address you can provide to anyone who needs to deliver files.

Attachments sent to this address will be saved to the storage location you selected.
{% endstep %}
{% endstepper %}

## Settings

Additional Mailbox settings can be configured during creation or after the Mailbox has been created.

### General mailbox settings

Configure how the Mailbox handles incoming emails, access, expiry, and post-upload actions.

<table><thead><tr><th width="350.96875">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Upload email body contents as <code>.txt</code> file</strong></td><td>Saves the content of the email body as a separate <code>.txt</code> file in addition to any attached files.</td></tr><tr><td><strong>Mailbox allowed senders</strong></td><td>Restricts uploads to specified email addresses. Supports comma-separated addresses and wildcards.</td></tr><tr><td><strong>Expiry</strong></td><td>Configure the Mailbox to <strong>Never Expire</strong> or expire after a specified amount of time.</td></tr><tr><td><strong>Mailbox Managers</strong></td><td>Select which Couchdrop users and groups can manage the Mailbox.</td></tr><tr><td><strong>Actions</strong></td><td>Build workflows that perform operations after a file attachment has been uploaded successfully.</td></tr></tbody></table>

### Notifications

Configure email notifications for successful or failed uploads, including optional custom recipients.

<table><thead><tr><th width="275.79296875">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Success notifications</strong></td><td>Send an email when a Mailbox upload succeeds.</td></tr><tr><td><strong>Failure notifications</strong></td><td>Send an email when a Mailbox upload fails.</td></tr><tr><td><strong>Custom notification recipients</strong></td><td>Send Mailbox notifications to one or more custom email addresses using a comma-separated list.</td></tr></tbody></table>

### Transfer Shield

Configure Transfer Shield DLP and content classification rules for files uploaded through the Mailbox.

<table><thead><tr><th width="268.86328125">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Enable Content Classification</strong></td><td>Classifies files uploaded to the Mailbox using <a href="/security-and-governance/transfer-shield-dlp">Transfer Shield</a>.</td></tr><tr><td><strong>Block unclassified files</strong></td><td>Denies files if Transfer Shield cannot classify them for any reason.</td></tr><tr><td><strong>Content Rule Groups</strong></td><td>Apply a selected content rule group to files uploaded through the Mailbox.</td></tr></tbody></table>

## Feature Support

Mailboxes support the following Couchdrop capabilities:

<table><thead><tr><th width="178.49609375">Feature</th><th>Support</th></tr></thead><tbody><tr><td><strong>API Creation</strong></td><td>Create Mailboxes through the Couchdrop API.</td></tr><tr><td><strong>Custom Domains</strong></td><td>Use Mailboxes with configured custom domains.</td></tr><tr><td><strong>Auditing</strong></td><td>Track Mailbox activity through Couchdrop auditing.</td></tr></tbody></table>

## Using Mailboxes in workflows

Once configured, a Mailbox can receive email attachments into Couchdrop and pass those files into other Couchdrop transfer and workflow features.

| Workflow                   | How it works with a Mailbox                                                                                                       |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Email to SFTP**          | Receive email attachments through a Mailbox and make them available over Couchdrop SFTP or transfer them to a remote SFTP server. |
| **Email to Cloud Storage** | Save attachments received through a Mailbox directly into the connected cloud storage folder selected for that Mailbox.           |
| **Email to Automations**   | Use files received through a Mailbox as the input for Couchdrop Automations and event-driven workflows.                           |
| **Email to Shared Links**  | Receive attachments through a Mailbox, then make those files available through a Couchdrop Shared Link for external access.       |

## Frequently asked questions

<details>

<summary>Is there a size limit with files?</summary>

Yes - most email clients will not allow files larger than 25Mb. While we do not have a set limit - clients and most servers will not allow files greater than this.

</details>

<details>

<summary>Are Mailboxes HIPAA compliant?</summary>

No - email is not suitable for sensitive data - expecially PHI.

</details>

<details>

<summary>Can I create Mailboxes through the API?</summary>

Yes. Mailboxes can be created through the Couchdrop API.

</details>

<details>

<summary>Do Mailboxes support custom domains?</summary>

Yes. Mailboxes can be used with configured custom domains.

</details>

<details>

<summary>Is Mailbox activity logged and auditable?</summary>

Yes. All Mailbox activity is recorded and available through Couchdrop audit logs.

</details>


# Webhooks

Couchdrop supports webhooks for receiving files from external applications and sending data into other systems and integration platforms.

You can use Couchdrop webhooks to:

* Receive files from external applications over HTTPS
* Send data outbound through supported integrations
* Send notifications and events to external monitoring or SIEM platforms

<a href="https://www.couchdrop.io/register" class="button primary medium">Start your free trial</a> <a href="https://www.couchdrop.io/get-a-demo" class="button secondary medium">Book a demo</a>

***

## Get started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4>Inbound Webhooks</h4></td><td>Receive files into Couchdrop over HTTPS</td><td><a href="/managed-file-transfer/webhooks/inbound-webhooks">Inbound Webhooks</a></td></tr><tr><td><h4>Outbound Webhooks</h4></td><td>Send data through supported  integrations</td><td><a href="/managed-file-transfer/webhooks/outbound-webhooks">Outbound Webhooks</a></td></tr></tbody></table>

***


# Inbound Webhooks

Inbound https webhooks are a flexible and easy way to ingest data from any system that can use HTTPS.

## Introduction

Inbound Webhooks in Couchdrop let applications and systems upload data directly into your storage over HTTPS.

Each Inbound Webhook provides an HTTPS endpoint that accepts `POST` requests and saves the uploaded content to the folder you configure. This is useful for applications, scripts, and automated systems that need to deliver files or data without using SFTP or another file transfer client.

Inbound Webhooks can receive binary files, JSON, or raw request bodies. You can also configure a bearer token to authenticate incoming requests.

## How to create an Inbound Webhook

{% hint style="warning" %}

#### Before you start

To create an Inbound Webhook, you will need:

* Access to Couchdrop with the appropriate permissions
* A folder or storage location for received data
* An understanding of the data your application will send
* An authentication token, if you want to authenticate requests
  {% endhint %}

{% stepper %}
{% step %}

### Create a new Inbound Webhook

In Couchdrop, select **Webhooks**, then click **Create New**.

If you do not see this option, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure the Webhook

Enter a name for the Webhook so you can identify the endpoint.

Select the folder where received files will be stored. You can choose an existing folder or configure a new cloud storage connection.

Click **Save and Continue**.
{% endstep %}

{% step %}

### Configure authentication

Optionally, configure an authentication token for the Webhook.

Applications sending data to the endpoint can include this token as a bearer token in the `Authorization` header.

Click **Save and Continue** to finish the configuration.
{% endstep %}
{% endstepper %}

## How to upload data to an Inbound Webhook

Once created, the Inbound Webhook can receive HTTPS `POST` requests using its Webhook URL.

### Upload a file with cURL

Use multipart form data to upload a file:

```bash
curl -v \
  -F content=@CHRIS.txt \
  -H "Authorization: Bearer [token]" \
  https://[yourdomain].couchdrop.io/webhook/[webhook_id]
```

Replace:

* `[token]` with the authentication token configured for the Webhook.
* `[yourdomain]` with the ID of your Inbound Webhook.
* `[webhook_id]` with the ID of your Inbound Webhook.

### Upload a binary stream with Python

You can send a file directly in the request body and specify its filename using the `filename` header:

```python
import requests

binary_file_path = "/Users/donald/testing/trophy.jpg"
webhook_id = "[webhook_id]"
token = "[token]"
domain = "[yourdomain]"

with open(binary_file_path, "rb") as f:
    data = f.read()

    res = requests.post(
        url="https://" + domain + ".couchdrop.io/webhook/" + webhook_id,
        data=data,
        headers={
            "filename": "trophy_webhook.jpg",
            "Content-Type": "application/octet-stream",
            "Authorization": "Bearer " + token
        }
    )
```

In this example:

* `filename` defines the name Couchdrop uses for the uploaded file.
* `Content-Type: application/octet-stream` identifies the request body as binary data.
* `Authorization` supplies the configured bearer token.

#### Upload JSON to a file

JSON can also be sent directly in the request body:

```bash
curl \
  -H "Filename: json_test_file.json" \
  -H "Content-Type: application/json" \
  -X POST \
  https://[yourdomain].couchdrop.io/webhook/[webhook_id] \
  -d '{"id":"dasflk34masd","event":"purchase","customer":"testaccount"}'
```

The `Filename` header tells Couchdrop what filename to use when saving the JSON content.

## Settings

Additional Inbound Webhook settings can be configured during creation or after the Webhook has been created.

### General webhook settings

Configure how the Webhook is identified, where uploaded files are stored, and which partner or vendor it belongs to.

| Setting                          | Description                                                                                                                   |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Connecting Partner or Vendor** | Associate the Webhook with an existing or new partner or vendor for organization. This does not affect how data is processed. |
| **Webhook name**                 | Sets the name used to identify the Webhook in Couchdrop.                                                                      |
| **Upload location**              | Selects the folder or storage location where files uploaded through the Webhook will be saved.                                |

### Expiry and notifications

Configure how long the Webhook remains active and when Couchdrop sends email notifications.

| Setting                            | Description                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------- |
| **Expiry**                         | Set the Webhook to **Never Expire** or expire after a specified amount of time.        |
| **Success notifications**          | Send an email when an upload through the Webhook succeeds.                             |
| **Failure notifications**          | Send an email when an upload through the Webhook fails.                                |
| **Custom notification recipients** | Send notifications to one or more custom email addresses using a comma-separated list. |

### Access and Security

Configure authentication and restrict which networks can send data to the Webhook.

| Setting                | Description                                                                                    |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| **Bearer token**       | Optionally configure or generate a bearer token that clients must provide when uploading data. |
| **Allowed Sender IPs** | Restrict requests to approved IP addresses or CIDR ranges.                                     |

### Transfer Shield

Define the type of content you expect to receive and apply controls to files that do not match those expectations.

| Setting                           | Description                                                                                                           |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Enable Content Classification** | Classifies files uploaded through the Webhook using Couchdrop's DLP engine.                                           |
| **Block unclassified files**      | Denies a file if Transfer Shield cannot classify it for any reason.                                                   |
| **Content Rule Groups**           | Apply a selected content rule group, such as **Detect Malware & Executables**, to files uploaded through the Webhook. |

## Frequently asked questions

<details>

<summary>What can I send to an Inbound Webhook?</summary>

Inbound Webhooks can receive binary files, JSON, and raw request bodies over HTTPS.

</details>

<details>

<summary>Do I need to configure a bearer token?</summary>

No. The **Bearer token** is optional. If configured, clients uploading to the Webhook must include the token in the `Authorization` header.

</details>

<details>

<summary>Can I restrict which IP addresses can use a Webhook?</summary>

Yes. Use **Allowed Sender IPs** to restrict requests to approved IP addresses or CIDR ranges.

</details>

<details>

<summary>Where are uploaded files saved?</summary>

Files are saved to the folder or storage location configured for the Webhook.

</details>

<details>

<summary>Can an Inbound Webhook expire?</summary>

Yes. You can configure the Webhook to **Never Expire** or expire after a specified amount of time.

</details>

<details>

<summary>Can I receive notifications when an upload succeeds or fails?</summary>

Yes. You can enable email notifications for successful and failed uploads and optionally send them to custom recipients.

</details>

<details>

<summary>Can Transfer Shield inspect files uploaded through a Webhook?</summary>

Yes. You can enable content classification, apply a **Content Rule Group**, and optionally block files that cannot be classified.

</details>


# Outbound Webhooks

Outbound webhooks enable Couchdrop to send files and data into external applications and integration platforms as part of a workflow.

## Introduction

Outbound webhook support is currently available through Couchdrop's [iPaaS integrations](/integrations/ipaas-platforms), including Make, Celigo, Boomi, and Zapier.

{% hint style="info" %}
If you require a custom outbound webhook rather than an iPaaS integration, contact [Couchdrop Sales](mailto:sales@couchdrop.io) to request access.
{% endhint %}

## Using outbound webhooks

To send data from Couchdrop using an outbound webhook, connect Couchdrop to a supported iPaaS platform and configure the webhook or downstream workflow within that platform.

Supported integrations include:

* Make
* Celigo
* Boomi
* Zapier

These integrations can be used to pass data from Couchdrop into other applications and workflow systems.

## Frequently asked questions

<details>

<summary>Does Couchdrop support custom outbound webhooks?</summary>

Custom outbound webhooks are not generally available at this time. Contact [Couchdrop Sales if you need access](https://www.couchdrop.io/contact).

</details>

<details>

<summary>Which platforms can I use for outbound webhooks?</summary>

Outbound webhooks are supported through Couchdrop's iPaaS integrations, including Make, Celigo, Boomi, and Zapier.

</details>


# AS2

Couchdrop supports AS2 for secure, business-to-business file exchange with partners and trading networks. Use Couchdrop as an inbound AS2 endpoint, connect to external AS2 partners for outbound transfers, and manage AS2 alongside your other transfer methods and storage connections.

You can use Couchdrop AS2 to:

* Receive files from trading partners over AS2
* Send files to external AS2 partners
* Modernize AS2 file exchange without managing traditional AS2 infrastructure

<a href="https://www.couchdrop.io/register" class="button primary medium">Start your free trial</a> <a href="https://www.couchdrop.io/get-a-demo" class="button secondary medium">Book a demo</a>

***

## Get started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4>Inbound AS2</h4></td><td>Configure Couchdrop as an AS2 endpoint for receiving files</td><td><a href="/managed-file-transfer/as2/as2-stations">Inbound AS2 Stations</a></td></tr><tr><td><h4>Outbound AS2</h4></td><td>Connect to external AS2 partners and send files</td><td><a href="/managed-file-transfer/as2/connect-to-external-as2">Connect to external AS2</a></td></tr><tr><td><h4>Automations</h4></td><td>Transform, route, and process files as part of your AS2 workflows</td><td><a href="/automations/overview">Overview</a></td></tr></tbody></table>

***


# Inbound AS2 Stations

Learn about how to configure Couchdrop to receive files via AS2

## Overview

Couchdrop supports inbound AS2 for receiving files securely from trading partners using the AS2 protocol.

To receive files over AS2, you create an **AS2 Station** in Couchdrop. Each station has its own AS2 ID and URL, and files received through the station are delivered to the folder or storage location you configure.

You can then add one or more **AS2 Trading Partners** to the station using the AS2 ID and signing certificate provided by each partner.

### How an AS2 Stations work

An AS2 Station acts as the inbound AS2 endpoint for your trading partners.

Each partner sends files to the station's unique URL using the AS2 ID and certificate information you provide. Couchdrop validates the partner using the AS2 ID and signing certificate configured for that trading partner, then delivers received files to the folder selected for the station.

A single AS2 Station can have multiple trading partners configured.

***

## How to create an AS2 Station

{% hint style="warning" %}

#### Before you start

To create an AS2 Station, you will need:

* Access to Couchdrop with the appropriate user rights. Contact your administrator if required.
* A folder location for received files, or the details and permissions required to configure a cloud storage connection.
* The **AS2 ID** for each trading partner that will send files to the station.
* The **signing certificate** provided by each trading partner.
  {% endhint %}

{% stepper %}
{% step %}

### Create a new AS2 Station

In Couchdrop, click **Create New AS2 Station**.

Enter a name for the station so you can identify it in Couchdrop.

If you do not see this option, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure the AS2 Station

Enter the **AS2 ID** for your station. You will provide this ID to trading partners that need to send files to the station.

Add the private key and public certificate used for:

* File decryption
* MDN (Message Disposition Notification) signing

You can use the same key pair for both decryption and signing, or configure a different key pair for each.

Select the location where received files will be stored. You can choose an existing folder or configure a new cloud storage connection.

Click **Save and Continue**.
{% endstep %}

{% step %}

### Add an AS2 Trading Partner

Click **Create New AS2 Trading Partner**.

Configure the partner using the information they have provided:

* **Name** — Enter a name to identify the trading partner.
* **AS2 ID** — Enter the partner's AS2 ID.
* **Signing Certificate** — Add the certificate supplied by the partner.

Click **Save and Back**.

The trading partner will appear in the **AS2 Trading Partners** table.

Repeat this step if additional trading partners need to send files to the station, then click **Save and Continue**.
{% endstep %}

{% step %}

### Share your AS2 Station details

Provide the following information to each trading partner that will send files to your station:

* **Station AS2 ID**
* **Station URL**
* **Certificate for signing**
* **Certificate for encryption**

You can also use **Share Instructions** to send the station details to your trading partner.
{% endstep %}
{% endstepper %}

***

## AS2 Station Settings

Additional settings can be configured for an AS2 Station during creation or after the station has been created.

### General settings

| Setting                             | Description                                                                                                               |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Station Name**                    | Sets the name used to identify the AS2 Station in Couchdrop.                                                              |
| **Station AS2 ID**                  | Sets the AS2 identifier for the station. Share this value with trading partners that send files to the station.           |
| **Station Email**                   | Optional email address associated with the AS2 Station.                                                                   |
| **Storage Location**                | Sets where files received through the AS2 Station are saved.                                                              |
| **Certificate & Private Key Pairs** | Shows the certificate and private key pairs configured for **Encryption** and **Signing**, including their expiry status. |

### Notifications

Configure email notifications for successful or failed AS2 transfers, including optional custom recipients.

| Setting                            | Description                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------- |
| **Success notifications**          | Send an email when a transfer to the AS2 Station succeeds.                             |
| **Failure notifications**          | Send an email when a transfer to the AS2 Station fails.                                |
| **Custom notification recipients** | Send notifications to one or more custom email addresses using a comma-separated list. |

### Transfer Shield

Transfer Shield lets you define the type of content expected through the AS2 Station and apply controls when uploaded files do not match those expectations.

| Setting                           | Description                                                                      |
| --------------------------------- | -------------------------------------------------------------------------------- |
| **Enable Content Classification** | Classifies files uploaded through the AS2 Station using Couchdrop's DLP engine.  |
| **Block unclassified files**      | Denies a file if Transfer Shield cannot classify it for any reason.              |
| **Content Rule Groups**           | Applies a selected content rule group to files uploaded through the AS2 Station. |

***

## Frequently asked questions

<details>

<summary>Can multiple trading partners use the same AS2 Station?</summary>

Yes. You can add multiple AS2 Trading Partners to a station. Each partner is configured with its own AS2 ID and signing certificate.

</details>

<details>

<summary>Can I use the same certificate for AS2 decryption and MDN signing?</summary>

Yes. You can use the same key pair for both, or configure separate key pairs for decryption and signing.

</details>

<details>

<summary>What information do I need from an AS2 trading partner?</summary>

You will need the partner's AS2 ID and signing certificate before adding them to the station.

</details>

<details>

<summary>What information do I need to give my trading partner?</summary>

Provide your Station AS2 ID, Station URL, signing certificate, and encryption certificate. You can also use the **Share Instructions** action in Couchdrop.

</details>

<details>

<summary>Where are files received through AS2 stored?</summary>

Files are delivered to the folder configured for the AS2 Station. This can be an existing Couchdrop folder or a location provided through a configured cloud storage connection.

</details>


# Connect to external AS2

Learn about connecting to external AS2 providers with Couchdrop

## Introduction

Couchdrop supports outbound AS2 connections for securely sending files to external AS2 partners.

Once configured, the AS2 connection appears in Couchdrop as a virtual folder. Files uploaded to that folder are packaged as AS2 messages, encrypted, signed where configured, and sent to your trading partner.

{% hint style="info" %}
This page covers outbound AS2 connections. To receive files over AS2, see [Inbound AS2 Stations](/managed-file-transfer/as2/as2-stations).
{% endhint %}

### How it works

Unlike storage-based connections, an outbound AS2 connection is designed for sending messages rather than browsing remote files.

The connection appears in Couchdrop as an outbound [virtual folder](/how-couchdrop-works). You can upload files to this folder, but operations such as listing files on the remote AS2 system or downloading files from it are not supported.

When a file is uploaded to the AS2 folder, Couchdrop packages it into an AS2 message, applies the configured encryption and signing, and sends it to the external AS2 endpoint.

## How to connect to an external AS2 partner

{% hint style="warning" %}

### Before you start

To connect to an external AS2 partner, you will generally need:

* Access to Couchdrop with the appropriate permissions
* Your trading partner's **AS2 ID**
* Your trading partner's **AS2 endpoint URL**
* Your trading partner's **public certificate**
* Your **public and private signing certificate/key pair**
  {% endhint %}

{% stepper %}
{% step %}

### Create an outbound AS2 connection

In Couchdrop, create a new connection and select **Outbound AS2** from the list of available connections.

Configure the connection name and virtual folder name.
{% endstep %}

{% step %}

### Configure the AS2 partner

Enter your trading partner's AS2 configuration details, including their **AS2 ID** and **AS2 endpoint URL**.

Upload the trading partner's public certificate.
{% endstep %}

{% step %}

### Configure message signing

Under **Message Signature Configuration**, upload your public certificate and private key.

These credentials are used when signing outbound AS2 messages sent to your partner.
{% endstep %}

{% step %}

### Save and test the connection

Once created, the AS2 connection will appear as a virtual folder in Couchdrop. Upload a test file to confirm it can be delivered successfully to your AS2 partner.
{% endstep %}
{% endstepper %}

***

## Using outbound AS2 in Couchdrop workflows

Because the AS2 connection appears as an outbound virtual folder, other Couchdrop features can use it as a destination.

| Feature                   | How it works with outbound AS2                                                         |
| ------------------------- | -------------------------------------------------------------------------------------- |
| **Inbound SFTP and FTPS** | Files uploaded by SFTP or FTPS users can be sent to the AS2 connection.                |
| **Mailboxes**             | Email attachments received through a Mailbox can be sent to the AS2 partner.           |
| **Upload Links**          | Files received through an Upload Link can be routed to the AS2 connection.             |
| **Inbound Webhooks**      | Files received through an inbound HTTPS webhook can be sent to the AS2 partner.        |
| **Inbound AS2**           | Files received through an inbound AS2 Station can be forwarded to another AS2 partner. |
| **S3 Gateway**            | Files received through the S3 Gateway can be sent to the AS2 connection.               |
| **Automations**           | Use the AS2 virtual folder as an outbound destination in Couchdrop Automations.        |


# Web Portal Access

Learn about using Couchdrop's web portal

## Introduction

Couchdrop's Web Portal gives users browser-based access to exchange files and run predefined workflows without providing access to the underlying storage platform or Couchdrop administration.

Web Portal users can upload, download, browse, and manage files within their permitted location. They can also run **Actions** — predefined Automations that can accept a file or other inputs, or be manually triggered from the Web Portal.

Files shown in the Web Portal are accessed through Couchdrop virtual folders. These map to the storage behind them, such as SharePoint, Google Drive, S3, or SFTP, without exposing that storage platform to the user.

Virtual folders can also apply controls such as automatic PGP encryption on upload and decryption on download.

## How to create a Web Portal user

{% hint style="warning" %}

### Before you start

To create a Web Portal user for file exchange, you will need:

* Administrator access to your Couchdrop tenant
* A folder location for the user to access
* Any required filesystem permissions or access restrictions
  {% endhint %}

{% stepper %}
{% step %}

### Create a new user

Go to **Admin Panel** > **All Users**, then select **Create New User**.

Choose either **Team Member** or **External** depending on the type of user you are creating.
{% endstep %}

{% step %}

### Configure the user account

Set the user's **Username** and **Password**.

You can also provide an **Email Address**, although this is optional.
{% endstep %}

{% step %}

### Configure filesystem access

Under **Filesystem Access**, configure:

* **Set the home/root directory for this user**
* **Global filesystem permissions for this user**
* **Delete allowed**, if the user should be able to delete files

The home/root directory determines which files and folders the user can access through the Web Portal.

If required, assign the user to a group using **Group Membership**.
{% endstep %}

{% step %}

### Enable Web Portal access

Under **Access Controls**, enable **Allow Web Portal**.

This enables access to the main Couchdrop Web Portal at `my.couchdrop.io`.

If required, configure **Network ACLs** to restrict access to specified IP addresses or networks.
{% endstep %}

{% step %}

### Save and share the details

Save the user configuration.

Share the Web Portal address, username, and password securely with the user.
{% endstep %}
{% endstepper %}

## Settings

Additional controls can be configured after the user has been created.

### Account and access

<table data-search="false"><thead><tr><th width="374">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Username</strong></td><td>Sets the username for the account.</td></tr><tr><td><strong>Email Address</strong></td><td>Optionally associate an email address with the user.</td></tr><tr><td><strong>Password</strong></td><td>Set or update the user's password.</td></tr><tr><td><strong>User must create a new password at next sign-in</strong></td><td>Requires the user to replace their password when they next sign in.</td></tr><tr><td><strong>Require MFA/2FA</strong></td><td>Require <a href="/security-and-governance/user-and-account-policies/multi-factor-authentication-mfa">multi-factor authentication</a> when signing in.</td></tr><tr><td><strong>Network ACLs</strong></td><td>Restricts access to specified IP addresses or networks.</td></tr><tr><td><strong>Expiry</strong></td><td>Configure the account to never expire or expire after a specified period.</td></tr></tbody></table>

### Filesystem access

| Setting                           | Description                                                       |
| --------------------------------- | ----------------------------------------------------------------- |
| **Home/root directory**           | Sets the location available to the user through the Web Portal.   |
| **Global filesystem permissions** | Controls the user's overall access to files within that location. |
| **Delete allowed**                | Controls whether the user can delete files they can access.       |

### Transfer Shield

Transfer Shield can classify files uploaded by a Web Portal user and apply content rules when files do not match what you expect.

| Setting                           | Description                                                          |
| --------------------------------- | -------------------------------------------------------------------- |
| **Enable Content Classification** | Classifies files uploaded by the user using Couchdrop's DLP engine.  |
| **Block unclassified files**      | Denies files that cannot be classified for any reason.               |
| **Content Rule Groups**           | Applies a selected content rule group to files uploaded by the user. |

## Using Web Portal access in Couchdrop workflows

Web Portal access can be used as the user-facing entry point for file exchange and predefined Couchdrop workflows.

<table><thead><tr><th width="263.9609375">Workflow</th><th>How it works with the Web Portal</th></tr></thead><tbody><tr><td><strong>Web Portal to cloud storage</strong></td><td>Users upload files through the Web Portal directly into their permitted virtual folder and the connected storage behind it.</td></tr><tr><td><strong>Cloud storage to Web Portal</strong></td><td>Make files in a permitted virtual folder available for users to browse and download through the Web Portal.</td></tr><tr><td><strong>Web Portal to Automations</strong></td><td>Use files uploaded through the Web Portal as inputs for Couchdrop Automations.</td></tr><tr><td><strong>Runnable Actions</strong></td><td>Let users manually trigger predefined Automations from the Web Portal, with optional file or metadata inputs.</td></tr><tr><td><strong>Encrypted file exchange</strong></td><td>Use virtual folder settings to automatically PGP encrypt files on upload or decrypt files on download.</td></tr></tbody></table>


# Upload Links & Forms

Learn the steps to create a simple web upload inbox with Couchdrop

## Introduction

Upload Links in Couchdrop provide a secure web page for requesting and receiving files from customers, partners, and other external users.

Each Upload Link sends uploaded files directly to a storage location you select. Uploaders do not need a Couchdrop account or access to your internal systems.

Upload Links can also collect additional information using form fields and pass uploaded files into Couchdrop Automations for further processing.

## How to create an Upload Link

{% hint style="warning" %}

#### Before you start

To create an Upload Link, you will need:

* Access to Couchdrop with the appropriate permissions
* A folder location for uploaded files
  {% endhint %}

{% stepper %}
{% step %}

### Create an Upload Link

In Couchdrop, create a new Upload Link and choose the type of link you want to use.

Choose from:

* **Upload Portal** — Create a dedicated upload portal where users can send files directly to a specific folder.
* **Temporary Upload Link** — Generate an upload link that automatically expires after a set time.
* **Password-Protected Upload Link** — Create an upload link that requires a password before files can be uploaded.
* **File Request via Email** — Send a file request to an email address. The recipient must verify their identity using email verification or 2FA before uploading.
* **Custom Upload** — Create an Upload Link with additional configuration options.

If this option is unavailable, contact your Couchdrop administrator.
{% endstep %}

{% step %}

### Configure the Upload Link

Choose the **Location** where uploaded files will be stored.

Under **Configure**, add an internal name for the Upload Link and a description (optional) that will be shown to users.

Enable **Transfer Shield** if you want uploaded files to be classified and checked against your configured content rules.

Click **Save and Continue**.
{% endstep %}

{% step %}

### Save and test the Upload Link

Save the Upload Link to finish creating it.

Once created, open the link in Couchdrop, copy the web URL, and test an upload to confirm that files are being delivered to the configured location.

Additional settings, including **form fields**, can be configured after the Upload Link has been created.
{% endstep %}
{% endstepper %}

{% hint style="info" %}

## Forms and metadata

Upload Links can collect information from the person uploading a file using configurable form fields.

This is useful when you need additional information alongside an upload, such as an email address, phone number, or file description.

Uploaders are required to complete the configured fields during the upload. The submitted data is attached to the upload event and can be used by Couchdrop Automations.

Form data can also be written to a CSV file in the same location as the uploaded files.
{% endhint %}

## Settings

Upload Link settings can be configured during creation or after the Upload Link has been created.

### Files and input fields

Upload Links can collect additional information from users alongside their file upload. You can display an optional message to users when they open the Upload Link. This can be used to provide instructions or explain what files and information they should submit.

| Setting                           | Description                                                                                             |
| --------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Form description**              | Displays a custom message in the upload portal.                                                         |
| **Input fields**                  | Add fields to collect metadata from the user during upload.                                             |
| **Upload input fields as `.csv`** | Saves the values entered into the configured input fields as a `.csv` file alongside the uploaded file. |
| **Upload location**               | Selects where files uploaded through the link will be stored.                                           |

### Security options

Upload Links are publicly accessible by default. You can protect access and restrict who can upload by configuring **MFA** and **password protection**.

| Setting             | Description                                                                                                    |
| ------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Expiry**          | Configure the Upload Link to **Never Expire** or expire after a specified amount of time.                      |
| **Allowed Senders** | Restricts access to specified email addresses requiring MFA. Supports comma-separated addresses and wildcards. |
| **Password**        | Requires users to enter a password before accessing the Upload Link.                                           |

### Alerting

Configure email notifications for successful or failed uploads.

| Setting                            | Description                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------- |
| **Success notifications**          | Send an email when an upload succeeds.                                                 |
| **Failure notifications**          | Send an email when an upload fails.                                                    |
| **Custom notification recipients** | Send notifications to one or more custom email addresses using a comma-separated list. |

### Transfer Shield

Transfer Shield lets you define the type of content expected through an Upload Link and apply controls when uploaded files do not match those expectations.

| Setting                           | Description                                                                                                          |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Enable Content Classification** | Classifies files uploaded through the Upload Link using Couchdrop's DLP engine.                                      |
| **Block unclassified files**      | Denies a file if Transfer Shield cannot classify it for any reason.                                                  |
| **Content Rule Groups**           | Applies a selected content rule group, such as **Detect Malware & Executables**, to files uploaded through the link. |

Transfer Shield can be used to block files or surface them for approval when their content does not match what you expect.

***

## Feature Support

Upload Links support the following Couchdrop capabilities:

| Feature            | Support                                                |
| ------------------ | ------------------------------------------------------ |
| **API Creation**   | Create Upload Links through the Couchdrop API.         |
| **Custom Domains** | Use Upload Links with configured custom domains.       |
| **White labeling** | Apply custom branding to Upload Links                  |
| **Auditing**       | Track Upload Link activity through Couchdrop auditing. |

## Using Upload Links in Couchdrop workflows

Upload Links can act as the starting point for file-based workflows in Couchdrop. Files and form data collected through an Upload Link can be passed into Automations and other Couchdrop transfer methods.

<table data-search="false"><thead><tr><th width="269.26171875">Workflow</th><th>How it works with an Upload Link</th></tr></thead><tbody><tr><td><strong>Client upload to SFTP</strong></td><td>Give a client a web upload portal, then use Couchdrop to make the uploaded files available to an internal or remote SFTP destination.</td></tr><tr><td><strong>File request to cloud storage</strong></td><td>Request files from an external user and save them directly into the required cloud storage folder.</td></tr><tr><td><strong>Upload and route by form data</strong></td><td>Collect details such as customer name, email address, or file type, then use that metadata in an Automation to route the file after upload.</td></tr><tr><td><strong>Secure document collection</strong></td><td>Protect the Upload Link with a password or MFA, then use Transfer Shield to classify uploaded files and block files that do not meet your rules.</td></tr><tr><td><strong>Temporary file collection</strong></td><td>Create an expiring Upload Link for a one-off or time-sensitive request, with files delivered directly to the required folder.</td></tr><tr><td><strong>Upload and notify</strong></td><td>Trigger an Automation after upload to continue the workflow, while Couchdrop alerting handles success or failure notifications.</td></tr><tr><td><strong>Upload with metadata record</strong></td><td>Collect structured information alongside a file and save the submitted form values as a <code>.csv</code> next to the uploaded file.</td></tr></tbody></table>

## Frequently Asked Questions

<details>

<summary>Do users need a Couchdrop account to upload files?</summary>

No. Upload Links provide a web portal that external users can access without a Couchdrop account.

</details>

<details>

<summary>Can I brand an Upload Link?</summary>

Yes. Upload Links provide a brandable web portal for receiving files from clients, partners, and customers.

</details>

<details>

<summary>Can I restrict access to an Upload Link?</summary>

Yes. Upload Links are publicly accessible by default, but access can be protected using a password or MFA.

</details>

<details>

<summary>Can I make an Upload Link expire?</summary>

Yes. You can configure an Upload Link to never expire or expire after a specified amount of time. Couchdrop also provides a **Temporary Upload Link** option for time-sensitive file requests.

</details>

<details>

<summary>Can I collect information from the person uploading a file?</summary>

Yes. You can add custom input fields to collect information such as an email address, phone number, or file description.

The submitted information is attached to the upload event and can also be saved as a `.csv` file alongside the uploaded files.

</details>

<details>

<summary>Can I receive notifications when someone uploads a file?</summary>

Yes. You can configure email notifications for successful and failed uploads and send those notifications to custom recipients.

</details>

<details>

<summary>Can I control what types of files are uploaded?</summary>

Yes. If Transfer Shield is enabled, files uploaded through the portal can be classified using Couchdrop's DLP engine and checked against a selected content rule group.

You can also block files when Couchdrop cannot classify them.

</details>

<details>

<summary>Can uploaded files trigger an Automation?</summary>

Yes. Upload Links can be used with Couchdrop Automations so that workflows run when files are uploaded.

</details>


# Shared Links

Shared Links in Couchdrop provide a secure way to share files and folders with external users through a web link.

## Introduction

Shared Links let you securely share files and folders stored in Couchdrop-connected storage without giving recipients access to that storage.

The original file or folder stays in your existing storage location, such as SharePoint. There is no duplication, and recipients do not need to know where the content is stored.

Users access the file or folder through a Couchdrop Shared Link and do not need a Couchdrop account, a storage account, or guest access to the underlying platform.

You can add controls such as allowed recipients, passwords, expiry, and one-time use to restrict access.

## How to create a Shared Link

{% hint style="warning" %}

### Before you start

To create a Shared Link, you will need:

* Access to Couchdrop with the appropriate permissions
* An existing file or folder connection that you want to share
  {% endhint %}

{% stepper %}
{% step %}

### Choose a file or folder to share

From Couchdrop, click + Create, then select Create Shared Link.

Choose Share an Existing File or Folder and select the file or folder you want to share.
{% endstep %}

{% step %}

### Configure access controls

Configure any access controls you need, including Allowed Receivers, password protection, One Time Use, and Expiry.

You can also allow unapproved users to request access to the link.
{% endstep %}

{% step %}

### Share your link

Save the Shared Link, then copy the generated URL from Couchdrop.

Send the link to the intended recipient so they can access the shared file or folder.
{% endstep %}
{% endstepper %}

***

## Settings

Additional settings can be configured after a Shared Link has been created.

### General link settings

| Setting              | Description                                                                                           |
| -------------------- | ----------------------------------------------------------------------------------------------------- |
| **Shared link name** | Sets the internal name used to identify the Shared Link in Couchdrop. This is not externally visible. |
| **Path**             | Sets the file or folder made available through the Shared Link.                                       |

### Security options

Shared Links can be protected so that only the intended recipients can access the shared content.

{% hint style="warning" %}
Administrators can configure default security options for Shared Links created by users.
{% endhint %}

| Security option                   | How it works                                                                                                                            |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Allowed Receivers**             | Restricts access to approved email addresses. Users verify their email address when accessing the link.                                 |
| **Allow users to request access** | Allows someone who is not already approved to request access. Couchdrop creates an Approval Task for the Shared Link creator to review. |
| **Password protection**           | Requires a password before the Shared Link can be accessed.                                                                             |
| **One Time Use**                  | Limits the link to a single file download.                                                                                              |
| **Expiry**                        | Automatically prevents access after the configured expiry period.                                                                       |

### Shared Link Managers

Shared Link Managers control which Couchdrop users and groups can manage the link.

Use **Managers** to select the users or groups that should have management access.

***

## Frequently asked questions

<details>

<summary>Do recipients need a Couchdrop account?</summary>

No. Recipients access the shared file or folder through the generated web link.

</details>

<details>

<summary>Can I restrict a Shared Link to specific people?</summary>

Yes. Add the permitted email addresses under **Allowed Receiver/Downloader**. Only listed addresses will be able to access the link.

You can also allow unapproved users to request access, which creates an Approval Task for the Shared Link creator.

</details>

<details>

<summary>Can I password-protect a Shared Link?</summary>

Yes. Enable **Require Password** and configure a password for the link.

</details>

<details>

<summary>Can a Shared Link expire?</summary>

Yes. You can configure a Shared Link to **Never Expire** or expire after a specified amount of time.

</details>

<details>

<summary>Can I create a one-time download link?</summary>

Yes. Enable **One Time Use** to allow the Shared Link to be used only once to download a single file.

</details>

<details>

<summary>Are Shared Links encrypted and secure?</summary>

Yes. Shared Links are accessed over a TLS 1.3 web connection.

</details>

<details>

<summary>Is Shared Link activity audited?</summary>

Yes. Shared Link access is included in Couchdrop auditing.

The Shared Link creator can view events for the link, and administrators can view and manage the link.

Reporting can include:

* Files downloaded
* Downloader IP address
* Email address

</details>

<details>

<summary>Who can create Shared Links?</summary>

By default, administrators, owners, and managers can create Shared Links. Shared Links can also be enabled for external users.

</details>

<details>

<summary>Can Shared Links be branded?</summary>

Yes. You can control the logo and title displayed on the download portal and configure the domain used for Shared Links.

</details>


# B2B Connect

B2B Connect works like a secure shared folder between two organizations, except each organization keeps control of its own storage.

Couchdrop B2B Connect lets two organizations exchange files directly between their Couchdrop accounts without sharing storage credentials or providing access to each other's storage.

Each organization controls its own side of the connection. The receiving party chooses where files are delivered, while the sending party gets a dedicated B2B Connect location for sending files.

You can use B2B Connect to:

* Send files directly to another organization's Couchdrop-connected storage
* Receive files into a storage location you control
* Exchange files without sharing storage account access or credentials

<a href="https://www.couchdrop.io/register" class="button primary medium">Start your free trial</a> <a href="https://www.couchdrop.io/get-a-demo" class="button secondary medium">Book a demo</a>

***

### Get started

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Send files with B2B Connect</td><td>Send files directly to another organization's Couchdrop-connected storage</td><td></td><td><a href="/file-sharing/b2b-connect/sending-files-with-b2b-connect">Sending files with B2B Connect</a></td></tr><tr><td>Receive files with B2B Connect</td><td>Receive files from another Couchdrop organization into a folder you control</td><td></td><td><a href="/file-sharing/b2b-connect/receiving-files-with-b2b-connect">Receiving files with B2B Connect</a></td></tr></tbody></table>

***

### Frequently asked questions

<details>

<summary>What is B2B Connect designed for?</summary>

B2B Connect is designed for file exchange between trading partners, customers, suppliers, and other external organizations.

It gives both sides a managed way to send and receive files without needing to share access to storage accounts or build a separate transfer workflow for each partner.

</details>

<details>

<summary>Can people use B2B Connect for manual file transfers?</summary>

Yes. B2B Connect can be used by people who need to send files manually between organizations.

The sending party can upload files through their B2B Connect connection, and Couchdrop delivers them to the receiving party's configured destination.

</details>

<details>

<summary>How does B2B Connect simplify partner file exchange?</summary>

B2B Connect removes the need to coordinate storage credentials, guest access, shared folders, or separate transfer accounts between organizations.

Each party manages its own Couchdrop account and storage, while Couchdrop handles the connection between them.

</details>

<details>

<summary>Can received files go directly into our existing storage?</summary>

Yes. The receiving organization chooses where files are delivered.

This means files can be received directly into connected storage such as SharePoint, Google Drive, or another storage location available in Couchdrop, rather than being downloaded and moved manually afterward.

</details>

<details>

<summary>Does the sending party need access to our storage?</summary>

No. The sending party does not need credentials, guest access, or an account for the receiving organization's storage platform.

They send files through the B2B Connect pairing, while the receiving organization keeps control of the destination and its storage credentials.

</details>


# Sending files with B2B Connect

Learn about how to send files with the B2B Connect feature

## Introduction

B2B Connect lets you send files directly to a business partner without needing access to their storage platform or credentials.

You create the outbound connection in Couchdrop and invite the receiving organization. They choose where the files will be delivered in their own Couchdrop account, including connected storage such as SharePoint, Google Drive, or other supported storage locations.

Couchdrop handles the pairing between both organizations, giving you a dedicated way to exchange files without creating shared storage accounts, guest users, or separate transfer credentials for each partner.

{% hint style="info" %}
By default, neither party can browse or manage files in the other organization's storage.

The receiving party can optionally allow the paired connection to view files in the destination folder by editing the connection settings.
{% endhint %}

***

## Send files with B2B Connect

Use this option when you want to send files directly to another organization's Couchdrop-connected storage.

{% hint style="warning" %}

#### Before you start

To send files with B2B Connect, you will need:

* Access to Couchdrop with the appropriate permissions
* The email address of the receiving party
* A folder location to use for the outbound connection
  {% endhint %}

{% stepper %}
{% step %}

### Create the connection

In Couchdrop, select **B2B Connect** and create a new connection.

Choose to **initiate a connection**, then select **send files**.
{% endstep %}

{% step %}

### Configure the outbound connection

Name the connection, choose the outbound folder, and enter the email address of the receiving party.
{% endstep %}

{% step %}

### Send the invitation

Complete the configuration to send the B2B Connect invitation.

{% hint style="success" %}
After creating a new B2B connection, an outbound user icon will appear next to the connection in the B2B Connect list. This icon will disappear once the other party finishes their configuration, indicating that the connection is ready to use.&#x20;
{% endhint %}
{% endstep %}
{% endstepper %}

## What the receiving party does

The receiving party receives an invitation email with a link to complete their side of the connection.

They choose the directory where files sent through the connection will be delivered.

Their storage credentials remain in their own Couchdrop account and are not shared with you.

Once they complete the configuration, the B2B Connect pairing is ready to use.

## Manual pairing

B2B Connect can also be paired without using the invitation email.

The initiating party can provide the pairing token directly to the other organization.

The other party can then create a B2B Connect connection, select **accept a pair request**, and enter the token to complete the pairing.

This is useful when the invitation needs to be shared through another communication channel or handled by a different person within the receiving organization.


# Receiving files with B2B Connect

Learn how to receive files using the B2B Connect feature

## Introduction

B2B Connect lets you give customers, suppliers, and other business partners a direct way to send files into a storage location you control.

You choose where received files are delivered, including connected storage such as SharePoint, Google Drive, or another supported storage location, then invite the sending organization to connect through their own Couchdrop account.

The sender does not need access to your storage platform or its credentials. Couchdrop handles the connection between both organizations, so files can move directly into your selected destination without being manually downloaded, emailed, or moved between systems.

{% hint style="info" %}
By default, neither party can browse or manage files in the other organization's storage.

You can optionally allow the paired connection to view files in the destination folder by editing the connection settings.
{% endhint %}

***

## Receive files with B2B Connect

Use this option when you want another organization to send files directly into a folder you control.

{% hint style="warning" %}

#### Before you start

To receive files with B2B Connect, you will need:

* Access to Couchdrop with the appropriate permissions
* The email address of the sending party
* A folder location where received files will be stored
  {% endhint %}

{% stepper %}
{% step %}

### Create the connection

In Couchdrop, select **B2B Connect** and create a new connection.

Choose to **initiate a connection**, then select **receive files**.
{% endstep %}

{% step %}

### Configure the inbound connection

Enter the email address of your business partner, name the connection, and choose the folder where received files will be stored.
{% endstep %}

{% step %}

### Send the invitation

Complete the configuration to send the invitation.

Your partner will be asked to name the connection in their own Couchdrop account and provide a name for the outbound B2B Connect folder that will appear in their file browser.
{% endstep %}
{% endstepper %}

## What the sending party does

The sending party does not need to connect a storage account to use the B2B Connect pairing.

They can send files directly from the **B2B Connect** page or upload files to the outbound B2B Connect folder created for the connection.

Files are delivered into the folder you selected when configuring the connection.

## Manual pairing

B2B Connect can also be paired without using the invitation email.

The initiating party can provide the pairing token directly to the other organization.

The other party can then create a B2B Connect connection, select **accept a pair request**, and enter the token to complete the pairing.

This is useful when the invitation needs to be shared through another communication channel or handled by a different person within the receiving organization.


# Overview

Learn about how to build automations in Couchdrop

Couchdrop Automations let you schedule, trigger, and orchestrate file transfers between systems without relying on scripts, cron jobs, or external middleware.

You can use Automations to manage repetitive or time-sensitive workflows between connected storage platforms, SFTP/FTP servers, cloud environments, and other Couchdrop connections. Common examples include nightly backups, hourly data synchronization, and event-driven file distribution.

Automations are created using Couchdrop's [visual workflow builder](/automations/overview/visual-automation-builder). The builder requires no code and supports multi-step workflows using **Primary Actions** and **Sub-actions**.

{% hint style="info" %}
For a walkthrough on creating a complete automation, see [Build your first automation](/get-started/build-your-first-automation).&#x20;
{% endhint %}

### Enabling Automations

An Automation must be enabled before it can run automatically.

You can enable an Automation in either of the following ways:

* Open the Automation in the builder and click **Automation Enabled**.
* From the Automation list, click the three dots beside a disabled Automation and select **Enable**.

### Disabling Automations

You can disable an Automation without deleting its configuration. A disabled Automation will remain available for editing or enabling again later.

To disable an Automation:

* Open the Automation in the builder and click **Automation Enabled**.
* From the Automation list, click the three dots beside an enabled Automation and select **Disable**.

### Duplicating Automations

You can duplicate an existing Automation when you want to create a similar workflow without changing the original.

From the Automation list, click the three dots beside the Automation and select **Duplicate**.

Couchdrop creates the duplicate immediately using the name:

`[Existing Name] - Copy`

The duplicated Automation can then be edited independently of the original.


# Visual Automation Builder

Learn about how Couchdrop's visual workflow builder works

## Overview

The Automation Builder provides a visual way to define the order in which actions run in a Couchdrop Automation.

Actions are arranged as a tree. Actions moving **down** the tree are **Primary Actions**, while actions branching to the **right** are **Sub-actions**.

Understanding this structure is important because it determines which file each action operates on and the order in which Couchdrop processes the workflow.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2Fl6JJjJTOmWcYdfnKMtbf%2FAutomation%20Builder.png?alt=media&amp;token=0568c0ce-5583-4c1a-971f-91af9f7524a2" alt=""><figcaption><p>Automations have two main pathways. Moving <strong>down</strong> the tree are primary actions. Moving to the <strong>right</strong> are sub-actions. </p></figcaption></figure>

## Primary Actions

Primary Actions run vertically down the workflow and operate on the **original file**.

For example, if a Primary Action copies a file, any Sub-actions attached to that Copy action operate on the copied file rather than the original.

Because Primary Actions continue to reference the original file, some actions are not available at this level where their use could interfere with later processing. For example, **Rename File** is not available as a Primary Action.

## Sub-actions

Sub-actions branch to the **right** of another action.

A Sub-action operates on the output of its parent action. If the parent action creates another file, such as with a Copy action, the Sub-action operates on that new file.

If no additional file has been created, the Sub-action operates on the original file.

This lets you build dependent sequences where each action works with the result of the previous action.

{% hint style="warning" %}
If a Sub-action fails, Couchdrop will not continue processing any child actions beneath it.
{% endhint %}

## Processing Order

Couchdrop processes Automation actions **top-to-bottom, then left-to-right**.

This means an action and its Sub-actions are completed before Couchdrop continues to the next Primary Action.

The Automation Builder indicates processing order using letter groups and numbered actions.

All actions in the **A** group are processed first in numerical order. Couchdrop then processes the **B** group, followed by subsequent groups.

For example, a workflow may be processed as:

`A1 → A2 → A3 → B1 → B2 → C1`

The visual hierarchy therefore represents both the relationship between actions and the order in which they run.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F30fmB1ektM0V1zjzHGlw%2FAutomation%20Order.png?alt=media&amp;token=2809695b-a848-4835-aaaa-12356d52b4ec" alt=""><figcaption><p>All A group actions will occur first in numerical order, followed by the B group, and so on.</p></figcaption></figure>

## Modifying an Automation

Once an action has been added, its action type cannot be changed directly. To use a different action, delete the existing action and add a replacement.

You can insert a new action between existing actions using the **plus icon** between steps. Couchdrop will adjust the subsequent steps and processing order automatically.

{% hint style="warning" %}
Deleting an action also deletes any Sub-actions beneath it. If an action has child actions, Couchdrop displays a warning showing how many actions will be removed before you confirm the deletion.
{% endhint %}


# Version Control

Learn how modifying an Automation creates restorable versions

Every change made to a workflow creates a new version. Previous versions can be viewed and restored, giving you a safe fallback when updating an automation.

## Viewing workflow versions

To view previous versions, open the automation and select the **Versions** tab.

Versions are listed with the most recent first. Each version shows:

* The version number
* When the version was created
* The user who created it
* The workflow name

Hover over a version and click **View** to see a snapshot of the workflow at that point in time.

## Restoring a previous version

To restore an older version, locate the version you want to use.

You can roll back to it in either of the following ways:

* Open the version using **View**, then click **Rollback**
* Click the three-dot menu beside the version and select **Rollback**

Rolling back restores that version of the workflow so you can recover from unwanted changes or return to a previously working configuration.


# Workflow settings

Learn about the Settings menu in workflows

When editing a workflow, the Settings menu allows you to make changes to Workflow metadata, access, and run settings.&#x20;

### General Settings

<table><thead><tr><th width="275.4375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Name</strong></td><td>The name of the workflow. You can edit the name from this view. </td></tr><tr><td><strong>When to perform actions</strong></td><td>How long to wait (in seconds) after all the conditions are met to perform the actions within this workflow.</td></tr><tr><td><strong>Action retries</strong></td><td>How many times to retry when an action fails.</td></tr></tbody></table>

### User and Group Access

{% hint style="info" %}
User and Group Access options are available exclusively for [Runnable Actions](/automations/triggers/runnable-actions).&#x20;
{% endhint %}

<table><thead><tr><th width="274.9375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Users</strong></td><td>Select an individual user who can view and run the workflow. It will appear in the <strong>Actions</strong> tab when they log in. </td></tr><tr><td><strong>Groups</strong></td><td>Groups. Select a group to share the workflow with. It will appear for all members of the group in the Actions tab. </td></tr></tbody></table>

### Other options

<table><thead><tr><th width="251.65234375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Managers</strong></td><td>Select which users or groups can manage and edit this Automation. </td></tr><tr><td><strong>Run Workflow via Webhook</strong></td><td>Check this option to use a webhook URL to start the workflow from external systems.</td></tr><tr><td><strong>Delete Action</strong></td><td>This will permanently delete the workflow. </td></tr></tbody></table>


# Troubleshooting

Learn about the reporting Couchdrop provides around transfer automations

Most failures or issues with automations tend to come down to configuration or connectivity issues. To make things easy, every transfer automation attempt has a verbose automation log.

### Viewing Workflow Executions

To review previous runs, go to:

**Automations > \[Automation Name] > View Executions**

Each execution represents an individual attempt to run the workflow.

Failed executions are marked in red, making it easier to identify runs that require investigation.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FPYbcaoDI5ltfGiAkUg7I%2FAutomation%20Troubleshooting.png?alt=media&amp;token=2ace4681-6374-4943-9c6a-527b2faf3cdc" alt=""><figcaption></figcaption></figure>

### Reviewing an Execution

Click an execution to view detailed information about that run.

The execution view includes:

* The actions performed during the workflow
* Errors associated with the failed action
* Human-readable error information
* The raw execution log for additional troubleshooting

This allows you to identify which part of the workflow failed and determine whether the issue relates to the workflow configuration, a storage or platform connection, or another part of the transfer.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FVutW0oZcUbUQr3RAbLWH%2FAutomation%20Logs.png?alt=media&amp;token=6462799a-c755-4f92-b5d7-cb4d37a10a1c" alt=""><figcaption></figcaption></figure>

### Troubleshooting Failed Workflows

Error messages are designed to provide enough information to identify the cause of most failures.

For example, connectivity problems with an external SFTP connection may be caused by authentication, permissions, or network access issues.

If you have trouble determining why an automation is failing, you can [contact support for assistance](broken://pages/8w72LN9IbLUy6081CIId).&#x20;


# Triggers

Learn about how triggers and scheduling work with Couchdrop automations

## Overview

Workflow triggers define how a Couchdrop workflow starts. Choose the trigger type based on whether the workflow should run on a schedule, react to an event, be started by a user or external system, or only run manually.

### Scheduled Triggers

Scheduled Triggers run a workflow on a defined schedule.

Use a Scheduled Trigger for repeatable workflows, particularly when Couchdrop needs to connect to a remote system and perform an action at regular intervals.

For example, you might schedule a workflow to periodically check a remote server for files and transfer them into another location.

### Event Triggers

Event Triggers start a workflow when a specific event occurs.

They are useful when files arrive at unpredictable times or when a workflow should react to file activity rather than run on a fixed schedule.

### Runnable Actions

Runnable Actions allow users to run a workflow without giving them access to edit the workflow itself.

This is useful when you want to make a predefined process available to other users while keeping the workflow configuration controlled.

### External Webhook

An External Webhook provides a webhook URL that an external system can call to start the workflow.

Use this trigger when another application or service needs to initiate a Couchdrop workflow as part of a wider process.

### Manual Activation

Manual Activation workflows only run when they are started manually from the workflow builder.

This is useful for testing workflows or for processes that should only run when explicitly initiated by an administrator.


# Scheduled Triggers

Learn about how to schedule workflows in the automation builder.

Couchdrop allows you to schedule recurring file transfers without having to write custom scripts or create cron jobs. The built-in scheduler is available when modifying an automation as the first step by choosing the **Schedule** option.&#x20;

### Scheduling options

Scheduled triggers activate based on a configured schedule (evaluated in UTC) with the following options:

<table><thead><tr><th width="217.6328125">Schedule</th><th>Description</th><th width="110.03125">Example</th><th>Explanation</th></tr></thead><tbody><tr><td>Daily</td><td>Once per day</td><td>11:00 PM</td><td>Triggers at 11:00PM every day. </td></tr><tr><td>Frequency (minutes)</td><td>Triggers at the configured interval, from every 5 minutes up to every 59 minutes.</td><td>15</td><td>Triggers every 15 minutes. </td></tr><tr><td>Hourly</td><td>Triggers every hour at a specified minute</td><td>45</td><td>Triggers at 45 minutes past the hour, every hour.</td></tr><tr><td>Monthly</td><td>Triggers monthly at a specified day and time</td><td>1, 12:00PM</td><td>Triggers on the first of the month at noon.</td></tr><tr><td>Never</td><td>Automation will not trigger on a schedule</td><td></td><td>Used to pre-configure automations for later</td></tr><tr><td>Weekly</td><td>Triggers once per week on a specific day and time</td><td>Friday, 12:00PM</td><td>Triggers every Friday at noon.</td></tr></tbody></table>

#### Secondary Schedules

If the Automation needs to run at multiple intervals, these can be set with Secondary Schedules.&#x20;

Suppose you want to trigger the automation at noon every Friday but also on the first of the month. To do this, create one Automation for Weekly, Friday, 12:00PM, and then a Secondary schedule for Monthly 1, 12:00PM.&#x20;

You can add as many Secondary Schedules as needed for a single automation.&#x20;


# Event-based Triggers

Learn about supported Triggers in Couchdrop Automations

Automations activate when a particular trigger condition is met. This trigger is configured as the first action of a workflow.

### Trigger events

The following event triggers are available

{% hint style="info" %}
The trigger can be changed without affecting the rest of the workflow.&#x20;
{% endhint %}

<table data-search="false"><thead><tr><th width="265.15625">Action Type</th><th>Description</th></tr></thead><tbody><tr><td>Upload</td><td>Triggers when a file is uploaded to the target directory</td></tr><tr><td>Download</td><td>Triggers when a file is downloaded from the target directory</td></tr><tr><td>Rename</td><td>Triggers when a file is renamed in the target directory</td></tr><tr><td>Mkdir</td><td>Triggers when a new folder is created in the target directory</td></tr><tr><td>Remove</td><td>Triggers when a file is removed from the target directory</td></tr><tr><td>Mailbox Upload</td><td>Select an existing mailbox. Triggers when a file is uploaded via this Mailbox. </td></tr><tr><td>Upload Link Upload</td><td>Select an existing Upload Link. Triggers when a file is uploaded via this Upload Link. </td></tr><tr><td>Shared Link Download</td><td>Select an existing Shared Link. Triggers when a file is downloaded via this Shared Link. </td></tr><tr><td>Webhook Upload</td><td>Select an existing Webhook. Triggers when a file is uploaded via this Webhook. </td></tr><tr><td>Inbound AS2 Station Upload</td><td>Select an existing AS2 Station. Triggers when a file is uploaded via this AS2 Station. </td></tr></tbody></table>


# Runnable Actions

Learn about Runnable Actions that can be shared with other users.

Runnable Actions are workflow methods designed for teams to run secure file workflows without needing to understand the technical details behind them.&#x20;

The triggering user simply needs to select the action and add the file to trigger the pre-configured flow, and does not need to know the flow steps or worry about formatting, encryption, or protocol requirements. &#x20;

## How to use Runnable Actions

With Runnable Actions, admins can build file processing workflows and allow users to trigger them with a simple upload.&#x20;

{% hint style="warning" %}

#### Before you start

To use Runnable Actions, you will need:

* An account with Automations enabled
* One or more other users to share the Automation with. These users must have the **Allow Web Portal** permission enabled.&#x20;
  {% endhint %}

{% stepper %}
{% step %}

### Configure the automation to share

Build an automation to share with other users.&#x20;

1. For the trigger, select **Runnable Action.**&#x20;
2. Add [custom variables](#custom-display-variables) if needed.&#x20;
3. Create the automation flow. This automation should act on a file, as the user will add a file from their web portal to activate it. There is no limit to the number of steps/actions.&#x20;
   {% endstep %}

{% step %}

### Share the workflow as a Runnable Action

After configuring the workflow as an Action, go to the workflow **Settings** tab and go to **User and Group Access**. Select Users/Groups that can view and run the action. The action will appear in their Actions tab when they log in to the web portal.&#x20;
{% endstep %}

{% step %}

### Test the Action

Have the user test the action with a file and ensure that it runs successfully.&#x20;
{% endstep %}
{% endstepper %}

### Custom display variables

When setting up a Runnable Action, you can display context to the user to help them understand how to use the action properly.&#x20;

Click to Add a Variable for the display variable menu to appear.&#x20;

<table><thead><tr><th width="274.59375">Field</th><th>Description</th></tr></thead><tbody><tr><td>Display Name</td><td>The name shown to the user running the action</td></tr><tr><td>Display Description</td><td>A text description that coincides with the variable. </td></tr><tr><td>Custom Variable Name</td><td>A name for your custom variable</td></tr><tr><td>Custom Variable Type</td><td>The variable type/format. Choose from Text, Text List, and JSON List. </td></tr></tbody></table>


# External Webhook

Learn about how to trigger workflows via a Webhook URL

One option to trigger workflows is through a Webhook URL. This is set up slightly differently than other triggers, as it is triggered from outside the platform.&#x20;

### How to trigger a workflow via webhook&#x20;

Instead of configuring the trigger in the builder itself, you configure external webhook triggers in a workflow's settings.&#x20;

{% stepper %}
{% step %}

### Go to workflow settings

Choose the workflow you want to trigger via webhook from the automation list. Go to the Workflow's settings; this is found under the **Settings** tab when modifying a workflow.&#x20;
{% endstep %}

{% step %}

### Enable and configure webhook settings

Check the box to **Enable webhook.** This will generate a Webhook URL that uses the POST method. You can also protect with an Access token.&#x20;

{% hint style="info" %}
Requests with an access token must include 'Authorization: Bearer **< token> '.**
{% endhint %}
{% endstep %}

{% step %}

### Add the webhook in your external platform

Go to the platform that you want to use to trigger the Couchdrop workflow and find a webhook option. Enter the Webhook URL from Couchdrop.&#x20;
{% endstep %}
{% endstepper %}

#### Turning off other trigger methods

If you are exclusively using an external webhook as a trigger, you can set the automation trigger as scheduled with **Never** and set the Automation to Enabled.&#x20;


# Manual Activation

Learn how to trigger a workflow manually.

If you want to only trigger a workflow on demand, you can create the workflow and set it to **Automation Disabled** at the top of the screen, or create a [Scheduled workflow ](/automations/triggers/scheduled-triggers)and set the schedule to **Never.**&#x20;

With either of these methods, simply choose the **Run Now** option in the editor to run the workflow on demand.&#x20;


# Actions

Learn about supported Actions with Transfer Automations in Couchdrop

### What are Actions?

Actions define what Couchdrop does during an Automation.

An action can perform a task such as moving a file, retrieving data, encrypting or decrypting a file, transforming file contents, extracting a variable, sending an email, or connecting to an external API.

### Why use Actions?

Actions are the building blocks of an Automation.

They let you define what should happen after an Automation is triggered, and combine multiple tasks into a single workflow.

For example, an Automation could rename a file, move it to another location, and then send an email after the transfer completes.

### How Actions work

In the Automation Builder, click the **+** icon and select **Actions** to add an action to the workflow.

Actions can be nested in Automations, which means one action depends on the success and output of the previous action. This allows for very complex scenarios in a single flow.

If an action fails, Couchdrop will not continue processing its child actions.

For more information, see [Automation Builder](app://-/~/changes/210/automations/overview.md).

### Action Categories

<table data-search="false"><thead><tr><th>Category</th><th>Description</th></tr></thead><tbody><tr><td><strong>External API Connection</strong></td><td>Connect to an external API configured in <a href="/integrations/custom-api-connector">API Connections</a>.</td></tr><tr><td><strong>Transfer</strong></td><td>Move, copy, rename, or delete files.</td></tr><tr><td><strong>Retrieve Data</strong></td><td>Retrieve data for use elsewhere in the workflow.</td></tr><tr><td><strong>Operations</strong></td><td>Perform file operations such as compression.</td></tr><tr><td><strong>Encryption</strong></td><td>Encrypt or decrypt files.</td></tr><tr><td><strong>Transform</strong></td><td>Change the contents of a file.</td></tr><tr><td><strong>Extract Variables</strong></td><td>Extract values for use by other actions.</td></tr><tr><td><strong>Email</strong></td><td>Perform actions related to email.</td></tr><tr><td><strong>Other</strong></td><td>General workflow actions.</td></tr></tbody></table>

Each category is covered in more detail on its own documentation page.

### Requesting a New Action

If the action you need is not available, select **Request New Action or Condition** in the Automation Builder or submit a request through our [contact methods](broken://pages/8w72LN9IbLUy6081CIId).


# Transfer Actions

Learn about the Transfer Action category in Automations.

Transfer actions are one of the primary use cases for workflows in Couchdrop. This category of actions contains actions for moving, transferring, and deleting files.&#x20;

These transfer actions can also involve external parties, such as sending a file to a remote SFTP server.&#x20;

### Available Transfer Actions

<table><thead><tr><th width="216">Action</th><th>Description</th></tr></thead><tbody><tr><td>Rename File</td><td>Rename a file. The file name can contain any <a href="/automations/variables">automation variable</a>.</td></tr><tr><td>Move File</td><td>Move the original file to a new destination. </td></tr><tr><td>Transfer/Copy</td><td>Make a copy of the file at another location. You choose whether to always overwrite files with the same name or only overwrite files with the same name if the modificaiton time is newer. </td></tr><tr><td>Delete File</td><td>Delete the file the workflow is acting on. </td></tr></tbody></table>


# Retrieving Data

Learn about the Retreive Data Action category in Automations.

Retrieve Data actions allow you list and select data and obtain data for use in other parts of the workflow.&#x20;

### Available Retrieve Data Actions

<table><thead><tr><th width="216">Action</th><th>Description</th></tr></thead><tbody><tr><td>Select File</td><td>Select a file and execute sub-actions on the selected file. </td></tr><tr><td>List files in folder</td><td>Select a folder to list and select files from, with the option to include all files in folders and subfolders. </td></tr><tr><td>Download File Via HTTP(s)</td><td>Configure a file download via HTTP(s)</td></tr></tbody></table>


# Operations

Learn about the Operations Action category in Automations.

Operations actions are actions that involve compression and archival.&#x20;

### Available Operations Actions

<table><thead><tr><th width="216">Action</th><th>Description</th></tr></thead><tbody><tr><td>Compress File</td><td>Create a compressed archive of the file using zip, gzip, or bz2</td></tr><tr><td>Decompress File</td><td>Decompress file using zip, gzip or bz2</td></tr><tr><td>Unarchive (Multiple Files)</td><td>Unarchive a .zip file to the specified path</td></tr></tbody></table>


# Encryption and Decryption

Learn about the Encryption Action category in Automations.

One standout feature of Couchdrop is that you can encrypt and decrypt files automatically as part of a workflow, without requiring separate software for these tasks.&#x20;

## Encryption keys in Couchdrop

In order to use Encryption as part of a workflow, you need to create and store encryption keys in Couchdrop.&#x20;

From the admin panel, you can add existing encryption keys to the account or generate keys (for AES only). Key storage and configuration is found in the Admin panel under **Administration> Keys.**

{% hint style="info" %}
&#x20;For more information on encryption key configuration, see [Encryption Keys.](/administration/encryption-keys)&#x20;
{% endhint %}

### Supported key types

<table><thead><tr><th width="215.2421875">Encryption Key</th><th>Requirements</th></tr></thead><tbody><tr><td>AES</td><td>Name for the key. Optional Passphrase. This can be generated in Couchdrop.</td></tr><tr><td>PEM</td><td>Name for the key. Choose <strong>Public</strong> or <strong>Private</strong> key and add the formatted key. This can NOT be generated in Couchdrop. </td></tr><tr><td>PGP</td><td>Name for the key. Choose Public or Private key and add the PGP ASCII Armored key. This can NOT be generated in Couchdrop.</td></tr></tbody></table>

## Available Encryption Actions

Once you have the keys added to Couchdrop, you can use Encryption Actions. All Encryption Actions require you to specify the key to use as part of the Action configuration.&#x20;

<table><thead><tr><th width="216">Action Category</th><th>Description</th></tr></thead><tbody><tr><td>PGP Encrypt</td><td>Encrypt and sign a file with a PGP key</td></tr><tr><td>PGP Decrypt</td><td>Decrypt and verify a file encrypted and signed with PGP</td></tr><tr><td>AES Encrypt</td><td>Encrypt a file with AES</td></tr><tr><td>AES Decrypt</td><td>Decrypt a file encrypted with AES</td></tr></tbody></table>

## Frequently asked questions

<details>

<summary>I don't have encryption keys. How do I generate them? </summary>

Encryption keys can be generated in several ways. See our guides on [Using SFTP/SSH keys](/walkthroughs/using-sftp-ssh-keys) for walkthroughs on creating keys in Windows, MacOS, or Linux.&#x20;

</details>

<details>

<summary>How do I add a passphrase to my keys? </summary>

Passphrases can be added for extra security during key generation. See [How to encrypt/decrypt](/walkthroughs/using-sftp-ssh-keys/how-to-encrypt-decrypt-a-private-key) a private key for details.&#x20;

</details>

<details>

<summary>Can I have multiple different keys in my account? </summary>

Yes, you can add as many encryption keys as you need. You will specify the one you want to whem modifying a workflow.&#x20;

</details>

<details>

<summary>Can I encyrpt/decrypt files outside of workflows? </summary>

No. Encryption and decryption actions are specific to workflows.&#x20;

</details>


# Extract Variables

Learn about the Extract Variables Action category in Automations.

Extract Variables Actions allow you to extract a variable from a file or filename that can be used for actions later in the workflow.

## How to use Extract Variables Actions

Extract Variables actions have specific circumstances and conditions required in order to be used. Before a variable can be used in actions, it must first be extracted and defined. Once the variable is successfully defined, it will appear in the [custom variables](/automations/variables#custom-variables) list in later actions.&#x20;

{% hint style="warning" %}
We recommend performing Extract Variables Actions as early as possible to ensure they will be available where needed.&#x20;
{% endhint %}

### Required fields

Extract Variables Actions require the same fields and have an option to test them directly during creation.

<table><thead><tr><th width="214.9453125">Field</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>A name for the variable. This must be unique. </td></tr><tr><td>Regex pattern</td><td>Define a regex pattern for extracting a variable.</td></tr><tr><td>Description (Optional)</td><td>Describe the variable and what it does. This field is for internal use only.</td></tr><tr><td>Test your Regex (Optional)</td><td>Enter an example filename to test match your regex against, and see what would be extracted.</td></tr></tbody></table>

## Available Extract Variables Actions

<table><thead><tr><th width="216">Action Category</th><th>Description</th></tr></thead><tbody><tr><td>Extract Variable from Filename</td><td>Extract a custom variable using a regex pattern for later use</td></tr><tr><td>Extract Variable from File</td><td>Extract an Automation Variable from a file to be used in other actions</td></tr></tbody></table>


# Transform Files

Learn how to transform files with Couchdrop Automations

## Overview

Transform actions let you read data from a file into Automation Variables or create a new file using data already available within a workflow. This makes them useful for lightweight ETL and EDI-style workflows, where structured data needs to be parsed, evaluated, and written into a new file format or structure.

For example, you can parse rows from a CSV file into a variable, use those values in later actions, and then write selected Automation Variables into a new file.

### Available Transform Actions

<table><thead><tr><th width="241.58203125">Action</th><th>Description</th></tr></thead><tbody><tr><td>Parse File</td><td>Parse a CSV or XML file into an Automation Variable that can be used by later workflow actions.</td></tr><tr><td>Write to File</td><td>Create a new CSV, XML, or text-based file using Automation Variables and optional <a href="#jinja-examples">Jinja</a> logic.</td></tr></tbody></table>

### Variables

Both transform actions can work with [Automation Variables](/automations/variables).

**Parse File** creates a new variable from the contents of a CSV or XML file. **Write to File** consumes variables and writes their values into a newly created file.

Standard workflow variables are available, [custom variables](/automations/variables#custom-variables) created by other workflow actions can also become available where supported.

{% hint style="info" %}
When using **Parse File**, place the action before any action that needs the parsed variable. Actions earlier in the workflow cannot access variables that have not yet been created.
{% endhint %}

## Parse File

The **Parse File** action reads the contents of a file and stores the parsed data as an Automation Variable.

Configure this action as early as possible in your workflow. The variable created by **Parse File** is only available to actions that run after it. If the Parse File action fails, subsequent actions will not execute.

{% hint style="info" %}
The maximum file size for parsing is **10 MB**. CSV files are limited to **50,000 rows**.
{% endhint %}

### Parsing CSV files

Select **CSV** as the file type to parse a CSV file.

Configure:

* **Variable name** — Enter a unique name for the Automation Variable. The parsed CSV is stored as an Automation Variable list.
* **Column delimiter** — Enter the character used to separate values within the CSV.
* **File Has Headers** — Enable this if the first row of the CSV contains column names.
* **Column headers** — If the CSV does not contain headers, you can define them manually using **Add CSV Column Headers** and **Add Header**.

If no column headers are supplied, Couchdrop generates default field names such as `column_0`.

The resulting variable is a list, so you can optionally use a **Loop** node to run actions for each item within that list.

### Parsing XML files

Select **XML** as the file type to parse an XML file.

Enter a unique **Variable name** for the parsed content. Couchdrop stores the resulting value as an Automation Variable JSON object that can be referenced by later actions.

### Using parsed variables

Once the file has been parsed, later actions can access its data through **Add Automation Variable**.

For CSV files, the variable contains a list of parsed rows. For XML files, the variable contains a JSON object representing the parsed file.

## Write to File

The **Write to File** action creates a new file using values available within the workflow.

The destination file must not already exist.

Configure:

* **File path** — Select the location and filename Couchdrop should create.
* **File type** — Select **CSV**, **XML**, or **Other**.
* **File content** — Define the content that Couchdrop should write to the file.

You can use **Add Automation Variable** to insert values from the workflow and **Add Jinja Block** when the output requires looping or other templating logic.

### Writing CSV files

Select **CSV**, then enter the output in CSV format.

Automation Variables can be inserted into the CSV content, allowing values generated earlier in the workflow to be written into the new file.

For more complex output, use Jinja to work with lists or other structured Automation Variables.

### Writing XML files

Select **XML**, then enter the XML structure that should be written to the new file.

For example, a Jinja loop can generate repeated XML elements from an Automation Variable list:

```xml
<WrapperTag>
    {% for item in {CUSTOM.Variable.ListField} %}
    <ItemTag>{{ item.Field }}</ItemTag>
    {% endfor %}
</WrapperTag>
```

In this example, Couchdrop loops through the values in the supplied Automation Variable and writes an `<ItemTag>` for each item.

### Writing JSON and other file types

Select **Other** to create a text-based file without using the CSV or XML-specific editors.

Enter the required text and optionally include Automation Variables or Jinja blocks to generate the content dynamically.

## Jinja Blocks

{% hint style="info" %}
Jinja is a templating language that lets you dynamically generate file content using variables, loops, and conditional logic.

In Couchdrop, you can use Jinja in Write to File actions to work with Automation Variables and build structured CSV, XML, or text output.

For more information about Jinja syntax and templating concepts, see the [official Jinja documentation](https://jinja.palletsprojects.com/).
{% endhint %}

Jinja blocks can be used in **Write to File** actions to control how Automation Variables are written into a new file.

Select **Add Jinja Block** to choose from the available block types.

#### Available Jinja Blocks

| Block                | Description                                                                            |
| -------------------- | -------------------------------------------------------------------------------------- |
| Jinja Variable Block | Insert an Automation Variable into the file content.                                   |
| Loop Block           | Loop through a list, writing content for each item in the list.                        |
| If Block             | Write content if a condition evaluates to `True`.                                      |
| If-Else Block        | Write content if a condition evaluates to `True`; otherwise write alternative content. |
| If-Elif-Else Block   | Write content based on multiple conditions.                                            |

### Loop Block

Use a **Loop Block** when an Automation Variable contains a list and you want to write content for each item.

For example:

```jinja
{% for item in {CUSTOM.Customers} %}
{{ item.Name }},{{ item.Email }}
{% endfor %}
```

If `{CUSTOM.Customers}` contains multiple items, Couchdrop writes one line for each item in the list.

A loop can also be used to generate repeated XML elements:

```xml
<Customers>
{% for item in {CUSTOM.Customers} %}
    <Customer>
        <Name>{{ item.Name }}</Name>
        <Email>{{ item.Email }}</Email>
    </Customer>
{% endfor %}
</Customers>
```

### If Block

Use an **If Block** when content should only be written when a condition evaluates to `True`.

For example:

```jinja
{% if item.Status == "Active" %}
{{ item.Name }},{{ item.Email }}
{% endif %}
```

In this example, the content is only written when the value of `Status` is `Active`.

### If-Else Block

Use an **If-Else Block** when you want one value written when a condition is true and an alternative value when it is false.

For example:

```jinja
{% if item.Status == "Active" %}
Active
{% else %}
Inactive
{% endif %}
```

### If-Elif-Else Block

Use an **If-Elif-Else Block** when the output depends on several possible conditions.

For example:

```jinja
{% if item.Status == "Active" %}
Active
{% elif item.Status == "Pending" %}
Pending
{% else %}
Inactive
{% endif %}
```

Couchdrop evaluates each condition in order and writes the content associated with the first matching condition. If none of the preceding conditions match, the content in the `else` block is written.

### Combining Loops and Conditions

Jinja blocks can be used together when generating content from a list.

For example, you can loop through parsed CSV rows and only write rows matching a condition:

```jinja
Name,Email
{% for item in {CUSTOM.Customers} %}
{% if item.Status == "Active" %}
{{ item.Name }},{{ item.Email }}
{% endif %}
{% endfor %}
```

This example loops through the `{CUSTOM.Customers}` list and writes a CSV row only when the item's `Status` value is `Active`.

{% hint style="info" %}
The fields available within a Jinja block depend on the Automation Variable being used. When working with a CSV parsed using **Parse File**, field names correspond to the CSV headers configured or detected during parsing.
{% endhint %}


# Email Files

Learn about the Email Files Action category in Automations.

## Overview

As part of a workflow, you can email a file directly from Couchdrop as an attachment or create a [Shared Link](/file-sharing/shared-links) and email the link details that lead to the file. For sensitive data, we recommend the latter due to increased security and controls.&#x20;

{% hint style="warning" %}
Couchdrop has several methods of transferring files that are more secure than email. We recommend using other methods unless there are no other options.&#x20;
{% endhint %}

### How Couchdrop emails files

When using either email action, Couchdrop will generate the email from <noreply@couchdrop.io>. The email will use your organization name in the subject. See below for an example in Gmail.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F8N63cfEfhEYAFINy6AqP%2FAutomation%20Email.png?alt=media&amp;token=6371f001-9ead-4e48-91a8-f1ab6650149f" alt=""><figcaption></figcaption></figure>

## Available Email Actions

<table><thead><tr><th width="216">Action Category</th><th>Description</th></tr></thead><tbody><tr><td>Attach File and Email</td><td>Send file via email attachment to a custom email. </td></tr><tr><td>Create Shared Link and Email</td><td>Create a Couchdrop Shared Link and email link instructions.</td></tr></tbody></table>

{% hint style="info" %}

## Sending a file to multiple recipients

When using an Email Files Action, you define an email address that the file or Shared Link will be sent to. **You can only enter one email address per action.**&#x20;

If you need to email multiple recipients, you can use variables as part of the email address. By defining [custom variables](/automations/variables#custom-variables) earlier in the workflow, you can input them into this field to send files to different emails depending on parameters like filename, user, etc.&#x20;
{% endhint %}

### Attach File and Email Action

The **Attach File and Email** action sends the file being processed by the workflow as an email attachment.

This is useful when a workflow needs to deliver a file directly to a recipient after an earlier action has completed.

You configure the recipient email address when adding the action. The recipient can be a fixed email address or an **Automation Variable**, allowing the destination to be determined by values available in the workflow.

Only one email address can be configured per action. If the same file needs to be sent to multiple recipients, add additional email actions.

Because the file is sent as an email attachment, consider whether email is appropriate for the data being transferred. For sensitive files, [**Create Shared Link and Email**](#create-shared-link-and-email-action) provides additional controls without placing the file itself in the recipient's mailbox.

### Create Shared Link and Email Action

The **Create Shared Link and Email** action creates a [Couchdrop Shared Link](/file-sharing/shared-links) for the file being processed and emails that link to a recipient.

Instead of attaching the file directly to the email, the recipient receives a link they can use to access it. This is generally preferable when you want to avoid sending the file itself through email.

You configure the recipient email address and can use an **Automation Variable** when the destination needs to change based on the workflow.

You can also configure an [**Expiry**](/file-sharing/shared-links#configure-access-controls) for the Shared Link. Once the configured period has passed, the link expires and can no longer be used to access the file.

As with **Attach File and Email**, one recipient can be configured per action.

### Create Custom Email Action

The **Create Custom Email Action** lets you send a custom email from within a workflow branch.

This is useful when you want to notify someone that a specific part of a workflow has completed, or when a branch represents an exception or condition that needs attention.

For example, you can use a Custom Email Action to:

* Notify a team when files have been [moved to a specific location](/automations/actions/transfer-actions).
* Send an alert when a [conditional branch](/automations/conditional-filtering) is triggered.
* Confirm that an exception condition has been met, such as checking the modification time of a file in a location before continuing.
* Send workflow context such as the **User**, **Filename**, or custom variables extracted earlier in the workflow.

You can configure the email recipient, subject, and body, and use [**Automation Variables**](/automations/variables) in each field to include values from the workflow at that point.

Because Custom Email Actions can be added to branches, the notification can be tied to a specific workflow outcome rather than being sent every time the workflow runs.


# Notification Actions

Learn how to send custom notifications from Couchdrop Automations

## Overview

Custom Notification actions let you send a notification from within an Automation Workflow. Because the action can be added to a specific branch, notifications can be tied to a particular workflow outcome, condition, or exception rather than being sent every time the workflow runs.

For example, you can notify a team when files have been moved to a specific location, alert someone when a [conditional branch](/automations/conditional-filtering) is triggered, or include workflow context such as the **User**, **Filename**, or custom variables created earlier in the workflow.

{% hint style="info" %}
Because Custom Notification Actions can be added to branches, the notification can be tied to a specific workflow outcome rather than being sent every time the workflow runs.
{% endhint %}

### Available Methods

<table><thead><tr><th width="137.3125">Channel</th><th>Decription</th></tr></thead><tbody><tr><td>Email</td><td>Send a custom email notification to one or more recipients. This is the default notification method.</td></tr><tr><td>Slack</td><td>Send a custom notification to a selected Slack channel using a configured Slack integration.</td></tr></tbody></table>

## Email notifications

Select **Email** to send a custom email from the workflow.

You can configure the:

* **Recipient**
* **Subject**
* **Body**

[Automation Variables](/automations/variables) can be used in these fields to include information available at that point in the workflow, such as filenames, users, or values extracted by earlier actions.

## Slack notifications

Select **Slack** to send the notification to a Slack channel.

Couchdrop uses its configured Slack integration to retrieve available channels and send workflow messages. Select the destination channel and enter the message that should be sent.

Automation Variables can also be inserted into the Slack message so the notification includes context from the workflow.

Slack notifications are useful for operational workflows where the people responsible for responding to an event already work from a shared Slack channel.

{% hint style="info" %}
A [Slack integration](/integrations/business-systems/slack) must be configured before Slack can be selected as the notification destination.
{% endhint %}


# Other Actions

<table><thead><tr><th width="216">Action Category</th><th>Description</th></tr></thead><tbody><tr><td>Move file</td><td>Copy the file to a new location and delete the file from the source location</td></tr><tr><td>Transfer/Copy File</td><td>Copy the file to a new location, retaining the original file in the source</td></tr><tr><td>Delete file</td><td>Delete the file </td></tr><tr><td>Compress File</td><td>Create a compressed archive of the file using zip, gzip, or bz2</td></tr><tr><td>Decompress File</td><td>Decompress file using gzip or bz2</td></tr><tr><td>Unarchive (Multiple Files)</td><td>Decompress a .zip file</td></tr><tr><td>PGP Encrypt</td><td>Encrypt and sign a file with a PGP key</td></tr><tr><td>PGP Decrypt</td><td>Decrypt and verify a file encrypted and signed with PGP</td></tr><tr><td>AES Encrypt</td><td>Encrypt a file with AES</td></tr><tr><td>AES Decrypt</td><td>Decrypt a file encrypted with AES</td></tr><tr><td>Parse File</td><td>Parse a file into an Automation Variable to be used in other actions</td></tr><tr><td>Write to File</td><td>Writes to the file on the specified path. </td></tr><tr><td>Extract Variable from Filename</td><td>Extract a custom variable using a regex pattern for later use</td></tr><tr><td>Extract Variable from File</td><td>Extract an Automation Variable from a file to be used in other actions</td></tr><tr><td>Attach File and Email</td><td>Send file via email attachment</td></tr><tr><td>Create Shared Link and Email</td><td>Create a Couchdrop Shared Link and email link instructions</td></tr><tr><td>Create Empty File</td><td>Create a new empty marker file in a location specified</td></tr><tr><td>Create a folder</td><td>Create a new folder at the location specified</td></tr><tr><td>Create a group</td><td>Create a Couchdrop group</td></tr><tr><td>Set Folder Permissions</td><td>Set the user or group permissions of a specified folder</td></tr><tr><td>Import into Database</td><td>Map structured file and upload to database</td></tr><tr><td>Push file to queue</td><td>Push file, with optional metadata, to a queue</td></tr><tr><td>Push event to queue</td><td>Push file information, with optional metadata, to a queue</td></tr><tr><td>Fire Webhook</td><td>Fire an HTTP webhook with metadata regarding the file object to the specified URL endpoint</td></tr><tr><td>Download File Via HTTP(s)</td><td>Configure a file download via HTTP(s)</td></tr></tbody></table>


# Conditional Filtering

Learn about conditional filtering for Automations

## Overview

Conditional filtering lets you control how files move through a Couchdrop Automation based on specific conditions.

Conditions can evaluate properties such as the filename, modification time, directory, triggering user or group, and Automation Variable values. Based on the result, the workflow can continue down a **True** or **False** branch.

This allows a single workflow to handle multiple scenarios without creating separate Automations for each outcome.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FQe9ybPEHjhi7T6XWkLOg%2Fimage.png?alt=media&amp;token=80b95cd8-6994-4baa-aae2-78ec2a1f0770" alt=""><figcaption></figcaption></figure>

### Adding a condition

Conditions are configured in the Automation builder.

Click the **+** where you want to add the condition, then select **Conditions**.

The condition evaluates the current file or workflow context and routes processing through either the **True** or **False** branch.

### True and False branches

Conditions support separate **True** and **False** branches.

When Couchdrop evaluates a condition:

* The **True** branch runs when the condition matches.
* The **False** branch runs when the condition does not match.

Each branch can contain its own actions and additional workflow steps.

For example, if a **Filename matches** condition checks for `*.txt`:

* Files matching `*.txt` can follow the **True** branch and be attached to an email.
* Files that do not match can follow the **False** branch and perform a different action, such as deleting the file.

This allows a single workflow to define what should happen for both outcomes of a condition.

## Available conditions

Couchdrop supports the following condition types:

<table data-search="false"><thead><tr><th>Condition</th><th>Description</th></tr></thead><tbody><tr><td><strong>Filename matches</strong></td><td>Matches the filename against a pattern.</td></tr><tr><td><strong>File modtime</strong></td><td>Checks whether the file's last modification time matches the configured condition.</td></tr><tr><td><strong>Directory matches</strong></td><td>Matches the directory against a pattern.</td></tr><tr><td><strong>User matches</strong></td><td>Matches the user who caused the File Action to trigger.</td></tr><tr><td><strong>Group matches</strong></td><td>Checks whether the user who caused the File Action to trigger belongs to a specified group.</td></tr><tr><td><strong>Automation Variable matches</strong></td><td>Compares an Automation Variable against a text pattern.</td></tr><tr><td><strong>Complex Condition</strong></td><td>Evaluates multiple conditions together in a single step.</td></tr></tbody></table>

### Filename matches

Use **Filename matches** when the workflow should branch based on a filename pattern.

For example, you can configure a condition to match `*.txt`. Files matching the pattern follow the **True** branch, while files that do not match follow the **False** branch.

### File modtime

Use **File modtime** to evaluate a file based on its last modification time.

File modification conditions support:

* **Before**
* **After**
* **In the last**
* **Older than**

For example, a condition configured as **Older than 7 days** will evaluate as True for files modified more than seven days ago.

### Directory matches

Use **Directory matches** when the workflow should branch based on the directory containing the file.

The directory is matched against the configured pattern. Files in matching directories follow the **True** branch, while files that do not match follow the **False** branch.

### User matches

Use **User matches** to evaluate the user who caused the File Action to trigger.

This allows subsequent actions to differ depending on which user triggered the workflow.

### Group matches

Use **Group matches** to check whether the user who caused the File Action to trigger belongs to a specified group.

The workflow can then route the file through the appropriate **True** or **False** branch based on group membership.

### Automation Variable matches

Use **Automation Variable matches** when the workflow should branch based on the value of an Automation Variable.

When creating the condition, configure:

* **Select Automation Variable to compare**: Select the Automation Variable whose value you want to evaluate. Automation Variables must contain text to be compared.
* **Please enter the text to match against**: Enter the text that the selected variable should match.
* **Regex pattern**: Optionally use a regular expression when matching the variable.
* **Test your regex**: Enter example text to verify whether your regular expression matches as expected.

The condition evaluates the selected Automation Variable and routes the workflow through the **True** or **False** branch based on the result.

## Complex Conditions

Use a **Complex Condition** when you need to evaluate multiple conditions together before deciding which branch of a workflow should run.

A Complex Condition contains two or more individual conditions and combines their results using either **And Condition** or **Or Condition**.

When creating a Complex Condition, enter a **Label**, choose the **Condition type**, then add the conditions you want to evaluate.

### And Condition

Choose **And Condition** when **every condition must match**.

For example, you could configure:

* **Filename extension** **Matches** `txt`
* **Filename** **Matches** `*finance*`

Both conditions must match for the Complex Condition to return **True**. If either condition does not match, the workflow follows the **False** branch.

### Or Condition

Choose **Or Condition** when **any one of the conditions can match**.

For example, you could configure several filename conditions for different expected file names or patterns.

If at least one condition matches, the Complex Condition returns **True**. The workflow follows the **False** branch only when none of the conditions match.

### Pattern matching

Filename and directory conditions support wildcard pattern matching:

| Pattern  | Matches                                     |
| -------- | ------------------------------------------- |
| `*`      | Any number of characters                    |
| `?`      | Any single character                        |
| `[seq]`  | Any single character contained in `seq`     |
| `[!seq]` | Any single character not contained in `seq` |

Conditions using **Automation Variable** use regular expression pattern matching instead.

## Using conditions in workflows

Conditions can be used anywhere in an Automation where different processing should occur based on the file or workflow context.

Because both **True** and **False** branches can contain actions, conditions can be used to build workflows that handle multiple outcomes within the same Automation rather than requiring a separate workflow for each scenario.


# Variables

Learn about variable use in Transfer Automations

## Overview

Variables let you dynamically build filenames and folder paths in Couchdrop Automations.

Instead of entering a fixed filename or destination path, you can use variables that are replaced with values from the file, the user, the workflow event, or the current timestamp when the Automation runs.

For example, you can use variables to:

* Keep the original filename when moving or copying a file
* Create folders based on the current year, month, or day
* Include the uploading user in a destination path
* Reference information from the event that triggered the Automation
* Extract values from filenames or file contents and reuse them in later actions

Variables can be added anywhere an Automation action supports a filename or path.

{% hint style="info" %}
You can also create Custom Variables using the Extract Variable from Filename action. For more details, see [Supported Actions](/automations/actions#available-actions).
{% endhint %}

## Default variables

The following variables are available for automations

<table><thead><tr><th width="262.88671875">Key</th><th width="187.765625">Value Example</th><th>Description</th></tr></thead><tbody><tr><td>{USER}</td><td>michael.lawson</td><td>The user who was uploading the file</td></tr><tr><td>{EXISTING_NAME}</td><td>test.txt</td><td>The current filename including the extension</td></tr><tr><td>{EXISTING_NAME_NOEXT}</td><td>test</td><td>The current filename without the extension</td></tr><tr><td>{EXISTING_NAME_EXT}</td><td>.txt</td><td>The extension only of the current filename</td></tr><tr><td>{YYYY}</td><td>2023</td><td>The current timestamp year</td></tr><tr><td>{YY}</td><td>23</td><td>The current timestamp year in shortform</td></tr><tr><td>{MMM}</td><td>AUG</td><td>The month in a human readable format</td></tr><tr><td>{MM}</td><td>03</td><td>The month in a numerical format</td></tr><tr><td>{DD}</td><td>02</td><td>The day of the month</td></tr><tr><td>{TIME_HH}</td><td>23</td><td>Hour in 24 hour time</td></tr><tr><td>{TIME_MM}</td><td>30</td><td>Minutes of the hour</td></tr><tr><td>{TIME_SS}</td><td>24</td><td>Seconds on the minute</td></tr><tr><td>{TIMESTAMP}</td><td>1711330141</td><td>Unix timestamp. Number of seconds since Jan 1st 1970.</td></tr><tr><td>{TIMESTAMP_MS}</td><td>1659992501</td><td>Timestamp with milliseconds when the workflow was triggered</td></tr><tr><td>{EVENT.EVENT_TYPE}</td><td>download</td><td>Event type that executed the workflow</td></tr><tr><td>{EVENT.SYSTEM}</td><td>webportal</td><td>Specifies the channel where the workflow was originated</td></tr><tr><td>{EVENT.STORAGE_ENGINE}</td><td>googledrive</td><td>Storage type name where the workflow was originated</td></tr><tr><td>{EVENT.STORAGE_ENGINE_ID}</td><td>4c0a140-9177-4581-98d3-4ea7215364aa</td><td>Unique identifier of the configured storage where the workflow was originated</td></tr><tr><td>{EVENT.TIMESTAMP}</td><td>1659442224.463902</td><td>Raw timestamp value of the event triggered in the workflow</td></tr><tr><td>{EVENT.EVENT_ID}</td><td>bef26414-b7c1-41de-986e-98de45abcd</td><td><p></p><p>Unique identifier of the event triggered every time a workflow is executed. All actions configured int he same workflow will share the same event ID. </p></td></tr><tr><td>{EVENT.additional_info.required_fields.&#x3C;FIELD_NAME>}</td><td></td><td>Substitute &#x3C;field_name> with the name of the Web Inbox required field to access data provided on upload. </td></tr></tbody></table>

{% hint style="info" %}

### Example

A destination path such as:

`/archive/{YYYY}/{MM}/{EXISTING_NAME}`

could resolve to:

`/archive/2026/08/test.txt`

This lets the Automation organize files dynamically without requiring a separate workflow for each date or filename.
{% endhint %}

## Custom variables

Custom variables let you extract information from a filename or from the contents of a file and use the extracted value in later Automation actions.

Couchdrop provides two actions for creating custom variables:

* **Extract Variable from Filename**
* **Extract Variable from File**

The extraction action must run before any action that uses the custom variable.

{% hint style="warning" %}
If the regular expression does not return a match, actions after the extraction action will not be executed. Place variable extraction actions as early as possible in the workflow.
{% endhint %}

### Extract Variable from Filename

**Extract Variable from Filename** uses a regular expression to extract a value from the filename and make that value available to later actions.

When creating the action, configure:

| Setting             | Description                                                                                                 |
| ------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Variable name**   | Enter a unique name for the variable.                                                                       |
| **Regex pattern**   | Enter the regular expression Couchdrop will use to extract the value from the filename.                     |
| **Description**     | Optionally describe what the variable represents.                                                           |
| **Test your regex** | Enter an example filename to check what value the regular expression will extract. The first match is used. |

After the variable has been created, use **Add Automation Variable** in a supported later action to insert it.

{% hint style="info" %}

#### Example

If incoming files use a naming convention such as:

`customer-4821-invoice.pdf`

you could use **Extract Variable from Filename** with a regular expression that matches `4821`, save it as a custom variable, and then reference that value in later actions.
{% endhint %}

### Extract Variable from File

**Extract Variable from File** works in the same way but applies the regular expression to the contents of the file rather than its filename.

When creating the action, configure:

| Setting             | Description                                                                                          |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| **Variable name**   | Enter a unique name for the variable.                                                                |
| **Regex pattern**   | Enter the regular expression Couchdrop will use to extract the value from the file.                  |
| **Description**     | Optionally describe what the variable represents.                                                    |
| **Test your regex** | Enter example text to check what value the regular expression will extract. The first match is used. |

The extracted value can then be added to supported actions later in the workflow using **Add Automation Variable**.

### Using custom variables after extraction

Custom variables are only available after their extraction action has successfully run.

For example, a workflow could:

1. Use **Extract Variable from Filename** to identify a value in an incoming filename.
2. Store the result as an Automation variable.
3. Use that variable in the destination path or filename of a later action.

This allows one Automation to dynamically route or rename files based on information contained in the filename or file itself.


# Notifications

Learn about notifications as part of automations

## Overview

Notifications let you send email alerts when a workflow succeeds or fails.

They are useful when someone needs visibility into an automated process without reviewing the workflow execution logs. For example, you can notify an operations team when a transfer fails or confirm to a recipient that a scheduled process completed successfully.

Notifications are always the final node in a workflow and report the outcome of the full workflow.

## Adding a notification

In the Automation Builder, click the **+** icon, then select **Notifications**.

Configure the notification using the following settings:

<table><thead><tr><th width="228.640625">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Send email on success</strong></td><td>Sends the notification when the preceding workflow action succeeds.</td></tr><tr><td><strong>Send email on failure</strong></td><td>Sends the notification when the preceding workflow action fails.</td></tr><tr><td><strong>Recipient Email Address</strong></td><td>The email address that will receive the notification. Enter multiple addresses as a comma-separated list.</td></tr></tbody></table>

You can enable both **Send email on success** and **Send email on failure** if the recipient should be notified regardless of the outcome.

{% hint style="info" %}

## Branch-level notifications

Standard notifications report the final result of the full workflow. They cannot notify recipients when a specific branch runs.

To send an alert from a particular branch, add a [Custom Notification action](/automations/actions/notification-actions) to that branch. The notification is sent when the workflow reaches the action, giving you control over which condition triggers the alert.

This is particularly useful with [error handling](/automations/error-handling). Add a Custom Notification action to an error branch to notify the appropriate recipients when that branch runs, rather than waiting for a general notification at the end of the workflow.
{% endhint %}

### Recipient email addresses

Enter the email address that should receive the notification in **Recipient Email Address**.

To notify multiple recipients, separate each email address with a comma.

For example:

`operations@example.com, finance@example.com`

## Email template

Couchdrop uses a pre-filled email template for workflow notifications. The exact content varies depending on the event, but notifications follow a structure similar to:

**Subject:** `[Company name] - [Event] notification`

> Hi there,
>
> Just wanted to let you know that your file `[full file path]` pulled by `[username]` has been `[event]` from `[directory]`.
>
> If you require support or assistance with this please email us on <support@couchdrop.io> and someone will be in contact shortly.
>
> Thank you,
>
> Team @ Couchdrop

The company name shown in the subject is taken from the company name configured in Couchdrop Admin settings.

## When to use notifications

<table><thead><tr><th width="327.44140625">Requirement</th><th>Use</th></tr></thead><tbody><tr><td>Alert when a workflow fails</td><td><strong>Notification</strong> with <strong>Send email on failure</strong> enabled</td></tr><tr><td>Alert when a workflow completes successfully</td><td><strong>Notification</strong> with <strong>Send email on success</strong> enabled</td></tr><tr><td>Notify several stakeholders about the final workflow result</td><td><strong>Notification</strong> with multiple addresses entered in <strong>Recipient Email Address</strong></td></tr><tr><td>Send an alert when a specific workflow branch runs</td><td><a href="https://docs.couchdrop.io/~/changes/215/automations/actions/email-files#create-custom-email-action"><strong>Custom Notification action</strong></a> within that branch</td></tr><tr><td>Alert recipients when an error handling branch runs</td><td><a href="https://docs.couchdrop.io/~/changes/215/automations/actions/email-files#create-custom-email-action"><strong>Custom Notification action</strong></a> within the error branch</td></tr></tbody></table>

For more detailed information about an individual workflow run, use the **Automation execution logs**, which provide the full execution details and error information.


# Error Handling

Learn how to add Error Branches to Couchdrop Automations

## Introduction

A failed [Workflow Action](/automations/actions) can require an immediate response. You may need to alert someone, move a file to an alternative storage location, or run another action when expected processing fails.

Error Branches let you define this response within [Couchdrop Automations](/automations/overview). When a Workflow Action fails, Couchdrop can follow its Error Branch and run failover actions or notifications attached to that branch.

## How Error Branches work

An Error Branch creates a separate path from a Workflow Action. Couchdrop uses this path when the originating action fails.

You can use an Error Branch to:

* Send a [custom email](/automations/notifications#overview) when Couchdrop cannot retrieve or move a file.
* Move a file to alternative storage when the intended location is inaccessible.
* Run follow-up actions or notifications when expected processing fails.

{% hint style="info" %}
An Error Branch begins at a specific Workflow Action. Attach the branch to the action whose failure you want to handle.
{% endhint %}

## Adding an Error Branch

In the Workflow builder, hover over the output of an action node and select **Error**.

Couchdrop creates an Error Branch from that action. Add the actions or notifications that should run when the original action fails.

## Example failure responses

| Workflow failure                   | Error Branch response                            |
| ---------------------------------- | ------------------------------------------------ |
| Couchdrop cannot retrieve a file   | Send an email alert                              |
| A file cannot be moved             | Notify the person responsible for the Workflow   |
| A storage location is inaccessible | Move the file to an alternative storage location |
| Expected processing fails          | Run a follow-up action or notification           |

## Frequently asked questions

<details>

<summary>What causes an Error Branch to run?</summary>

An Error Branch runs when its originating Workflow Action fails.

</details>

<details>

<summary>Can an Error Branch send a notification?</summary>

Yes. You can add a [Send Email action](/automations/actions/email-files#create-custom-email-action) to the Error Branch to alert someone when the originating action fails.

</details>

<details>

<summary>Can an Error Branch move files elsewhere?</summary>

Yes. An Error Branch can move files to alternative storage when the intended location is inaccessible or another expected action fails.

</details>

<details>

<summary>Where do I add an Error Branch?</summary>

Hover over the output of a Workflow Action and click Error. Couchdrop will create the branch from that action node.

</details>


# Overview

Learn about Storage with Couchdrop

## How storage works in Couchdrop

Couchdrop lets you use your existing storage for managed file transfer, rather than requiring you to move files into a separate storage platform.

You can connect more than 30 storage providers, including SharePoint, Google Drive, Amazon S3, Azure Files, Dropbox, Wasabi, Windows file servers, and remote SFTP or FTP servers.

Once connected, Couchdrop can use those locations across SFTP, FTP, AS2, Mailboxes, Upload Links, Webhooks, Automations, and other file exchange workflows.

### Connect your own storage

Storage integrations connect Couchdrop directly to the storage platforms you already use.

Each integration appears in Couchdrop as a **Virtual Folder**, which maps a Couchdrop folder to the storage location behind it. This lets the same SharePoint folder, S3 bucket, file server, or other connected location be used across multiple transfer and workflow methods.

{% hint style="info" %}

#### Zero-custody file transfer

When you connect your own storage, Couchdrop can transfer files directly to the storage you control.

Files do not need to be permanently stored in Couchdrop as part of the transfer. Couchdrop provides the secure transfer and workflow layer, while your existing storage remains where the files live.

This direct-to-storage model helps you avoid introducing another permanent copy of your files into the transfer process.
{% endhint %}

### Couchdrop Hosted Storage

Couchdrop also provides Hosted Storage if you do not want to connect your own storage.

Hosted Storage is backed by Amazon S3 and managed through Couchdrop. It provides the same Couchdrop file transfer experience, but Couchdrop manages the storage location rather than connecting to storage controlled by your organization.

### File Browser

The File Browser gives you a single view across your connected storage.

Storage integrations appear as folders, allowing you to browse, upload, and download files without switching between the underlying storage platforms. Each connected location uses the root folder selected when the storage integration was configured.

***

## Get Started

Choose how you want to store and manage files in Couchdrop.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Storage Integrations</strong></td><td>Connect Couchdrop to the cloud storage, file servers, and remote platforms you already use.</td><td><a href="/storage/integrations">Storage integrations</a></td></tr><tr><td><strong>Hosted Storage</strong></td><td>Use Couchdrop-managed storage when you do not want to connect your own storage platform.</td><td><a href="/storage/hosted-storage">Hosted Storage</a></td></tr><tr><td><strong>File Browser</strong></td><td>Browse and manage files across your connected storage from one place.</td><td><a href="/storage/file-browser">File Browser</a></td></tr><tr><td><strong>Connect to SharePoint</strong></td><td>Connect Couchdrop directly to Microsoft SharePoint storage.</td><td><a href="/storage/integrations/sharepoint">SharePoint</a></td></tr><tr><td><strong>Connect to Dropbox</strong></td><td>Connect Couchdrop to Dropbox and use your existing folders for file transfer.</td><td><a href="/storage/integrations/dropbox">Dropbox</a></td></tr><tr><td><strong>Connect to Google</strong></td><td>Connect Couchdrop to Google Drive or Google Workspace storage.</td><td><a href="/storage/integrations/google-workspace">Google Workspace</a></td></tr></tbody></table>


# Storage integrations

Learn about storage integrations in Couchdrop

## Introduction

Couchdrop lets you connect your existing cloud, on-premises, and third-party storage platforms and use them as the foundation for file transfer and automation workflows.

Instead of moving files into a separate MFT storage system, Couchdrop works with the storage you already use. Your files remain in the storage platform controlled by your organization, while Couchdrop provides the secure file exchange layer on top.

This supports a **zero-custody file transfer** model. When using your own storage, Couchdrop transfers files directly to and from your connected storage location rather than becoming the permanent storage location for your files.

## How storage integrations work

Storage integrations connect Couchdrop to external storage platforms using the provider's supported connection methods, such as APIs, credentials, or secure protocols.

Once connected, each storage location appears in Couchdrop as a **Virtual Folder**. Virtual Folders provide a consistent filesystem experience across different storage platforms, allowing the same Couchdrop features to work regardless of where the files are stored.

For example, an SFTP user accessing a folder backed by SharePoint works the same way as an SFTP user accessing a folder backed by Amazon S3 or another connected storage platform.

## Connecting your storage platforms

{% hint style="warning" %}

#### Before you start

To create a storage connection, you will need:

* Access to Couchdrop with the appropriate permissions to add storage connections
* Credentials, API access, or connection details for the storage platform you want to connect
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

From the Couchdrop web portal, select **Add Storage Integration**.

This creates a new Virtual Folder that will represent the connected storage location inside Couchdrop.
{% endstep %}

{% step %}

### Choose the storage location

Configure the folder name and location where the storage integration will appear in Couchdrop.

Storage integrations can be placed alongside other folders and organized within the Couchdrop file system.
{% endstep %}

{% step %}

### Configure the storage provider

Select the storage platform you want to connect and enter the required connection details.

Each storage provider has its own configuration requirements. See the specific integration guides for detailed setup instructions.
{% endstep %}
{% endstepper %}

***

## Popular storage integrations

Couchdrop supports more than 30 storage platforms. Use the guides below for the most common integrations.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>SharePoint and OneDrive</strong></td><td>Connect with SharePoint</td><td><a href="/storage/integrations/sharepoint">SharePoint</a></td></tr><tr><td><strong>Azure Files</strong></td><td>Connect with Azure Files</td><td><a href="/storage/integrations/azure-files">Azure Files</a></td></tr><tr><td><strong>Amazon S3</strong></td><td>Connect with Amazon S3 or S3-compatible storage</td><td><a href="/storage/integrations/amazon-s3">Amazon S3</a></td></tr><tr><td><strong>External SFTP</strong></td><td>Connect to external SFTP endpoints or servers </td><td><a href="/managed-file-transfer/sftp/connect-to-external-sftp-servers-and-endpoints">Connect to external SFTP servers and endpoints</a></td></tr><tr><td><strong>Google Drive</strong></td><td>Connect to Google Drive</td><td><a href="/storage/integrations/google-workspace">Google Workspace</a></td></tr><tr><td><strong>Box</strong></td><td>Connect to Box.com</td><td><a href="/storage/integrations/box">Box</a></td></tr></tbody></table>

## Frequently asked questions

<details>

<summary>Do I need to move my files into Couchdrop?</summary>

No. Most customers connect their existing cloud or on-premises storage and use Couchdrop as the secure file transfer layer.

With connected storage, files remain in the storage platform controlled by your organization. Couchdrop provides access, transfer, and workflow capabilities without requiring you to migrate your data.

</details>

<details>

<summary>Does Couchdrop store copies of my files?</summary>

No. When using your own connected storage, Couchdrop uses a zero-custody file transfer model. Files remain in your connected storage location and are transferred directly to and from that location.

Couchdrop Hosted Storage is different because Couchdrop provides and manages the storage location.

</details>

<details>

<summary>Can I connect local or on-premises file systems?</summary>

Yes. Couchdrop can connect to local file systems and on-premises storage using the Couchdrop Agent.

The Agent allows Couchdrop to securely access files stored within your network while keeping the storage location under your control.

</details>

<details>

<summary>Can I connect multiple storage platforms?</summary>

Yes. You can connect multiple storage platforms in the same Couchdrop account.

Each storage connection appears as its own Virtual Folder, allowing you to manage different storage environments through the same Couchdrop interface.

</details>

<details>

<summary>Will users know where files are actually stored?</summary>

No. Couchdrop uses Virtual Folders to provide a consistent filesystem experience regardless of the underlying storage platform.

An SFTP user, web portal user, or workflow can interact with folders without needing direct access to the underlying storage system.

</details>

<details>

<summary>Can I use storage integrations with Automations and transfer features?</summary>

Yes. Connected storage can be used with Couchdrop features including SFTP, FTP, AS2, Mailboxes, Upload Links, Webhooks, and Automations.

</details>


# SharePoint

Learn how to configure a connection to SharePoint with Couchdrop

## Overview

Couchdrop connects directly to SharePoint Online using the Microsoft Graph API, allowing you to access SharePoint files through Couchdrop without moving data or changing your existing SharePoint structure.

A SharePoint connection creates a *virtual folder* in Couchdrop that maps to an existing SharePoint location. Files remain stored and managed in SharePoint while Couchdrop provides access through its file transfer, automation, and sharing features.

You can connect SharePoint using either:

* **Delegate Access** \
  The recommended option. Uses standard Microsoft OAuth authentication and connects using a licensed SharePoint user account.
* **Application Access** \
  Uses a Microsoft Entra application registration for environments that require more restrictive permissions.

Most customers should use Delegate Access unless their Microsoft environment requires application-based authentication.

{% hint style="info" %}
To configure Application Access, see [Securely connecting SharePoint to Couchdrop using an application registered in Microsoft Entra](/storage/integrations/sharepoint/sharepoint-restrictive-permissions-app-registration).
{% endhint %}

## How to connect to SharePoint Online

{% hint style="warning" %}

### Before you start

To connect SharePoint Online to Couchdrop using Delegate Access, you will need:

* A Couchdrop account with permission to create storage connections
* A licensed SharePoint Online user account
* Access to the SharePoint sites you want to connect

Your Microsoft organization may require an administrator to approve Couchdrop during the OAuth authorization process. If Microsoft displays an admin approval or consent prompt, this is controlled by your Microsoft Entra configuration rather than Couchdrop.
{% endhint %}

{% stepper %}
{% step %}

### Create a SharePoint connection

In Couchdrop, add a new storage connection and select **SharePoint**.

Enter a **Name for this integration** and choose the **Couchdrop folder path** where the SharePoint connection will appear as a virtual folder.
{% endstep %}

{% step %}

### Authorize with Microsoft

Set the **Endpoint Type** to **Default** or **GCC** for SharePoint GCC environments.

Leave **Use Delegated OAuth Access** enabled unless you are using Application Access.

Select **Authorize SharePoint** to open the Microsoft login window and authorize the connection between SharePoint and Couchdrop. Make sure your browser allows pop-ups for Couchdrop.
{% endstep %}

{% step %}

### Verify your connection

Select **Save and Test** to verify the SharePoint connection.

After the connection has been tested, you can optionally select a specific SharePoint folder to map into Couchdrop.

Leaving this blank allows Couchdrop to map the SharePoint connection without restricting it to a specific folder.

When a folder is selected, Couchdrop limits access to that location and its subfolders.
{% endstep %}

{% step %}

### Save and use your SharePoint connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, select **Add Integration**.

{% hint style="success" %}
Your SharePoint connection will now appear as a folder in Couchdrop and can be used by Couchdrop users, transfer protocols, and Automations according to the access you configure.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Controlling access to SharePoint folders

SharePoint organizes files using sites, document libraries, and folders. Couchdrop presents the selected SharePoint location through a filesystem-style virtual folder.

For example, you might have separate SharePoint folders for two external partners:

```
SharePoint
└── Partner Files
    ├── Partner A
    └── Partner B
```

You can either create separate SharePoint storage connections mapped to these locations or use Couchdrop user home directories and filesystem permissions to control which locations individual users can access.

The important distinction is:

* The **SharePoint connection path** determines which part of SharePoint Couchdrop can expose through that connection.
* A user's **Home Directory** and filesystem permissions determine which part of the Couchdrop virtual filesystem that user can access.

This means you can use the same SharePoint-backed connection while isolating different SFTP or FTP users to different folders.

***

## Troubleshooting

<details>

<summary>Microsoft says administrator approval is required</summary>

The approval request is coming from Microsoft Entra.

Your Microsoft organization controls whether users can authorize applications. Ask your Microsoft 365 or Entra administrator to review and approve the request.

</details>

<details>

<summary>The connection is Online but uploads fail</summary>

An Online connection confirms that Couchdrop can authenticate to SharePoint, but an individual SharePoint operation can still fail.

Check:

* That the Microsoft account still has access to the target SharePoint location
* That the mapped site, document library, or folder still exists
* That the account is permitted to write to the target location
* Whether the failure affects all files or a specific file or path
* The Couchdrop audit logs and the error returned for the failed transfer

If you contact Couchdrop Support, include the approximate transfer time, filename, destination path, and the error shown in Couchdrop.

</details>

<details>

<summary>A SharePoint connection that previously worked has stopped working</summary>

Start by testing and, if necessary, reauthorizing the SharePoint connection.\
Also check whether Microsoft permissions, the target SharePoint location, or the account used for authorization have changed.

For security, Couchdrop terminates connections after 90 days without activity. A connection that has not been used for an extended period may therefore need to be authorized again.

</details>

<details>

<summary>How do I connect Couchdrop to a specific SharePoint folder?</summary>

After selecting Save and Test, choose the SharePoint location you want the connection to expose.

Mapping the connection to a specific location prevents access to folders above or alongside that location.

</details>

<details>

<summary>Can each SFTP or FTP user use a different SharePoint folder?</summary>

Yes.

SharePoint storage mapping and Couchdrop user permissions are separate controls.\
Connect the required SharePoint storage into Couchdrop, then configure each user's Home Directory and filesystem permissions so they can access only the appropriate location.

</details>

## Frequently Asked Questions

<details>

<summary>Does Couchdrop support SharePoint Online?</summary>

Yes. Couchdrop connects to SharePoint Online using the Microsoft Graph API.

</details>

<details>

<summary>Does Couchdrop copy SharePoint files into Couchdrop storage?</summary>

No. SharePoint remains the storage location. Couchdrop exposes the connected location through its virtual filesystem.

</details>

<details>

<summary>Can I use SharePoint with Couchdrop Automations?</summary>

Yes. Once connected, SharePoint can be used as storage within supported Couchdrop file transfer and Automation workflows.

</details>

<details>

<summary>Should I use Delegated Access or Application Access?</summary>

Delegated OAuth Access is recommended for most environments.\
Use Application Access when your Microsoft environment requires an application registered in Microsoft Entra with more restrictive permissions.

</details>


# SharePoint - Restrictive Permissions (App Registration)

How to connect SharePoint to Couchdrop using an application registered in Microsoft Entra

## Overview

Couchdrop can connect to SharePoint using **Application Access** through an application registered in Microsoft Entra.

This method uses the Microsoft Graph `Sites.Selected` permission to restrict the application to specific SharePoint sites, rather than granting access across the entire SharePoint environment.

To configure this connection, you will create an application in Microsoft Entra, grant it access to the required SharePoint site using Microsoft Graph Explorer, and then connect the application to Couchdrop.

## How to connect SharePoint using Application Access

{% hint style="warning" %}

#### Before you start

To configure SharePoint Application Access, you will need:

* Access to the **Microsoft Entra admin center**
* Permission to register applications and grant admin consent in Microsoft Entra
* Access to **Microsoft Graph Explorer**
* The SharePoint site you want Couchdrop to access
  {% endhint %}

### Configure an application in Microsoft Entra

{% stepper %}
{% step %}

#### Register an application

Open the [Microsoft Entra admin center](https://entra.microsoft.com/) and go to **App registrations**.

Select **New registration**, enter a name for the application, such as `Couchdrop-SharePoint`, and leave the remaining options at their defaults.

Select **Register**.
{% endstep %}

{% step %}

#### Copy the Client ID and Tenant ID

From the application's **Overview** page, copy:

* **Application (client) ID**
* **Directory (tenant) ID**

You will need both values when configuring the SharePoint connection in Couchdrop.
{% endstep %}

{% step %}

#### Create a Client Secret

Open **Certificates & secrets** and select **New client secret**.

Enter a description, select an expiry period, and select **Add**.

Copy the secret **Value** before leaving the page. Microsoft Entra will not display the value again.
{% endstep %}

{% step %}

#### Add the Sites.Selected permission

Open **API permissions** and select **Add a permission**.

Select:

**Microsoft Graph** → **Application permissions**

Find and enable:

`Sites.Selected`

Select **Add permissions**, then select **Grant admin consent for \[Your Organization]**.
{% endstep %}
{% endstepper %}

### Grant access to the SharePoint site

The `Sites.Selected` permission does not give the application access to SharePoint sites by itself.

You must explicitly grant the application permission to each SharePoint site Couchdrop needs to access.

#### Find the SharePoint Site ID

Open the following URL in your browser, replacing the tenant and site name with your SharePoint values:

```
https://<tenant>.sharepoint.com/sites/<siteName>/_api/site/id
```

For example:

```
https://couchdropdemo.sharepoint.com/sites/MySite/_api/site/id
```

The response contains the SharePoint Site ID. For example:

```xml
<d:Id xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Edm.Guid">29cf2814-a045-4b48-8b1b-6bd01f57d632</d:Id>
```

Copy the GUID value. You will use it when granting the application access.

#### Grant permissions using Microsoft Graph Explorer

{% stepper %}
{% step %}

#### Sign in to Graph Explorer

Open [Microsoft Graph Explorer](https://developer.microsoft.com/en-us/graph/graph-explorer) and sign in with your Microsoft account.

Select your user icon, then select **Consent to permissions**.

Grant your account the `Sites.FullControl.All` permission.
{% endstep %}

{% step %}

#### Grant the application access to the SharePoint site

In Graph Explorer, send a `POST` request to:

```
https://graph.microsoft.com/v1.0/sites/<site_id>/permissions
```

Replace `<site_id>` with the Site ID retrieved earlier.

Use the following request body:

```json
{
  "roles": ["write"],
  "grantedToIdentities": [
    {
      "application": {
        "id": "<APPLICATION_CLIENT_ID>",
        "displayName": "<APPLICATION_DISPLAY_NAME>"
      }
    }
  ]
}
```

Replace:

* `<APPLICATION_CLIENT_ID>` with the **Application (client) ID** from Microsoft Entra
* `<APPLICATION_DISPLAY_NAME>` with the name of your registered application

Select **Run Query**.

A successful request returns:

`201 Created`
{% endstep %}

{% step %}

#### Grant the application access to the root site

Send another `POST` request to:

```
https://graph.microsoft.com/v1.0/sites/root/permissions
```

Use the same application details:

```json
{
  "roles": ["write"],
  "grantedToIdentities": [
    {
      "application": {
        "id": "<APPLICATION_CLIENT_ID>",
        "displayName": "<APPLICATION_DISPLAY_NAME>"
      }
    }
  ]
}
```

Select **Run Query**.

A successful request returns:

`201 Created`
{% endstep %}
{% endstepper %}

### Connect SharePoint to Couchdrop

Once the Microsoft Entra application has been configured and granted access to the required SharePoint site, you can use it to create the SharePoint connection in Couchdrop.

{% stepper %}
{% step %}

#### Add a SharePoint connection

In Couchdrop, add a new storage connection and select **SharePoint** from the list of available connections.

Enter a name for the integration and select the **Couchdrop folder path** where the connection will appear.
{% endstep %}

{% step %}

#### Use Application Access

Disable **Delegated OAuth Access** to configure the connection using Application Access.

Enter:

* **SharePoint Domain**
* **Client ID**
* **Directory (Tenant) ID**
* **Client Secret**

Use the values from the Microsoft Entra application you configured earlier.
{% endstep %}

{% step %}

#### Specify the SharePoint folder path

When using `Sites.Selected`, manually specify the SharePoint location that Couchdrop should access.

Use the following path format:

```
/sharepointsite:/sites/<siteName>:/Documents/<optional-subfolder-path>
```

Replace `<siteName>` with the SharePoint site that was granted access.

You can also include a subfolder beneath the site's **Documents** library when required.
{% endstep %}

{% step %}

#### Verify your connection

Select **Save and Test** to verify the SharePoint connection.

The connection will succeed only where the registered application has been granted the required SharePoint site permissions.
{% endstep %}

{% step %}

#### Add the integration

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, select **Add Integration**.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Why use Sites.Selected instead of broader SharePoint permissions?</summary>

`Sites.Selected` allows the Microsoft Entra application to be granted access only to specific SharePoint sites.

The application cannot access a site until permission to that site has also been explicitly granted through Microsoft Graph.

</details>

<details>

<summary>Do I need to grant access to every SharePoint site?</summary>

Yes. When using `Sites.Selected`, grant the application permission to each SharePoint site Couchdrop needs to access.

</details>

<details>

<summary>Why do I need to manually enter the SharePoint folder path?</summary>

Application Access using `Sites.Selected` limits the SharePoint locations available to the application.

Manually specifying the path ensures Couchdrop connects to the SharePoint site that has been granted access.

</details>

<details>

<summary>What happens when the Client Secret expires?</summary>

The SharePoint connection uses the Client Secret created for the Microsoft Entra application. If that secret expires, you will need to create a replacement secret and update the connection in Couchdrop.

</details>


# Azure Blob

Couchdrop has comprehensive support for Azure Blob containers out of the box. This document outlines requirements, configuration steps and capabilities for using Azure Blob with Couchdrop.

## Overview

Couchdrop connects to Azure Blob Storage using Azure's native storage APIs. Once connected, your Azure Blob container appears as a folder in Couchdrop, allowing you to use the storage location with SFTP, FTP/FTPS, Web Access, and Automations.

Your files remain stored in Azure Blob while Couchdrop provides the transfer and access layer for managing file exchange.

## How to connect Azure Blob to Couchdrop

{% hint style="warning" %}

### Before you start

To connect Azure Blob, you will need:

* Access to Couchdrop with the appropriate permissions
* An existing Azure Blob container, or permission to create one
* One of:
  * Azure Account Name + Azure Account Key
  * Azure SAS URL
    {% endhint %}

{% stepper %}
{% step %}

### Prepare your Azure Blob container

In the Azure Portal, navigate to **Storage accounts** and select your storage account.

Select **Containers** from the left menu.

Use an existing container or click **+ Container** to create a new container. Set the access level to **Private**.
{% endstep %}

{% step %}

### Generate Azure credentials

Choose one of the following authentication methods:

**Option A:** Access Key (simple but broad permissions)

1. In the storage account, go to **Access keys**.
2. Copy the **Storage account name** and **Key1**.

**Option B:** SAS Token (more secure / scoped)

1. In the storage account, go to **Shared access signature**.
2. Select:
   * Allowed services: **Blob**
   * Allowed resource types: **Container** and **Object**
   * Allowed permissions: **Read, Write, List, Delete** (depending on Couchdrop use)
   * Set start and expiry date.
3. Click **Generate SAS** and copy the **SAS token**.

{% hint style="info" %}
Treat Storage Account Access Keys and SAS tokens as sensitive credentials. Microsoft recommends using HTTPS when sharing or using SAS credentials.
{% endhint %}
{% endstep %}

{% step %}

### Create an Azure Blob connection in Couchdrop

In Couchdrop, add a new storage connection and select **Azure Blob**.

Select your **Azure Endpoint**, then enter the required connection details.

For **Azure Files Default** or **US Govt Storage**:

* **Azure Account Name**
* **Azure Account Key**
* **Azure Container Name**
* **Endpoint Suffix** (optional)

For **Azure SAS URL**:

* **Azure SAS URL**
* **Endpoint Suffix** (optional)

{% hint style="info" %}

#### Azure endpoint options

When connecting Azure Blob to Couchdrop, choose the endpoint that matches your Azure environment and authentication method.

* **Azure Files Default -** Use this for standard Azure public cloud storage. Couchdrop connects using Azure’s normal storage endpoints, such as `*.blob.core.windows.net`.
* **US Govt Storage -** Use this when your storage account is hosted in Azure US Government. Government storage uses separate endpoints ending in `core.usgovcloudapi.net`.
* **Azure SAS URL** - Use this when you want Couchdrop to authenticate using a Shared Access Signature URL rather than an account key. The SAS URL contains the storage endpoint and scoped credentials needed to access the permitted Azure resources.
  {% endhint %}
  {% endstep %}

{% step %}

### Verify your connection

Select **Save and Test** to verify the Azure Blob connection.

After the connection has been tested successfully, you can optionally select a specific Azure Blob container or folder to map into Couchdrop.

Leaving this blank allows Couchdrop to map the Azure Blob connection without restricting it to a specific location.

When a folder or container is selected, Couchdrop limits access to that location and its subfolders.
{% endstep %}

{% step %}

### Save and use your Azure Blob connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, select **Add Integration**.

{% hint style="success" %}
Your Azure Blob container will now appear as a folder in Couchdrop and can be used by Couchdrop users, transfer protocols, and Automations according to the access you configure.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Supported features

<table data-search="false"><thead><tr><th>Feature</th><th>Supported</th></tr></thead><tbody><tr><td>Upload files</td><td>Yes</td></tr><tr><td>Download files</td><td>Yes</td></tr><tr><td>List files and folders</td><td>Yes</td></tr><tr><td>Create folders</td><td>Yes</td></tr><tr><td>Delete folders</td><td>Yes</td></tr><tr><td>Delete files</td><td>Yes</td></tr><tr><td>Azure Access Controls</td><td>Supported via static IP in Couchdrop</td></tr></tbody></table>

## Frequently asked questions

<details>

<summary>Can different users have different access to Azure Blob?</summary>

Yes. Couchdrop users can be given access to specific folder locations, allowing different users or partners to access different areas of your connected Azure Blob storage.

Couchdrop user permissions can also control whether users can read, write, or delete files.

</details>

<details>

<summary>Does Couchdrop store my Azure Blob files?</summary>

No. Files transferred through Couchdrop to or from Azure Blob are not stored at rest on Couchdrop infrastructure.

Azure Blob remains the storage location while Couchdrop provides the transfer and access layer.

</details>

<details>

<summary>Can I use SFTP with Azure Blob?</summary>

Yes. Once Azure Blob is connected to Couchdrop, you can provide Couchdrop users with SFTP access to the connected storage.

Each SFTP user can be assigned a home/root directory and filesystem permissions that determine what they can access.

</details>

<details>

<summary>Can I use FTP or FTPS with Azure Blob?</summary>

Yes. Couchdrop users can also be permitted to connect using FTP or FTPS, allowing those protocols to access files stored in the connected Azure Blob location.

</details>

<details>

<summary>Should I use an Access Key or SAS token?</summary>

Both authentication methods are supported by the Couchdrop configuration described above.

An Access Key provides access using credentials for the Storage Account. A SAS can provide more restricted access by defining the resources, permissions, and validity period available to the credential.&#x20;

</details>


# Azure Files

Learn how to configure a connection to Azure Files with Couchdrop

## Overview

Connect Azure Files to Couchdrop to use an existing Azure file share with your file transfer workflows.

Once connected, your Azure Files storage is available through Couchdrop for transferring files to and from the underlying file share.

## How to connect Azure Files

{% hint style="warning" %}

#### Before you start

To connect Azure Files, you will need:

* An Azure **Account Name**
* An Azure **Secret Key**
* An Azure **Share Name**

You can find more information about managing Azure Storage accounts in the [Microsoft Azure documentation](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-manage).
{% endhint %}

{% stepper %}
{% step %}

### Add a new Azure Files connection

In Couchdrop, add a new storage connection and select **Azure Files** from the available storage providers.
{% endstep %}

{% step %}

### Configure Azure Files

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter your Azure Files details:

* **Azure Account Name** — Enter the name of your Azure Storage account.
* **Azure Account Key** — Enter the account key for your Azure Storage account.
* **Azure Share Name** — Enter the name of the Azure file share you want to connect to.
* **Endpoint Suffix** — Optionally enter a custom Azure endpoint suffix.

When the connection details are complete, select **Save and Test**.
{% endstep %}

{% step %}

### Select a folder

After the connection has been tested, you can optionally select a specific Azure Files location to map into Couchdrop.

Leaving this blank allows Couchdrop to map the storage connection directly without restricting it to a specific folder.

You can select a location using the folder browser or manually enter a path.
{% endstep %}

{% step %}

### Save and use your Azure Files connection

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}


# Amazon S3

Learn how to configure a connection to Amazon S3 with Couchdrop

## Overview

Couchdrop can connect directly to an Amazon S3 bucket and make that storage available through Couchdrop.

Once connected, you can use the S3 bucket with Couchdrop file transfer and workflow features while keeping files in your existing AWS storage.

## How to connect Amazon S3

{% hint style="warning" %}

#### Before you start

To connect Amazon S3, you will need:

* An Amazon S3 bucket
* An AWS IAM access key
* The corresponding AWS IAM secret key
* The AWS region for the bucket
* IAM permissions that allow access to the required S3 bucket and objects
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Amazon S3** from the list of available connections.
{% endstep %}

{% step %}

### Configure Amazon S3

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter your AWS credentials:

* **S3 Access Key** — Enter the AWS IAM access key used by Couchdrop.
* **S3 Access Key Secret** — Enter the secret associated with the access key.
* **S3 Bucket** — Optionally enter the bucket you want Couchdrop to connect to.
* **S3 Region** — Optionally select the AWS region for the bucket.

When the connection details are complete, select **Save and Test**.
{% endstep %}

{% step %}

### Select a folder

After the connection has been tested, you can optionally select a specific S3 location to map into Couchdrop.

Leaving this blank allows Couchdrop to map the storage connection directly without restricting it to a specific folder.

You can select a location using the folder browser or manually enter a path.
{% endstep %}

{% step %}

### Save and use your Amazon S3 connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

Select a content rule group if required, then save the integration.
{% endstep %}
{% endstepper %}

***

## Frequently asked questions

<details>

<summary>Can I connect Couchdrop to multiple Amazon S3 buckets?</summary>

Yes. You can create multiple Amazon S3 storage connections in Couchdrop and connect each one to a different S3 bucket.

Each connection can be mapped to its own Couchdrop folder path, allowing different buckets to appear as separate locations within Couchdrop.

</details>

<details>

<summary>Can I connect multiple Couchdrop folders to the same S3 bucket?</summary>

Yes. You can create separate Amazon S3 connections and map them to different locations within the same bucket.

This can be useful when different users, partners, or workflows need access to different parts of the same S3 storage environment.

</details>

<details>

<summary>Does Couchdrop copy my S3 files into separate Couchdrop storage?</summary>

No. The Amazon S3 connection maps your existing storage into Couchdrop. Files remain in the connected S3 storage rather than being copied into a separate Couchdrop repository.

</details>

<details>

<summary>Can I restrict Couchdrop to a specific folder in an S3 bucket?</summary>

Yes. After testing the connection, you can optionally select a specific location within S3 to map into Couchdrop.

When you select a location, that connection is scoped to the selected path and its contents.

</details>

<details>

<summary>What permissions does the AWS IAM user need?</summary>

The IAM credentials used by Couchdrop need sufficient permissions for the S3 bucket and operations you intend to use.

If Couchdrop cannot browse, upload, download, or otherwise access the required location, check the IAM policy attached to the credentials and the permissions configured on the bucket.

</details>

<details>

<summary>Can different S3 connections use different AWS IAM credentials?</summary>

Yes. Each Amazon S3 connection is configured separately, including its S3 access key and secret.

This allows you to use different AWS credentials for different buckets or storage locations.

</details>


# Google Files (Individual Drive)

Learn how to connect Couchdrop to a Google Drive folder

## Overview

Couchdrop can connect directly to a personal Google Drive account and make that storage available through Couchdrop.

Once connected, you can use files and folders in Google Drive with Couchdrop file transfer and workflow features while keeping the files in your existing Google Drive storage.

{% hint style="info" %}
To connect Couchdrop to a Google Workspace tenant rather than a personal Google Drive account, see [**Google Workspace**](/storage/integrations/google-workspace).
{% endhint %}

## How to connect Google Drive

{% hint style="warning" %}

#### Before you start

To connect Google Drive, you will need:

* A licensed Google Drive account
* A folder in Google Drive that you want Couchdrop to access
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Google Files** from the list of available connections.
{% endstep %}

{% step %}

### Configure Google Drive

Enter a **Name for this integration** and select the **Couchdrop folder path** where the Google Drive connection will appear.

Select **Authorize Google** and complete the Google authorization process.

Couchdrop uses authorized access to the Google Drive APIs to list folder contents and upload, download, delete, and modify files stored in Google Drive. This access is handled in accordance with Couchdrop's privacy policy and terms of service.

Couchdrop does not resell or share data obtained through the Google Drive APIs.

Select **Save and Test** to verify the Google Drive connection.
{% endstep %}

{% step %}

### Map your storage location

After the connection has been tested, you can optionally select a specific Google Drive folder to map into Couchdrop.

Leaving this blank allows Couchdrop to map the Google Drive connection without restricting it to a specific folder.

When a Google Drive folder is selected, Couchdrop limits the connection to that location and its subfolders.
{% endstep %}

{% step %}

### Save and use your Google Files connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Can I connect more than one Google Drive account?</summary>

Yes. You can create separate Google Drive connections in Couchdrop and map each connection to a different Couchdrop folder path.

</details>

<details>

<summary>Do I have to select a Google Drive folder?</summary>

No. Selecting a folder is optional.

If you leave the folder selection blank, Couchdrop can map the Google Drive connection directly. Selecting a folder restricts the connection to that location and its subfolders.

</details>

<details>

<summary>What access does Couchdrop require to Google Drive?</summary>

Couchdrop requires authorized access to the Google Drive APIs so it can list folder contents and upload, download, delete, and make changes to content stored in Google Drive.

</details>

<details>

<summary>Does Couchdrop share data obtained from Google Drive?</summary>

No. Couchdrop does not resell or share data obtained through the Google Drive APIs.

</details>


# Google Cloud Storage

Learn how to connect to a Google Cloud Storage bucket with Couchdrop

## Overview

Couchdrop can connect directly to a Google Cloud Storage bucket and make that storage available through Couchdrop.

Once connected, you can use the bucket with Couchdrop file transfer and workflow features while keeping files in your existing Google Cloud Storage environment.

## How to connect Google Cloud Storage

{% hint style="warning" %}

### Before you start

To connect Google Cloud Storage, you will need:

* A Google Cloud Storage bucket
* A Google Cloud service account
* A service account JSON key file
* Appropriate Google Cloud Storage permissions for the service account
  {% endhint %}

{% stepper %}
{% step %}

### Configure access to the Google Cloud Storage bucket

Grant the service account access to the Google Cloud Storage bucket you want Couchdrop to use.

For most configurations, assign the **Storage Admin** role to the service account for the bucket.

If you want to use more restrictive permissions, see [Google Cloud Storage permissions](#google-cloud-storage-permissions) below.
{% endstep %}

{% step %}

### Create service account credentials

In Google Cloud Console, navigate to **APIs & Services** > **Credentials**.

Create a service account if required, then create a key for that account and download the associated JSON credentials file.

You will upload this file when configuring the Google Cloud Storage connection in Couchdrop.
{% endstep %}

{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Google Cloud** from the list of available connections.
{% endstep %}

{% step %}

### Configure Google Cloud Storage

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter the name of your **Google Cloud Bucket**, then upload the **Service account JSON file** used to access the bucket.

{% hint style="warning" %}
Changing the configured bucket invalidates the uploaded JSON configuration. If you change the bucket, upload the appropriate service account JSON file again.
{% endhint %}

Select **Save and Test** to verify the Google Cloud Storage connection.
{% endstep %}

{% step %}

#### Map your GCS storage location

After the connection has been tested, you can optionally select a specific folder in the bucket to map into Couchdrop. You can also manually enter a path.

Leaving this blank allows Couchdrop to map the storage connection directly without restricting it to a specific folder.

When a folder is selected, Couchdrop limits the connection to that location and its subfolders.
{% endstep %}

{% step %}

#### Save and use your GCS connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Google Cloud Storage permissions

The Google Cloud service account used by Couchdrop must have permission to access and modify objects in the configured bucket.

### Recommended role

For most customers, assign the Google Cloud **Storage Admin** role to the service account for the bucket.

This avoids having to maintain a custom set of individual permissions.

#### Preset IAM roles for buckets without hierarchical namespace

If you want to use Google Cloud preset IAM roles instead of **Storage Admin**, the following roles can be used for buckets that do not use hierarchical namespace:

* **Storage Legacy Bucket Writer**
* **Storage Legacy Object Reader**

#### Minimum individual permissions

If you want to create a custom IAM role with only the individual permissions required by Couchdrop, include:

```
storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
```

For more information about Google Cloud Storage IAM roles and permissions, see the [Google Cloud Storage IAM roles documentation](https://docs.cloud.google.com/storage/docs/access-control/iam-roles).

### Hierarchical namespace buckets

Google Cloud Storage buckets created with hierarchical namespace require additional permissions because folders are represented as first-class resources.

In addition to the minimum permissions above, grant:

```
storage.folders.create
storage.folders.delete
storage.folders.get
storage.folders.list
storage.folders.rename
storage.objects.move
```

{% hint style="warning" %}
Couchdrop currently has a limitation with Google Cloud Storage hierarchical namespace buckets: folders created outside Couchdrop may not be displayed in Couchdrop.
{% endhint %}

## Frequently asked questions

<details>

<summary>Which Google Cloud permissions should I use?</summary>

For most configurations, assign Storage Admin to the service account for the bucket.\
If your organization requires more restrictive access, you can use the preset roles or individual permissions described in the Google Cloud Storage permissions section.

</details>

<details>

<summary>Do hierarchical namespace buckets require different permissions?</summary>

Yes. Hierarchical namespace buckets require the additional storage.folders.\* permissions and storage.objects.move listed above.

</details>

<details>

<summary>Can I connect more than one Google Cloud Storage bucket?</summary>

Yes. Create a separate Google Cloud connection for each bucket and map each connection to the required Couchdrop folder path.

</details>

<details>

<summary>Do I have to select a folder in the bucket?</summary>

No. Selecting a folder is optional.\
If you leave the folder selection blank, Couchdrop can map the storage connection directly. Selecting a folder restricts the connection to that location and its subfolders.

</details>

<details>

<summary>What happens if I change the Google Cloud bucket?</summary>

Changing the configured bucket invalidates the existing service account JSON configuration. Upload the appropriate JSON file for the new bucket before testing the connection again.

</details>


# Google Workspace

Learn how to connect Couchdrop to a Google Workspace account

## Overview

Couchdrop can connect to Google Workspace using a service account that Couchdrop creates for you.

Once connected, you can make Google Workspace Drive content available through Couchdrop and use it with Couchdrop file transfer and workflow features.

{% hint style="info" %}
To connect a personal Google Drive account instead, see [**Google Files (Individual Drive)**](/storage/integrations/google-files-individual-drive).
{% endhint %}

## How to connect Google Workspace

{% hint style="warning" %}

#### Before you start

To connect Google Workspace, you will need:

* A licensed Google Workspace account
* A folder in Google Drive
* Access to a Google Workspace Admin account
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Google Workspace** from the list of available connections.
{% endstep %}

{% step %}

### Configure Google Workspace

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter the following Google Workspace details:

* **Admin User** — Enter the email address of an administrator in the Google Workspace account.
* **Domain** — Enter the Google Workspace domain you want to connect.
* **Exclude 'SharedWithMe' Folders** — Enable this option if you want to exclude folders shared with the configured account. This setting is recommended.
  {% endstep %}

{% step %}

### Create the service account

Select **Create Service Account**.

Couchdrop will create the service account credentials required for the connection and generate a Client ID.

{% hint style="info" %}
Before testing the connection, you must delegate Domain-Wide Authority to the Couchdrop service account in the Google Workspace Admin Console.

If you need instructions for this process, see [**Delegating Domain-Wide Authority in Google Workspace**](/storage/integrations/google-workspace/delegating-domain-wide-authority-in-google-workspace).
{% endhint %}

After Domain-Wide Authority has been configured, select **Save and Test** to verify the Google Workspace connection.
{% endstep %}

{% step %}

### Map your storage folder

After the connection has been tested, you can optionally select a user or folder in Google Drive to use as the root location in Couchdrop. You can also manually enter a path.

Leaving this blank allows Couchdrop to map the Google Workspace connection directly without restricting it to a specific location.
{% endstep %}

{% step %}

### Save and use your Google Workspace connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Does Couchdrop create the Google Workspace service account?</summary>

Yes. Select **Create Service Account** and Couchdrop will create the required service account credentials and generate a Client ID.

</details>

<details>

<summary>Do I need to configure Domain-Wide Authority?</summary>

Yes. You must delegate Domain-Wide Authority to the Couchdrop service account in the Google Workspace Admin Console before testing the connection.

</details>

<details>

<summary>Do I have to select a user or folder?</summary>

No. Selecting a user or folder is optional.

After the connection has been successfully tested, you can select a location or manually enter a path if you want to restrict the connection to a specific root location.

</details>

<details>

<summary>What does Exclude 'SharedWithMe' Folders do?</summary>

This option excludes folders that have been shared with the configured Google Workspace account. Couchdrop recommends enabling this setting.

</details>

<details>

<summary>Can I connect a personal Google Drive account instead?</summary>

Yes. Use the [**Google Files (Individual Drive)**](/storage/integrations/google-files-individual-drive) connection for personal Google Drive accounts.

</details>


# Delegating Domain-Wide Authority in Google Workspace

Learn how to connect Google Workspace to Couchdrop with a Client ID and domain-wide delegation

## Overview

Google Workspace requires **domain-wide delegation** before Couchdrop can access Google Drive using the service account created for your connection.

You configure domain-wide delegation in the Google Admin Console using the **Client ID** generated by Couchdrop and the required Google OAuth scopes.

## How to delegate domain-wide authority

{% hint style="warning" %}

#### Before you start

To configure domain-wide delegation, you will need:

* Access to a Google Workspace Administrator account
* Access to the Google Admin Console
* The **Client ID** generated by Couchdrop when configuring your Google Workspace connection
  {% endhint %}

{% stepper %}
{% step %}

### Open API controls

Log in to the [**Google Admin Console**](https://admin.google.com/) for your Google Workspace domain.

Select **Security**. If **Security** is not visible, select **Show more** from the navigation menu.

Select **Access and data control**, then **API controls**.
{% endstep %}

{% step %}

### Add Couchdrop as an API client

Under **Domain-wide delegation**, select **Manage Domain Wide Delegation**.

In **API clients**, select **Add new**.

Paste the **Client ID** generated by Couchdrop into the **Client ID** field.
{% endstep %}

{% step %}

### Add the required OAuth scopes

In the **OAuth scopes (comma-delimited)** field, enter the following scopes:

```
https://www.googleapis.com/auth/drive,
https://www.googleapis.com/auth/drive.file,
https://www.googleapis.com/auth/admin.directory.user,
https://www.googleapis.com/auth/admin.directory.user.readonly,
https://www.googleapis.com/auth/admin.directory.user.security
```

Select **Authorize** to grant the requested permissions.
{% endstep %}

{% step %}

### Verify the connection in Couchdrop

Return to the Google Workspace connection in Couchdrop and test the connection.

A successful connection confirms that domain-wide delegation has been configured correctly.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
For more information about domain-wide delegation, see Google's [Control API access with domain-wide delegation](https://support.google.com/a/answer/162106?hl=en).
{% endhint %}


# Box

Learn how to configure a connection to Box with Couchdrop

## Overview

Couchdrop can connect directly to Box and make your Box files and folders available through Couchdrop.

Once connected, you can use Box with Couchdrop file transfer and workflow features while keeping files in your existing Box account.

## How to connect Box

{% hint style="warning" %}

### Before you start

To connect Box, you will need:

* A licensed Box account
* Team Admin access if you want Couchdrop to access folders belonging to other users in your Box organization
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Box** from the list of available connections.
{% endstep %}

{% step %}

#### Configure Box

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

If you want to connect to folders belonging to other users in your Box organization, enable **As Team Admin**.
{% endstep %}

{% step %}

### Authorize Couchdrop

Select **Authorize Box** and sign in to Box when prompted.

Authorize Couchdrop to access Box on your behalf.

Couchdrop uses the Box APIs to list folder contents and upload, download, delete, and modify content stored in Box.

Select **Save and Test** to verify the Box connection.
{% endstep %}

{% step %}

### Map your Box storage location&#x20;

After the connection has been tested, you can optionally select a specific Box user or folder to map into Couchdrop.

Leaving this blank allows Couchdrop to map the Box connection without restricting it to a specific folder.

When a folder is selected, Couchdrop limits the connection to that location and its subfolders.
{% endstep %}

{% step %}

### Save and use your Box connection

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Do I need Team Admin access to connect Box?</summary>

No. Team Admin access is only required if you want Couchdrop to connect to folders belonging to other users in your Box organization.

</details>

<details>

<summary>Can I restrict Couchdrop to a specific Box folder?</summary>

Yes. After the connection has been tested, you can select a specific folder to map into Couchdrop. Couchdrop will then use that location and its subfolders for the connection.

</details>

<details>

<summary>Can Couchdrop connect to folders owned by other Box users?</summary>

Yes. Enable **As Team Admin** when configuring the connection if you need access to folders belonging to other users in the organization. Your Box account must have the required Team Admin access.

</details>

<details>

<summary>What access does Couchdrop require in Box?</summary>

Couchdrop requires authorized access to the Box APIs so it can list folder contents and upload, download, delete, and make changes to content stored in Box.

Couchdrop does not resell or share data obtained through the Box APIs.

</details>


# Dropbox

Learn how to connect Couchdrop to Dropbox

## Overview

Couchdrop can connect directly to Dropbox Personal or Dropbox Business and make that storage available through Couchdrop.

Once connected, you can use Dropbox with Couchdrop file transfer and workflow features while keeping files in your existing Dropbox account.

### Dropbox Personal

Use **Dropbox Personal** when connecting an individual Dropbox account.

Couchdrop requests access to the Dropbox APIs so it can list folder contents and upload, download, delete, and make changes to content stored in Dropbox.

### Dropbox Team

Use **Dropbox Team** when connecting a Dropbox Business account.

The configuration is similar to Dropbox Personal, with an additional **Administrator Account** field used when connecting the Dropbox team.

## How to connect Dropbox

{% hint style="warning" %}

#### Before you start

To connect Dropbox, you will need:

* A licensed Dropbox account
* Access to an Administrator account if you are connecting Dropbox Business
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection.

Select **Dropbox Personal** if you are connecting an individual Dropbox account, or **Dropbox Team** if you are connecting Dropbox Business.
{% endstep %}

{% step %}

### Configure Dropbox

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

For **Dropbox Team**, enter the **Administrator Account** that Couchdrop will use for the connection.

Select **Authorize Dropbox** and complete the Dropbox authorization process to grant Couchdrop access to the account.

Select **Save and Test** to verify the Dropbox connection.
{% endstep %}

{% step %}

### Map your Dropbox folder

After the connection has been tested, you can select a Dropbox user or specific folder to map into Couchdrop.

Leaving the folder blank allows Couchdrop to map the Dropbox connection without restricting it to a specific subfolder.
{% endstep %}

{% step %}

### Save and use your Dropbox integration

Optionally, configure **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Can Couchdrop connect to Dropbox Personal and Dropbox Business?</summary>

Yes. Couchdrop provides separate **Dropbox Personal** and **Dropbox Team** connection types.

</details>

<details>

<summary>Do I need a Dropbox administrator account?</summary>

An Administrator account is required when connecting Dropbox Business through **Dropbox Team**. It is not required for a Dropbox Personal connection.

</details>

<details>

<summary>Do I need to select a Dropbox folder?</summary>

No. Selecting a folder is optional.

After the connection has been saved and tested, you can select a specific folder to limit the mapped location or leave the folder blank so Couchdrop can map the Dropbox connection directly.

</details>

<details>

<summary>What access does Couchdrop require?</summary>

Couchdrop requires authorized access to the Dropbox APIs so it can list folder contents and upload, download, delete, and make changes to content stored in Dropbox.

Couchdrop states that this access is used in accordance with its [privacy policy](https://couchdrop.io/legal/privacy-policy) and [terms of service](https://couchdrop.io/legal/terms-of-service-policy).

</details>


# Egnyte

Learn how to connect Couchdrop to Egnyte

## Overview

Couchdrop can connect directly to Egnyte and make your existing Egnyte storage available through Couchdrop.

Once connected, you can use files and folders in Egnyte with Couchdrop file transfer and workflow features without moving them into a separate storage platform.

## How to connect Egnyte

{% hint style="warning" %}

#### Before you start

To connect Egnyte, you will need:

* A licensed Egnyte account
* Your Egnyte domain
* Access to the Egnyte folders you want Couchdrop to use
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Egnyte** from the list of available connections.
{% endstep %}

{% step %}

### Configure Egnyte

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter your **Egnyte Domain** using your full Egnyte hostname, for example:

`yourdomain.egnyte.com`
{% endstep %}

{% step %}

### Authorize Couchdrop

Select **Authorize Egnyte**.

A window will open asking you to authorize Couchdrop to access Egnyte. Sign in if required, then select **Allow Access**.

Couchdrop uses the Egnyte APIs to list folder contents and upload, download, delete, and make changes to content stored in Egnyte.&#x20;

Select **Save and Test** to verify the connection with Egnyte.
{% endstep %}

{% step %}

### Select your folder

After the connection has been tested, you can optionally select a specific Egnyte folder to map into Couchdrop.

Leaving this blank allows Couchdrop to map the Egnyte connection without restricting it to a specific folder.

When a folder is selected, Couchdrop limits the connection to that location and its subfolders.
{% endstep %}

{% step %}

### Save and use your Egnyte connection

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Does Couchdrop copy my Egnyte files into Couchdrop?</summary>

No. Couchdrop connects to your existing Egnyte storage and makes it available through Couchdrop. Your files remain stored in Egnyte.

</details>

<details>

<summary>Can I connect Couchdrop to a specific folder in Egnyte?</summary>

Yes. After the connection has been tested, you can optionally select a specific folder to map into Couchdrop.

If you select a folder, Couchdrop limits the connection to that location and its subfolders.

</details>

<details>

<summary>What happens if I do not select an Egnyte folder?</summary>

You can leave the folder selection blank. Couchdrop will map the Egnyte connection without restricting it to a specific folder.

</details>

<details>

<summary>How does Couchdrop access Egnyte?</summary>

Couchdrop connects to Egnyte through the Egnyte APIs after you authorize the integration.\
This allows Couchdrop to list folder contents and upload, download, delete, and make changes to content stored in Egnyte.

</details>

<details>

<summary>Can I use Egnyte with Couchdrop file transfer workflows?</summary>

Yes. Once Egnyte is connected, the mapped storage can be used with Couchdrop file transfer and workflow features.

</details>


# S3 Compatible Storage

Learn how to connect Couchdrop to S3 compatible storage

## Overview

Couchdrop can connect to storage providers that implement the S3 API.

Once connected, the S3-compatible storage can be mapped into Couchdrop and used with Couchdrop file transfer and workflow features while files remain in the connected storage platform.

## How to connect S3 Compatible storage

{% hint style="warning" %}

#### Before you start

To connect an S3-compatible storage provider, you will need:

* The provider's S3-compatible endpoint URL
* An access key
* The corresponding secret access key
* A bucket name, if you want to connect directly to a specific bucket
* A region name, if required by your provider
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **S3 Compatible** from the list of available connections.
{% endstep %}

{% step %}

### Configure the S3 connection

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter the connection details provided by your storage provider:

* **S3 Compatible Endpoint URL** — The S3 API endpoint for the storage service.
* **S3 Compatible Access Key** — The access key Couchdrop will use to authenticate.
* **S3 Compatible Access Key Secret** — The corresponding secret access key.
* **S3 Compatible Bucket** — Optionally enter a bucket to connect directly to that bucket.
* **S3 Compatible Bucket Region Name** — Optionally enter the region associated with the bucket.

Select **Save and Test** to verify the connection.
{% endstep %}

{% step %}

### Map your storage folder

After the connection has been tested, you can optionally select a specific folder to map into Couchdrop.

Leaving the folder selection blank allows Couchdrop to map the storage connection directly without restricting it to a specific folder.
{% endstep %}

{% step %}

### Save and use your connection

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>What is an S3-compatible storage provider?</summary>

An S3-compatible storage provider is a storage platform that implements the S3 API. Couchdrop connects to the provider using its S3-compatible endpoint and access credentials.

</details>

<details>

<summary>Does an S3-compatible connection have to use Amazon S3?</summary>

No. This connection is intended for storage platforms that implement the S3 API but are not necessarily hosted by AWS.

</details>

<details>

<summary>Do I need to specify a bucket?</summary>

No. The **S3 Compatible Bucket** field is optional.

If you provide a bucket, Couchdrop connects directly to that bucket. If you leave it blank, the connection is not restricted by that field.

</details>

<details>

<summary>Do I need to provide a region?</summary>

The **S3 Compatible Bucket Region Name** field is optional.

Whether you need to provide it depends on the requirements of the S3-compatible storage provider you are connecting to.

</details>

<details>

<summary>Can I map Couchdrop to a specific folder?</summary>

Yes. After the connection has been successfully tested, you can optionally select a specific folder or manually enter a path.

Leaving the folder selection blank allows Couchdrop to map the storage connection directly.

</details>

<details>

<summary>Can I use Transfer Shield with an S3-compatible connection?</summary>

Yes. You can optionally apply a Transfer Shield content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through the connection.

</details>


# Other platforms


# OneDrive

Learn how to connect Couchdrop to a OneDrive folder

## Overview

Couchdrop can connect directly to a OneDrive folder and make that storage available through Couchdrop.

Couchdrop supports personal OneDrive accounts. If you need to connect to SharePoint instead, use the dedicated [SharePoint](/storage/integrations/sharepoint) connection.

Once connected, you can use your OneDrive files and folders with Couchdrop file transfer and workflow features while keeping the files stored in OneDrive.

## How to connect OneDrive

{% hint style="warning" %}

#### Before you start

To connect OneDrive, you will need:

* A licensed OneDrive account
* A folder in OneDrive
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **OneDrive** from the list of available connections.
{% endstep %}

{% step %}

### Configure OneDrive

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Choose whether to enable **Connect as Administrator User**.
{% endstep %}

{% step %}

### Authorize Couchdrop

Select **Authorize with One Drive**.

A Microsoft OAuth window will open. Sign in to the OneDrive account you want Couchdrop to access, then approve the requested access.

Select **Save and Test** to verify the OneDrive connection.
{% endstep %}

{% step %}

### Map your preferred OneDrive folder

After the connection has been tested, you can optionally select a specific OneDrive folder using **Select a location**.

Leaving the folder selection blank allows Couchdrop to map the OneDrive connection directly without restricting it to a specific folder.
{% endstep %}

{% step %}

### Save and use your OneDrive storage connection

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Does Couchdrop copy my OneDrive files into Couchdrop?</summary>

No. Couchdrop connects to your existing OneDrive storage and makes it available through Couchdrop. Your files remain stored in OneDrive.

</details>

<details>

<summary>Can I connect Couchdrop to a specific OneDrive folder?</summary>

Yes. After the connection has been tested, you can select a specific folder using the folder selector or manually enter a path.

</details>

<details>

<summary>What happens if I do not select a folder?</summary>

You can leave the folder selection blank. Couchdrop will map the OneDrive connection directly without restricting it to a specific folder.

</details>

<details>

<summary>How does Couchdrop access OneDrive?</summary>

Couchdrop connects to OneDrive through Microsoft OAuth and the OneDrive APIs.

Once authorized, Couchdrop can list folder contents and upload, download, delete, and make changes to content stored in the connected OneDrive account.

</details>

<details>

<summary>Can I connect SharePoint using the OneDrive connection?</summary>

Use Couchdrop's dedicated **SharePoint** connection when connecting to SharePoint sites and document libraries.

</details>


# Backblaze B2

Learn how to connect to Backblaze B2 storage

## Overview

Couchdrop can connect directly to Backblaze B2 and make your existing Backblaze storage available through Couchdrop.

Once connected, you can use files and folders in Backblaze B2 with Couchdrop file transfer and workflow features while keeping the files in your Backblaze bucket.

## How to connect Backblaze B2

{% hint style="warning" %}

#### Before you start

To connect Backblaze B2, you will need:

* A Backblaze B2 account
* A Backblaze Key ID
* The corresponding Backblaze Master Key
* A Backblaze Bucket ID
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Backblaze B2** from the list of available connections.
{% endstep %}

{% step %}

### Configure Backblaze B2

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter your Backblaze credentials:

* **Backblaze Key ID** — Enter the Key ID Couchdrop will use to authenticate with Backblaze.
* **Backblaze Master Key** — Enter the corresponding Backblaze key.
* **Backblaze Bucket ID** — Enter the ID of the Backblaze bucket you want to connect.

Select **Save and Test** to verify the Backblaze B2 connection.
{% endstep %}

{% step %}

### Select your folder

After the connection has been tested, you can optionally select a specific folder to map into Couchdrop.

Leaving the folder selection blank allows Couchdrop to map the connected storage directly without restricting it to a specific folder.
{% endstep %}

{% step %}

### Save your connection and use Backblaze in Couchdrop

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Does Couchdrop copy my Backblaze B2 files into Couchdrop?</summary>

No. Couchdrop connects to your existing Backblaze B2 storage and makes it available through Couchdrop. Your files remain in Backblaze B2.

</details>

<details>

<summary>Can I connect Couchdrop to a specific Backblaze bucket?</summary>

Yes. The **Backblaze Bucket ID** identifies the bucket Couchdrop connects to.

</details>

<details>

<summary>Can I map Couchdrop to a specific folder inside the bucket?</summary>

Yes. After the connection has been successfully tested, you can optionally select a folder or manually enter a path.

Leaving the folder selection blank allows Couchdrop to map the connected storage directly.

</details>

<details>

<summary>Can I create multiple Backblaze B2 connections?</summary>

Yes. You can create separate Backblaze B2 connections in Couchdrop for different buckets or storage mappings.

</details>

<details>

<summary>Can I use Transfer Shield with Backblaze B2?</summary>

Yes. You can optionally apply a Transfer Shield content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through the connection.

</details>


# Filebase


# Lyve Cloud


# BiFrost Cloud


# ShareFile

## Overview

Couchdrop can connect directly to ShareFile and make your existing ShareFile storage available through Couchdrop.

Once connected, you can use files and folders stored in ShareFile with Couchdrop file transfer and workflow features while keeping the files in ShareFile.

## How to connect ShareFile

{% hint style="warning" %}

#### Before you start

To connect ShareFile, you will need:

* A ShareFile account
* Access to the ShareFile folders you want Couchdrop to use
* Permission to authorize Couchdrop to access ShareFile
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **ShareFile** from the list of available connections.
{% endstep %}

{% step %}

### Configure ShareFile

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.
{% endstep %}

{% step %}

### Authorize Couchdrop

Select **Authorize with ShareFile**.

Follow the ShareFile authorization process to grant Couchdrop access to your ShareFile account.

Select **Save and Test** to verify the ShareFile connection.
{% endstep %}

{% step %}

### Select your storage folder

After the connection has been tested, you can optionally select a specific ShareFile folder to map into Couchdrop.

Leaving the folder selection blank allows Couchdrop to map the ShareFile connection directly without restricting it to a specific folder.
{% endstep %}

{% step %}

#### Add the integration

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

### Frequently asked questions

<details>

<summary>Does Couchdrop copy my ShareFile files into Couchdrop?</summary>

No. Couchdrop connects to your existing ShareFile storage. Your files remain stored in ShareFile while Couchdrop provides access to them through its file transfer and workflow features.

</details>

<details>

<summary>How does Couchdrop access ShareFile?</summary>

Couchdrop connects to ShareFile through the ShareFile APIs after you authorize the integration.

This allows Couchdrop to list folder contents and upload, download, delete, and make changes to content stored in ShareFile.

</details>

<details>

<summary>Can I connect Couchdrop to a specific ShareFile folder?</summary>

Yes. After the connection has been successfully tested, you can select a specific folder or manually enter a path.

</details>

<details>

<summary>What happens if I do not select a ShareFile folder?</summary>

The folder selection is optional. Leaving it blank allows Couchdrop to map the ShareFile connection directly without restricting it to a specific folder.

</details>

<details>

<summary>Can I use ShareFile with Couchdrop file transfer workflows?</summary>

Yes. Once ShareFile is connected, the mapped storage can be used with Couchdrop file transfer and workflow features.

</details>

<details>

<summary>Can I use Transfer Shield with ShareFile?</summary>

Yes. You can optionally apply a Transfer Shield content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through the connection.

</details>


# Wasabi

Learn how to connect Wasabi cloud storage to Couchdrop

## Overview

Couchdrop can connect directly to Wasabi storage and make your existing buckets available through Couchdrop.

Once connected, you can use Wasabi with Couchdrop file transfer tools and workflows while files remain stored in your Wasabi account.

## How to connect Wasabi

{% hint style="warning" %}

#### Before you start

To connect Wasabi, you will need:

* A Wasabi account
* A Wasabi bucket
* The Wasabi region for the bucket
* A Wasabi access key
* The corresponding access key secret
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

In Couchdrop, add a new storage connection and select **Wasabi** from the list of available connections.
{% endstep %}

{% step %}

### Configure Wasabi

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.

Enter your Wasabi connection details:

* **Wasabi Cloud Region** — Select the region where your Wasabi bucket is hosted.
* **Wasabi Bucket** — Enter the bucket Couchdrop will connect to.
* **Wasabi Access Key** — Enter the access key Couchdrop will use to authenticate.
* **Wasabi Access Key Secret** — Enter the corresponding secret key.

Select **Save and Test** to verify the Wasabi connection.
{% endstep %}

{% step %}

### Map your storage folder

After the connection has been tested, you can optionally select a specific folder to map into Couchdrop.

Leaving the folder selection blank allows Couchdrop to map the storage connection directly without restricting it to a specific folder.
{% endstep %}

{% step %}

### Add the integration

Optionally, configure **Transfer Shield** and select a content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through this connection.

When the configuration is complete, save the integration.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Do I need to use the S3 Compatible connection for Wasabi?</summary>

No. Couchdrop has a dedicated **Wasabi** connection type.

Use the native Wasabi integration rather than the generic **S3 Compatible** connection when connecting Wasabi storage.

</details>

<details>

<summary>Can I connect Couchdrop to a specific Wasabi bucket?</summary>

Yes. Enter the bucket you want Couchdrop to use in the **Wasabi Bucket** field.

</details>

<details>

<summary>Why do I need to select a Wasabi region?</summary>

The **Wasabi Cloud Region** identifies the region where your bucket is hosted and is used as part of the storage connection configuration.

</details>

<details>

<summary>Can I map Couchdrop to a specific folder in a Wasabi bucket?</summary>

Yes. After the connection has been successfully tested, you can optionally select a folder or manually enter a path.

Leaving the folder selection blank allows Couchdrop to map the storage connection directly.

</details>

<details>

<summary>Can I use Transfer Shield with Wasabi?</summary>

Yes. You can optionally apply a Transfer Shield content rule group to surface or block unexpected, non-compliant, or malicious files uploaded through the connection.

</details>


# Hosted Storage

Learn about Couchdrop Hosted Storage that is included in all plans

## Introduction

Couchdrop lets you choose where files are stored.

Most customers connect their existing cloud or on-premises storage and use Couchdrop to securely transfer files directly to and from that location. If you do not want to connect your own storage, every Couchdrop account also includes Couchdrop Hosted Storage.

### How Hosted Storage works

Couchdrop Hosted Storage uses Amazon S3.

Data stored in **Hosted Storage is encrypted using AES-256 via SSE-C from Amazon S3**, which facilitates client-side key-based encryption. Each Couchdrop customer has their own encryption keys, providing separation between customer data.

Hosted Storage is available in five regions:

* **United States**
* **Canada**
* **Australia**
* **Germany**
* **Singapore**

You select the storage region used by your Couchdrop account based on your data residency requirements.

## How to add Hosted Storage&#x20;

{% hint style="warning" %}

#### Before you start

To create a new Hosted Storage connection, you will need:

* Access to Couchdrop with the appropriate permissions to add storage connections
  {% endhint %}

{% stepper %}
{% step %}

### Add a new storage connection

From the Couchdrop web portal, select **Add Connection** and choose **Hosted Storage**.

This creates a new Couchdrop-managed storage location that can be used as a folder within Couchdrop.
{% endstep %}

{% step %}

### Configure Couchdrop Hosted Storage

Configure the new Hosted Storage connection by giving it a name, choosing where it will appear in Couchdrop, and selecting the storage region.

You can also apply **Transfer Shield** to surface or block unexpected, non-compliant, or malicious files uploaded to this connection.
{% endstep %}

{% step %}

### Save and use Hosted Storage

Save the Hosted Storage connection.

The new storage location will appear as a folder in Couchdrop and can be used with Couchdrop features including SFTP users, Mailboxes, Upload Links, and Automations.
{% endstep %}
{% endstepper %}

## Hosted Storage limits

The amount of Hosted Storage included depends on your [Couchdrop plan](https://www.couchdrop.io/pricing).

Additional Hosted Storage can be purchased for **$60 per TB**.

***

## Frequently asked questions

<details>

<summary>Why use Couchdrop Hosted Storage?</summary>

Hosted Storage gives you somewhere to start immediately without configuring a separate storage platform.

It is available as soon as you create a Couchdrop account or [start a trial](https://www.couchdrop.io/register), so you can test SFTP, Mailboxes, Upload Links, Automations, and other Couchdrop features without first connecting SharePoint, Amazon S3, or another storage provider.

</details>

<details>

<summary>Do external users know whether I am using Hosted Storage?</summary>

No. Couchdrop uses Virtual Folders to present storage through the same filesystem experience regardless of where the files are actually stored.

For an external user, such as an SFTP user, accessing a folder backed by Couchdrop Hosted Storage works the same way as accessing a folder backed by SharePoint or another connected storage platform.

</details>

<details>

<summary>Can I start with Hosted Storage and move to my own storage later?</summary>

Yes. Hosted Storage is useful for getting started quickly, while Couchdrop Virtual Folders let you connect other storage platforms as your setup evolves.

Your users and transfer workflows can continue working through Couchdrop without needing to interact directly with the underlying storage platform.

</details>

<details>

<summary>Do I need to use Couchdrop Hosted Storage?</summary>

No. Most customers connect their existing cloud or on-premises storage and use Couchdrop to transfer files directly to and from those locations.

Hosted Storage is available when you want Couchdrop to provide the storage location instead.

</details>

<details>

<summary>Where is Hosted Storage located?</summary>

Hosted Storage is available in the United States, Canada, Australia, Germany, and Singapore.\
You can select the region used for your Couchdrop account based on your data residency requirements.

</details>

<details>

<summary>Is data in Hosted Storage encrypted?</summary>

Yes. Data stored in Couchdrop Hosted Storage is encrypted using AES-256.\
Each customer uses separate encryption keys for data stored in Hosted Storage.

</details>

<details>

<summary>Can I purchase additional Hosted Storage?</summary>

Yes. Additional Hosted Storage can be purchased for $60 per TB.

</details>


# Local Storage

Learn how to connect Couchdrop to a Windows or OSX File Server

## Overview

Couchdrop can connect to file storage hosted on Microsoft Windows or Apple macOS using the Couchdrop agent.

The agent can run on the file server itself, another server, or a virtual machine. It authenticates to Couchdrop using an **Agent Token** and communicates with Couchdrop over secure HTTPS connections.

Where possible, install the agent on a separate virtual machine and connect the required file storage using mapped network drives rather than installing the agent directly on the target file server.

### How the agent works

The Couchdrop agent provides the connection between Couchdrop and storage accessible from the machine where the agent is installed.

The agent:

* Authenticates using the **Agent Token** generated in Couchdrop
* Communicates with Couchdrop over secure HTTPS connections
* Can run directly on a server or on a separate virtual machine
* Can access file storage exposed to that machine, including mapped network drives

Using a separate virtual machine can keep the Couchdrop agent isolated from the target file server while still providing access to the required storage.

## How to connect a Windows or macOS server

{% hint style="warning" %}

#### Before you start

To connect a Windows or macOS server, you will need:

* Administrator access to the server or a suitable virtual machine
* Remote access to the server, such as RDP for Windows
* A reliable internet connection
* At least 16 GB of memory and 2 CPU cores on the host or virtual machine
* Windows 10 or above when using Windows
* Access to the folder or mapped network drive that Couchdrop will use

For the complete host requirements, see [**Server Requirements**](/storage/local-storage/server-requirements).
{% endhint %}

{% stepper %}
{% step %}

### Add a new connection

In Couchdrop, add a new connection and select **Windows/OSX Server** from the list of available connections.

Enter a **Name for this integration** and select the **Couchdrop folder path** where the connection will appear.
{% endstep %}

{% step %}

### Generate your Agent Token

Click **Generate Agent Token**.

Copy the generated token before leaving the page.

{% hint style="danger" %}
The **Agent Token** can only be viewed once. Copy and store it securely before leaving the configuration screen.
{% endhint %}
{% endstep %}

{% step %}

### Download the Couchdrop agent

Download the agent that matches the system where it will run:

* **Windows**
* **OSX x64**
* **OSX arm64**

Log in to the target server or virtual machine using an administrator account, then install and launch the agent.

{% hint style="info" %}
We recommend running the Couchdrop agent on a separate virtual machine where possible, then connecting your file server through mapped network drives.
{% endhint %}
{% endstep %}

{% step %}

### Connect the agent to Couchdrop

Paste the **Agent Token** you generated in Couchdrop into the agent configuration and click **Connect**.

After the connection is established, the agent status should show that the server is connected to Couchdrop.
{% endstep %}

{% step %}

### Test and save the connection

Return to Couchdrop and test the connection.

Once Couchdrop confirms that the agent is connected, save the connection configuration.

You can optionally apply **Transfer Shield**.

Transfer Shield can surface or block unexpected, non-compliant, or malicious files uploaded through the connection. Select a **content rule group** if you want Transfer Shield controls applied.
{% endstep %}
{% endstepper %}

***

## Frequently asked questions

<details>

<summary>Should I install the Couchdrop agent directly on my file server?</summary>

Where possible, no. We recommend installing the agent on a separate virtual machine and connecting the required file storage through mapped network drives.

</details>

<details>

<summary>Which operating systems are supported?</summary>

The agent supports Microsoft Windows and Apple macOS. Couchdrop provides downloads for **Windows**, **OSX x64**, and **OSX arm64**.

For Windows systems, Windows 10 or above is required.

</details>

<details>

<summary>Can I connect a mapped network drive?</summary>

Yes. The recommended deployment is to run the agent on a suitable virtual machine and connect the target file storage using mapped network drives.

</details>

<details>

<summary>Can the agent connect through a proxy server?</summary>

Yes. If internet access is only available through a proxy, you can configure HTTP, HTTPS, or SOCKS proxy details in the Couchdrop Cloud Connector configuration.

Proxy settings and shortcuts to the configuration files are also available from the agent **Settings** menu.

See **Proxy configuration** for configuration examples.

</details>

<details>

<summary>Does the agent require inbound firewall ports?</summary>

No. The Couchdrop agent communicates with the Couchdrop control plane and APIs over HTTPS, so additional inbound ports do not need to be opened.

If your organization restricts outbound traffic using a firewall, proxy, or web filter, you may need to allow the Couchdrop domains and addresses listed under **Server Requirements**.

</details>

<details>

<summary>How does the agent authenticate with Couchdrop?</summary>

The agent uses an **Agent Token** generated when configuring the connection in Couchdrop.

The token can only be viewed once, so copy and store it securely when it is generated.

</details>

<details>

<summary>How does the agent authenticate with Couchdrop?</summary>

The agent authenticates using an **Agent Token** generated when you configure the **Windows/OSX Server** connection in Couchdrop.

The token can only be viewed once. Copy and store it securely before leaving the configuration screen.

</details>

<details>

<summary>Where can I find the Couchdrop agent logs?</summary>

On Windows, the agent logs are stored by default in:

```
C:\Users\%username%\AppData\Local\CouchdropCloudConnector
```

You can also open the local logs and configuration files from the **Settings** gear within the Couchdrop agent.

See [**Logging and Debugging**](/storage/local-storage/logging-and-debugging) for more information.

</details>


# Server Requirements

Learn about requirements for connecting Couchdrop to file servers

## Overview

The Couchdrop Windows / macOS Agent connects on-premises file servers to Couchdrop.

The agent runs as an executable on a Microsoft Windows or macOS host and can also run as a service.

### Server requirements

The resources required by the agent can vary depending on the types and volume of transfers involved.

For most deployments, we recommend:

| Component           | Recommendation |
| ------------------- | -------------- |
| **CPU**             | 4–8 vCPU cores |
| **Memory**          | 16 GB          |
| **Free disk space** | 32 GB          |

{% hint style="info" %}
Higher-volume transfers may require additional CPU, memory, disk space, or network capacity.
{% endhint %}

### Supported Windows versions

The following Microsoft Windows versions have been tested for use with the Couchdrop Agent.

| Operating system       | Supported |
| ---------------------- | --------- |
| Windows XP             | No        |
| Windows 10             | Yes       |
| Windows Server 2012 R2 | No        |
| Windows Server 2016    | Yes       |
| Windows Server 2019    | Yes       |
| Windows Server 2022    | Yes       |

{% hint style="info" %}
For help configuring the agent on an operating system that is not listed above, contact [**support@couchdrop.io**](mailto:support@couchdrop.io).
{% endhint %}

### Software requirements

The Windows Agent requires **Microsoft .NET Framework 4.7.2**.

Make sure this version of the .NET Framework is installed before opening or running the agent.

### Network requirements

Transfer performance depends on both your internal network and your external internet connection.

For environments transferring high volumes of files or data, we recommend using the highest available uplink speed, with a **1 Gbps fiber connection** where possible.

If you experience performance issues with the agent:

* Run a speed test from the agent host.
* Check the available upload and download bandwidth.
* Check the internal connection between the agent and your file server or network storage.
* When applicable, select a Couchdrop data region that is geographically close to the agent.

### Firewall requirements

The Couchdrop Agent communicates with the Couchdrop control plane and APIs exclusively over **HTTPS**. No additional inbound ports need to be opened.

If your organization uses a proxy server, firewall, or web filter that restricts outbound traffic, allow access to:

* `fileio.couchdrop.io`
* `api.couchdrop.io`
* `*.couchdrop.io`
* `8.8.8.8`
* `8.8.4.4`

{% hint style="info" %}
If you continue to experience connectivity issues after allowing these destinations, contact [**support@couchdrop.io**](mailto:support@couchdrop.io).
{% endhint %}


# Proxy Configuration

Learn about working with proxy configuration for file servers

## Overview

If the Couchdrop Windows / macOS Agent is running in a network where internet access is only available through a proxy server, additional configuration is required.

You can add the proxy details directly to the Couchdrop Agent configuration file.

{% hint style="info" %}
For the full agent installation and configuration process, see **Windows / Mac File Server**.
{% endhint %}

## How to configure a proxy

{% stepper %}
{% step %}

### Install and configure the agent

Install and run the Couchdrop Agent, then set the connection token as normal.
{% endstep %}

{% step %}

### Stop the agent

Stop the Couchdrop Agent before editing its configuration file.
{% endstep %}

{% step %}

### Locate the configuration file

Locate the Couchdrop Agent configuration file.

On Windows, it is normally stored in:

`C:\Users\%username%\AppData\Local\CouchdropCloudConnector`

Open the configuration file using Notepad or another text editor. The file contains the agent configuration in JSON format.
{% endstep %}

{% step %}

### Add the proxy configuration

Locate the `"proxies"` section and add the HTTP and HTTPS proxy addresses.

```json
{
  "...": "...",
  "proxies": {
    "http": "",
    "https": ""
  },
  "...": "..."
}
```

Enter the proxy URL required by your network for the `"http"` and `"https"` values.
{% endstep %}

{% step %}

### Save and restart the agent

Save the configuration file, then start the Couchdrop Agent again.

The agent will use the configured proxy when communicating with Couchdrop.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Proxy settings, along with shortcut links to the agent logs and configuration files, are also available from the **Settings** gear within the Couchdrop Agent.
{% endhint %}

## Proxy URL syntax

Use the appropriate syntax for your proxy configuration.

| Type                    | Format                                 | Example                                    |
| ----------------------- | -------------------------------------- | ------------------------------------------ |
| No username or password | `http://<ip>:<port>`                   | `http://127.0.0.1:8080`                    |
| Username and password   | `http://username:password@<ip>:<port>` | `http://proxyuser:password@127.0.0.1:8080` |
| SOCKS proxy             | `socks://<ip>:<port>`                  | `socks://127.0.0.1:8080`                   |

## Debugging

If the agent cannot connect after configuring the proxy, check the log files stored in the same directory as the configuration files.

You can also use the shortcuts available from the agent **Settings** menu to open the logs and configuration files.

For additional help, contact [**support@couchdrop.io**](mailto:support@couchdrop.io).


# Non-GUI Environments

Learn about connecting the Couchdrop agent in a Non-GUI environment

## Overview

You can install the Couchdrop Windows Agent on a server without using the graphical interface.

This process involves configuring the Couchdrop Cloud Connector on a workstation first, copying its configuration to the server, installing the agent silently, and then running it as a Windows service.

## Install and configure the agent on a workstation

First, install and configure the Couchdrop Agent on a workstation where you can use the graphical interface.

For configuration instructions, see the [Windows / Mac File Server guide](/storage/local-storage).

Once the agent is installed and connected, browse to:

```
C:\Users\%username%\AppData\Local\CouchdropCloudConnector
```

Copy the following to a location that you can access from the target server:

* `configuration.conf`
* The Couchdrop Cloud Connector installer

Once these files have been copied, you can uninstall the agent from the workstation if it is no longer required there.

## Set up the agent on the server

{% stepper %}
{% step %}

### Open Command Prompt as Administrator

On the target server, open **Command Prompt** as an administrator.

Navigate to the location where you copied the Couchdrop Cloud Connector installer and `configuration.conf`.
{% endstep %}

{% step %}

### Install the agent silently

Run the Couchdrop Cloud Connector installer using the `/quiet` option.

For example:

```
C:\Couchdrop\couchdrop-cloud-connector-installer.msi /quiet
```

Your installer path may be different depending on where you copied the file.
{% endstep %}

{% step %}

### Copy the agent configuration

After installation, browse to:

```
C:\Users\%username%\AppData\Local\CouchdropCloudConnector
```

If the `CouchdropCloudConnector` folder does not exist, create it under `AppData\Local`.

Copy `configuration.conf` from the workstation into this folder.
{% endstep %}

{% step %}

### Install the agent as a service

Configure the Couchdrop Agent to run as a Windows service.

See [Running the Couchdrop Agent as a Service](/storage/local-storage/running-the-couchdrop-agent-as-a-service) for the full service configuration instructions.

You do not need to install the agent again. Continue from the section that instructs you to run:

```
.\couchdrop-cloud-connector-service.exe install
```

Complete the remaining service setup steps and confirm that the service is running.
{% endstep %}

{% step %}

### Verify the connection in Couchdrop

Once the service is running, open Couchdrop and check the Couchdrop Cloud Connector integration.

Confirm that the integration shows a successful connection.
{% endstep %}
{% endstepper %}


# Running the Couchdrop Agent as a Service

Learn how to run the Couchdrop Agent as a Service for file server transfers.

## Overview

The Couchdrop Agent, also known as the Couchdrop Cloud Connector, can run as a Windows service.

Running the agent as a service allows it to continue operating in the background without requiring the desktop application to remain open.

The service must run under the same Windows user account that was used to configure the agent. The Couchdrop Agent configuration is stored within that user's profile, so using a different account can prevent the service from connecting correctly.

## How to run the Couchdrop Agent as a service

{% hint style="warning" %}

#### Before you start

Before installing the service:

* Install and configure the Couchdrop Cloud Connector by following the [Windows / Mac File Server](/storage/local-storage) setup instructions.
* Confirm that the agent is connected and working correctly.
* Close the Couchdrop Cloud Connector desktop configuration application and system tray application.
* Make sure you know which Windows user account was used to configure the agent.
  {% endhint %}

{% stepper %}
{% step %}

### Open the Couchdrop Cloud Connector folder

Open a command line and navigate to the Couchdrop Cloud Connector installation folder under **Program Files**.
{% endstep %}

{% step %}

### Install the Windows service

Run the following command from the Couchdrop Cloud Connector folder:

```
.\couchdrop-cloud-connector-service.exe install
```

This installs the Couchdrop Cloud Connector as a Windows service.
{% endstep %}

{% step %}

### Open Windows Services

Open the Windows Service Manager by running:

```
services.msc
```

Find **Couchdrop Cloud Connector** in the list of services and open its properties.
{% endstep %}

{% step %}

### Configure the service account

Open the **Log On** settings for the **Couchdrop Cloud Connector** service.

Configure the service to run using the same Windows user account that was used to configure the Couchdrop Agent.

{% hint style="warning" %}
The agent configuration is stored under the Windows user's profile. If the service runs under a different account, it may not be able to access the configuration and connect to Couchdrop.
{% endhint %}
{% endstep %}

{% step %}

### Start the service

Start the **Couchdrop Cloud Connector** service.

Once the service is running, reopen the Couchdrop Cloud Connector configuration application.

The application should show the agent as **Running in Background**.
{% endstep %}
{% endstepper %}


# Logging and Debugging

Learn about logging and debugging with regards to Windows file servers

The Couchdrop Windows Agent creates log files that can help diagnose connection, configuration, and transfer issues.

The Couchdrop support team may also ask you to provide these logs when investigating an issue.

## How to find Couchdrop Agent logs in Windows

By default, the Couchdrop Agent stores its logs in:

```
C:\Users\%username%\AppData\Local\CouchdropCloudConnector
```

The logs are stored alongside the agent's local configuration files.

## How to view logs from the Couchdrop Agent

You can also access the logs directly from the Couchdrop Agent.

Open the **Settings** menu using the gear icon. From there, you can use the available shortcuts to open the local log directory and configuration files.

If you are working with Couchdrop support, provide the requested log files from this location to help with debugging.


# File Browser

Learn about how to use Couchdrop's file browser

## Overview

Couchdrop's File Browser gives you a single place to browse files and folders across your connected storage platforms.

Folders in the File Browser map to your storage connections, allowing you to view, upload, and download files without accessing each storage platform separately.

{% hint style="info" %}
Folders in the File Browser map directly to your storage integrations. For more information about how storage is presented in Couchdrop, see [Virtual Folders](/how-couchdrop-works).&#x20;
{% endhint %}

## Using the File Browser

When you [set up a storage connection](/storage/overview), you select the folder or storage location that Couchdrop will use as the root of that connection.

This location becomes the highest-level folder available through Couchdrop. Any parent folders above the configured root are not surfaced in the File Browser.

Because each storage connection appears as a folder, you can connect storage from multiple platforms and browse them through the same interface.

Users with access to the Couchdrop web portal can also interact with files stored in these connected locations, subject to their configured permissions.

{% hint style="info" %}
Folders used by configured file transfer features, such as Mailboxes or Shared Links, display an **In Use** icon beside the folder.
{% endhint %}

Couchdrop's File Browser is focused on file transfer and access rather than document collaboration. It does not provide live document editing or the collaboration features available in platforms such as Google Drive or Dropbox.

Instead, the File Browser gives you centralized visibility across connected storage while allowing access, security, and transfer controls to be applied at the folder level.

## Managing settings and permissions

You can configure permissions and security controls for individual folders in Couchdrop's virtual file system.

<table><thead><tr><th width="191.2734375">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Permissions</strong></td><td>Control user and group access to the folder using read and write permissions.</td></tr><tr><td><strong>Notifications</strong></td><td>Send an email or webhook notification when an upload, download, or transfer failure involves the folder.</td></tr><tr><td><strong>Encryption</strong></td><td>Automatically PGP encrypt files when they are uploaded and/or PGP decrypt files when they are downloaded from the folder.</td></tr><tr><td><strong>Approval</strong></td><td>Require approval for file uploads or for creating Shared Links that point to the folder.</td></tr><tr><td><strong>Transfer Shield</strong></td><td>Apply content classification and rules using <a href="/security-and-governance/transfer-shield-dlp">Transfer Shield</a>. </td></tr></tbody></table>

Folders with modified settings display an icon beside the folder name indicating that custom permissions, security, or other folder-level settings have been applied.


# Overview

Platform integrations connect Couchdrop with the applications and services that sit around your file transfer workflows.

Unlike storage integrations, which connect Couchdrop to locations where files are stored, platform integrations connect Couchdrop to systems that create, consume, analyze, monitor, or react to data.

These integrations include business applications, data and analytics platforms, SIEM platforms, integration platforms, messaging services, and APIs.

## How platform integrations work

A platform integration provides Couchdrop with a connection to an external application or service.

How the connection is used depends on the platform. Couchdrop may exchange data with a business application, interact with a data platform, publish information to a messaging service, or connect with another system through an API.

Platform integrations can be used alongside storage connections and Couchdrop workflows to connect file transfer processes with the wider systems used by your organization.

{% hint style="info" %}
Platform integrations are separate from storage integrations. If you need to connect SharePoint, Google Drive, S3, SFTP, or another location where files are stored, see [Storage Integrations](/storage/integrations).
{% endhint %}

***

## Get started

Choose the integration category that matches the system you want Couchdrop to communicate with, then follow the platform-specific guide for its authentication and configuration requirements.

Where a dedicated integration is available, use that integration. For other compatible API-based applications, use the [OpenAPI Connector](/integrations/custom-api-connector).

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4>Business Systems</h4><p>Connect Couchdrop with business applications such as ERP and CRM platforms.</p></td><td><a href="/integrations/business-systems">Business Systems</a></td></tr><tr><td><h4>Data, Analytics &#x26; BI</h4><p>Connect Couchdrop with data, analytics, and business intelligence tools.</p></td><td><a href="/integrations/data-analytics-and-bi">Data, Analytics, &amp; BI</a></td></tr><tr><td><h4>SIEM</h4><p>Connect Couchdrop with SIEM to centralize operational and security information.</p></td><td><a href="/integrations/siem">SIEM integrations</a></td></tr><tr><td><h4>iPaaS</h4><p>Connect Couchdrop with Integration Platform as a Service providers</p></td><td><a href="/integrations/ipaas-platforms">IPaaS platforms</a></td></tr><tr><td><h4>OpenAPI</h4><p>Connect Couchdrop with  custom APIs when a native integration is not available.</p></td><td><a href="/integrations/custom-api-connector">Custom API Connector</a></td></tr></tbody></table>


# Business Systems


# NetSuite

Learn how to integrate NetSuite using the NetSuite API connector

## Overview

The NetSuite connector allows Couchdrop to connect directly to the NetSuite API and use NetSuite data within Couchdrop Automations.

Because loading every possible NetSuite record and path would significantly affect performance and loading times, Couchdrop provides commonly used records such as Accounts, Customers, Payments, and Invoices.

If your organization requires a record type that is currently unsupported, please reach out to us at <sales@couchdrop.io>.

### How NetSuite works with Couchdrop

NetSuite is a direct API integration rather than a file-based storage connection. This type of integration does not appear directly as a [virtual folder](/storage/file-browser), as it deals directly with API data.&#x20;

After you configure the connection, it becomes available within [Automations & Actions](/automations/overview). In the workflow builder, NetSuite connections appear under **External API**, with actions available for the NetSuite records selected when the connection was configured.

This allows NetSuite data to be used in workflows alongside file-based actions and other connected platforms.

## Configuration steps

Using the NetSuite connector requires initial setup in two areas: Creating an application in NetSuite and integrating the NetSuite Application with Couchdrop.&#x20;

{% hint style="warning" %}

#### Before you start

To configure the NetSuite API connector, you will need:

* A Couchdrop plan that includes Automations
* Administrator access to NetSuite with permission to manage Users, Roles, and Integrations
* A NetSuite application to connect to Couchdrop
* The required NetSuite features enabled at the Company level
  {% endhint %}

### Step 1: Creating an application in NetSuite

1. Log in to NetSuite as an Admin who has access to edit Users and Roles
2. Go to **Setup > Company > Setup Tasks > Enable Features.** Enable **`REST Web Services, SuiteAnalytics Workbook` ,** and **`OAUTH 2.0`**
3. Create a new Role for the **User in Setup > Users/Roles > New Roles**&#x20;

{% hint style="info" %}
You can also use an existing Role in **Setup > Users/Roles > Manage Roles** if it has the permissions below.&#x20;
{% endhint %}

3. Go to **Permissions > Setup** and add **`REST Web Services`** ,  **`Log in using Access Tokens`** ,  **`SuiteAnalytics Workbook`** . Make sure the Level is set to "Full" for each.&#x20;
   1. The Role will also need permissions to access the NetSuite Records you want Couchdrop to access.
4. Give the Role to the User in **Setup > Users/Roles > \[Username]**. Click Edit and go to **Access > Roles > \[New Role]** and Save.&#x20;
5. Go to **Setup > Integration > Manage Integrations > New.**&#x20;

In **OAuth 2.0** check: **`AUTHORIZATION CODE GRANT`** , **`PUBLIC CLIENT`**  , **`REST WEB SERVICES`** . In **REDIRECT URI,** paste the URI below and click Save.&#x20;

```
https://my.couchdrop.io/systemconnector/systemintegration/activate/callback
```

{% hint style="danger" %}
The Client Credentials will only show one time. Make sure to copy them. You’ll need the **Consumer Key** and **Consumer Secret** to use the NetSuite Connector in Couchdrop.&#x20;
{% endhint %}

### Step 2: Integrating the NetSuite application with Couchdrop

1. In Couchdrop, choose to add a new Platform and select **NetSuite Integration.**&#x20;
2. Name the integration. Add the **Account ID** and paste the **Consumer Key** and **Consumer Secret** from the NetSuite application, then authorize the connection.&#x20;

{% hint style="info" %}
You can find the Account ID when logged into NetSuite in the URL at \[**ACCOUNT ID].**&#x61;pp.netsuite.com
{% endhint %}

3. Select the NetSuite Records you want Couchdrop to access and click Load Schema. Available actions will populate as a preview. Save the integration.&#x20;

## Frequently asked questions

<details>

<summary>Why is NetSuite giving me permission errors as an Administrator? </summary>

A NetSuite Administrator does not necessarily have full access and permissions. Check that the Administrator has the explicit permissions listed in [Creating an application in NetSuite](#creating-an-application-in-netsuite) at the "Full" level.&#x20;

</details>

<details>

<summary>Why aren't the actions I want showing? </summary>

The NetSuite API requires you to manually choose specific Records to include in your integration. Check that your record type is enabled and save the integration. If the specific actions are still unavailable, email us at <support@couchdrop.io>.&#x20;

</details>

<details>

<summary>Can file and API data be used in the same workflow? </summary>

Yes, Couchdrop supports flows using both file and API data. You can also use the Transform actions to convert data types as part of the workflow.

</details>

<details>

<summary>Can we use SFTP or FTP with NetSuite? </summary>

Yes, Couchdrop supports FTP and SFTP for NetSuite data. This is done using the standard SFTP connector and not the NetSuite API connector.&#x20;

</details>


# Slack

Learn how to integrate Slack with Couchdrop

## Overview

Slack is a messaging platform used by teams to communicate and coordinate work through channels and direct messages.

Couchdrop integrates with Slack to send workflow notifications and Transfer Shield approval requests to selected channels. This keeps operational updates and approval tasks visible to the teams responsible for them.

## How Slack works with Couchdrop

Slack is configured in Couchdrop as an integration and platform connection. The connection uses a Slack bot to retrieve available channels and send messages.

Couchdrop uses the Slack integration in three places:

* **Custom Notification action:** Add a Slack notification to any branch of an Automation Workflow, including conditional paths and failure-handling paths. You can select the destination channel, write a custom message, and insert [workflow variables](/automations/variables) into the message.
* **Workflow success and failure notifications:** Send a Slack notification when the entire workflow completes successfully or fails.
* **Transfer Shield approvals:** Send approval requests to a Slack channel when a [Transfer Shield policy or rule group](/security-and-governance/transfer-shield-dlp/content-rule-groups) triggers an approval. Couchdrop can send these requests through Slack as well as email.

## Set up the Slack integration

{% hint style="warning" %}

### Before you start

You need:

* Couchdrop administrator access
* Permission to install apps in your Slack workspace

By default, any workspace member can install a Slack app. Workspace owners can enable app approval, which limits installation to approved apps. If your workspace restricts apps, ask a workspace owner to approve the Couchdrop app.
{% endhint %}

{% stepper %}
{% step %}

### Create the Slack app

1. Open [Slack API: Your Apps](https://api.slack.com/apps).
2. Click **Create New App**.
3. Select **From a manifest**.
4. Choose the Slack workspace where Couchdrop should send messages.
5. Paste the following manifest:

```json
{
  "display_information": {
    "name": "Couchdrop"
  },
  "settings": {
    "org_deploy_enabled": false,
    "socket_mode_enabled": false,
    "is_hosted": false,
    "token_rotation_enabled": false
  },
  "features": {
    "bot_user": {
      "display_name": "Couchdrop",
      "always_online": false
    }
  },
  "oauth_config": {
    "scopes": {
      "bot": [
        "channels:history",
        "channels:read",
        "chat:write",
        "groups:history",
        "groups:read",
        "im:history",
        "im:read",
        "im:write",
        "links:read",
        "links:write",
        "mpim:history",
        "mpim:read",
        "remote_files:read",
        "remote_files:share",
        "remote_files:write",
        "channels:join"
      ]
    }
  }
}
```

6. Review the configuration, then click **Create**.
7. Install the app in your workspace.
8. When Slack requests authorization, click **Allow**.
9. Click **Go to App Settings**.

{% endstep %}

{% step %}

### Copy the bot token

1. Open **OAuth & Permissions** in the Slack app settings.
2. Find **Bot User OAuth Token**.
3. Copy the token. It begins with `xoxb-`, for example:

```
xoxb-XXXXXXXXXXXX-XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX
```

{% hint style="danger" %}
Treat this token like a password. Do not share it or store it in documentation, support tickets, or source control.
{% endhint %}

{% endstep %}

{% step %}

### Connect Slack to Couchdrop

1. Open the [Admin Panel](/administration/admin-panel-and-user-mode#admin-panel).
2. Go to **Integrations > Platforms**.
3. Click **Add connection**.
4. Find and select **Slack**.
5. Paste the Bot User OAuth Token into the token field.
6. Fetch the available Slack channels.
7. Save and test the connection.

{% hint style="info" %}
The Slack integration is ready when Couchdrop successfully retrieves the channels and passes the connection test.
{% endhint %}
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Why does a Slack channel not appear in Couchdrop?</summary>

Refresh the channel list in the Slack connection. For a private channel, add the Couchdrop bot to the channel first, then fetch the channels again. Slack limits an app’s access to private conversations where the app is a member.

</details>

<details>

<summary>Can I send notifications from different branches of the same workflow?</summary>

Yes. Add a **Custom Notification** action to each branch that requires an alert. This includes conditional branches and failure-handling paths. Each action can use a different channel and message.

</details>

<details>

<summary>Can a workflow send both a custom notification and a completion notification?</summary>

Yes. Custom notifications run at their configured position in the workflow. Success and failure notifications report the final result of the entire workflow.

Configuring both may produce more than one Slack message during a single execution. Use distinct messages so recipients can tell a branch notification from the final workflow result.

</details>

<details>

<summary>Which variables can I include in a custom Slack message?</summary>

Custom messages support Couchdrop workflow variables. These can insert execution details such as filenames, paths, users, timestamps, and event information. See [Automation Workflow variables](https://docs.couchdrop.io/automations/variables.md) for the available values.

</details>

<details>

<summary>Do Transfer Shield Slack approvals replace email approvals?</summary>

No. Transfer Shield can send an approval request to a Slack channel as well as by email. Configure the methods that suit your approval process.

</details>

<details>

<summary>What should I do if the Slack token changes or stops working?</summary>

Copy the current Bot User OAuth Token from the Slack app’s **OAuth & Permissions** page, update the Slack connection in Couchdrop, then fetch the channels and test the connection again.

Slack may issue a new token when an app is reinstalled. A revoked token can no longer authorize the connection. [Learn about reinstalling Slack apps](https://slack.com/help/articles/202035138-Add-apps-to-your-Slack-workspace).

</details>

<details>

<summary>Can I connect more than one Slack workspace?</summary>

Yes. Install the Couchdrop app in each Slack workspace and create a separate Couchdrop connection using that workspace’s Bot User OAuth Token. Slack tokens apply to the workspace where the app was installed.

</details>


# Salesforce


# IPaaS platforms

Learn about connecting Couchdrop to IPaaS platforms


# Boomi

Learn about Couchdrop's native Boomi integration.

## Overview

Boomi is an Integration Platform as a Service (iPaaS) used to connect applications and automate data between systems.

Couchdrop can act as the secure file transfer layer for Boomi. While Boomi handles application integration and downstream processing, Couchdrop manages how files enter the workflow through SFTP, FTP, and other supported transfer methods.

Couchdrop can also apply file transfer security and governance controls, including Transfer Shield, before files are passed into Boomi.

## How Boomi works with Couchdrop

Boomi is configured in Couchdrop as an outbound connection.

The connection links a Couchdrop folder to a Boomi process using its web service endpoint. Files uploaded to the folder are sent to Boomi, where the deployed process receives and processes them.

Boomi processes exposed through its API can use a **Web Services Server connector** to receive these requests.

## How to connect Boomi

{% hint style="warning" %}

#### Before you start

To connect Boomi to Couchdrop, you will need:

* Administrator access to Couchdrop
* A Boomi process with a **Web Services Server connector** deployed to an environment
* The **Environment API URL** for the Boomi environment
* The **Endpoint (Simple URL Path)** for the deployed process
* A **Username** and **Token** from **Shared Web Server > User Management**

Boomi public runtime clouds have a **5 MB maximum web service request input size when using Low Latency mode**.
{% endhint %}

{% stepper %}
{% step %}

### Configure and deploy your Boomi process

In Boomi, create or configure the process that will receive files from Couchdrop using a **Web Services Server connector**.

Deploy the process to the Boomi environment that Couchdrop will send files to.

Copy the following details from your Boomi environment:

* **Environment API URL**
* **Endpoint (Simple URL Path)**
* **Username**
* **Token**

You will use these values when creating the connection in Couchdrop.
{% endstep %}

{% step %}

### Create the Boomi connection in Couchdrop

In Couchdrop, add a new outbound connection and select **Boomi**.

Configure the connection with:

* **Name** — A name used to identify the Boomi connection in Couchdrop.
* **Folder name** — The Couchdrop folder that will send uploaded files to Boomi.
* **Environment API URL** — The API URL for your deployed Boomi environment.
* **Endpoint** — The Simple URL Path for the Boomi process.
* **Username** — The username configured for the Boomi web service.
* **Token** — The corresponding authentication token.

Save the connection.
{% endstep %}

{% step %}

### Send files to Boomi

Upload a file to the Couchdrop folder created for the Boomi connection.

Couchdrop will send the file to the configured Boomi endpoint, allowing the deployed Boomi process to receive and process it.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>How does Couchdrop send files to Boomi?</summary>

Couchdrop sends files to a deployed Boomi process through its configured web service endpoint.

</details>

<details>

<summary>Can Couchdrop apply controls before files reach Boomi?</summary>

Yes. Couchdrop can apply security and governance controls such as Transfer Shield before files continue into the Boomi workflow.

</details>

<details>

<summary>Does Boomi need to be exposed directly to external partners?</summary>

No. External partners can transfer files through Couchdrop, while Couchdrop handles the file transfer boundary and sends files onward to the configured Boomi process.

</details>


# Celigo

Learn about Couchdrop's native Celigo integration.

## Overview

Celigo is an Enterprise Integration Platform as a Service (iPaaS) used to connect applications and automate data between systems.

Couchdrop can act as the secure file transfer layer for Celigo. While Celigo handles application integration and downstream processing, Couchdrop manages how files enter the workflow through SFTP, FTP, and other supported transfer methods.

Couchdrop can also apply file transfer security and governance controls, including [Transfer Shield](/security-and-governance/transfer-shield-dlp), before files are passed into Celigo.

## How Celigo works with Couchdrop

Celigo is configured in Couchdrop as an outbound connection.

The connection links a Couchdrop folder to a Celigo flow using a webhook listener. Files uploaded to the folder are sent to the webhook URL, where Celigo receives them and triggers the configured flow.

## How to connect Celigo

{% hint style="warning" %}

#### Before you start

To connect Celigo to Couchdrop, you will need:

* Administrator access to Couchdrop
* A Celigo flow with a **Webhook listener**
* The **Public URL** generated for the webhook
* A **Username** and **Password** configured using **Basic** authentication
* The **Content Type** accepted by the webhook
  {% endhint %}

{% stepper %}
{% step %}

### Create a webhook listener in Celigo

In Celigo, create a flow and add a **Source** using **Webhook**.

Name the webhook and continue to its configuration.

Under **Secure the Listener**, select **Basic** and configure a **Username** and **Password**. Couchdrop will use these credentials when sending files to Celigo.

Generate the **Public URL** using the plus button beside the URL field, then save your configuration.

Keep the **Public URL**, **Username**, and **Password** available for the Couchdrop connection.
{% endstep %}

{% step %}

### Create the Celigo connection in Couchdrop

In Couchdrop, add a new outbound connection and select **Celigo**.

Configure the connection with:

* **Name** — A name used to identify the Celigo connection.
* **Folder name** — The Couchdrop folder that will send files to Celigo.
* **Webhook URL** — The **Public URL** generated by Celigo.
* **Content Type** — The content type expected by the Celigo webhook (application/json, application/xml, or application/x-www-form-urlencoded).
* **Username** — The username configured for Basic authentication.
* **Password** — The corresponding password.

Save the connection.
{% endstep %}

{% step %}

### Send files to Celigo

Upload a file to the Couchdrop folder created for the Celigo connection.

Couchdrop will send the file to the configured webhook URL, allowing the Celigo flow to receive and process it.
{% endstep %}
{% endstepper %}

## Frequently asked questions

<details>

<summary>Why use Couchdrop with Celigo?</summary>

Couchdrop provides the managed file transfer layer around Celigo. External partners and systems can deliver files using supported transfer methods such as SFTP and FTP, while Celigo remains focused on application integration and downstream processing.

</details>

<details>

<summary>Can Couchdrop apply controls before files reach Celigo?</summary>

Yes. Couchdrop can apply security and governance controls such as Transfer Shield before files continue into the Celigo workflow.

</details>

<details>

<summary>Does Celigo need to be exposed directly to external partners?</summary>

No. Partners can transfer files through Couchdrop rather than connecting directly to Celigo. Couchdrop then sends the files to the configured Celigo webhook.

</details>

<details>

<summary>What happens if the content type does not match?</summary>

The **Content Type** configured in Couchdrop needs to be accepted by the Celigo webhook listener. If the request uses an unsupported or unexpected content type, Celigo may reject or incorrectly interpret the request.

</details>

<details>

<summary>Are there file size limits?</summary>

Celigo applies size limits to webhook processing. Current Celigo webhook functionality supports paging records into pages of up to 5 MB, and newer webhook configurations can accept larger requests in specific configurations. Check the limits for your Celigo webhook configuration before sending larger files.

</details>

## Common Issues&#x20;

<details>

<summary>File size limit of 5MB</summary>

Celigo has a file size limit of 5MB. This means files larger than 5MB will be rejected and will not be processed.

</details>

<details>

<summary>Invalid content type</summary>

Make sure the **Content Type** in Couchdrop matches what your Celigo webhook listener is configured to accept

</details>


# Make.com

Learn about sending files to and performing operations in Couchdrop with Make.com.

## Introduction to Make.com with Couchdrop

Make.com is a leading iPaaS (Integration Platform as a Service) solution for SMB users. iPaaS platforms like Make.com enable no-code integrations between internal systems - for example, connecting Salesforce with Zendesk.

Couchdrop is a Managed File Transfer (MFT) and SFTP platform designed to simplify secure B2B file transfers. It acts as a secure file transfer gateway for Make.com, allowing Make.com customers to receive files via SFTP, FTP, and other MFT protocols, and then pass them into Make.com for internal processing.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F0yRQySJ6fEerbVKpug1T%2Fmake-logo.webp?alt=media&amp;token=454632d1-54ee-4c8b-af71-a3c39c684ee6" alt=""><figcaption></figcaption></figure>

## How Make.com works with Couchdrop

Make.com can be used with Couchdrop in two ways:

* **Sending files to Make.com:** A Couchdrop folder is linked to a Make.com scenario through a custom webhook. When a file is uploaded into the folder, Couchdrop sends the file to the scenario.
* **Performing operations from Make.com:** Couchdrop is available as a module in Make.com, allowing you to upload files, perform filesystem actions, and make management API calls.

## Requirements

* **Admin access in Couchdrop**
* **Sending files to Make.com:** ability to create a scenario using a **Custom Webhook** trigger
* **Performing Couchdrop operations from Make.com**: access to the **Couchdrop module** in Make.com and a **Couchdrop API Token** (created in Couchdrop under ***Admin → API Tokens***)

{% hint style="warning" %}
Make.com has a **5 MB file size limit** when receiving files from Couchdrop
{% endhint %}

## Configuration Steps: Sending Files from Couchdrop to Make.com

**Set Up the Webhook in Make.com**

* Create a new scenario
* Add a **Custom Webhook** as the trigger
* Name the webhook and copy the **Webhook URL**<br>

**Configure the Connection in Couchdrop**

* Add a new outbound connection
* Select **Make.com** and provide:
  * A name for the integration
  * A folder name (creates a Couchdrop folder that sends files to Make.com)
  * The **Webhook URL** from Make.com
* Save the configuration

Any files uploaded into the Couchdrop folder will now be sent automatically to your Make.com scenario.

## Configuration Steps: Performing Couchdrop Operations from Make.com

* Open or create a scenario
* Click **+** and search for **Couchdrop**
* Choose the operation you want to perform:
  * **Upload files** into Couchdrop
  * **Manage files and folders** via the Filesystem API (list, download, rename, delete, create)
  * **Manage users and permissions** via the Management API
* When prompted, create a Couchdrop API connection:
  * Enter a Couchdrop API Token (created in Couchdrop under ***Admin → API Tokens***).
* Configure the action fields as needed for your scenario

👉 For details on available actions and their parameters, see the [Couchdrop Filesystem API ](https://developers.couchdrop.io/filesystem-operations/managing-files)and [Couchdrop Management API](https://developers.couchdrop.io/administration/managing-users) documentation.


# Workato

Learn about Couchdrop's native Workato integration.

## Introduction to Workato with Couchdrop

Workato is a leading iPaaS (Integration Platform as a Service) solution for SMB and enterprise customers. iPaaS platforms like Workato enable no-code integrations between internal systems - for example, connecting Salesforce with Zendesk.

Couchdrop is a Managed File Transfer (MFT) and SFTP platform designed to simplify secure B2B file transfers. It acts as a secure file transfer gateway for Workato, allowing Workato customers to receive files via SFTP, FTP, and other MFT protocols, and then pass them into Workato for internal processing.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2FBVAn2PKXZEqVB1V4ryU0%2Fworkato-logo-1.png?alt=media&amp;token=8199085c-a75a-491d-b479-ccf1c3d6ee29" alt=""><figcaption></figcaption></figure>

## How Workato works with Couchdrop

Workato is configured in Couchdrop as an outbound connection. You link a Couchdrop folder to a Workato recipe via a webhook trigger. Any file uploaded into that folder is securely delivered to Workato, which then runs the recipe you have defined.

## Requirements

* **Admin access in Couchdrop**
* A Workato recipe with a **Webhook trigger**
* The following details from Workato:
  * **Webhook URL** generated from the trigger
  * **Authentication method** (if required for your webhook)

{% hint style="warning" %}
Workato has a **file size limit of 5 MB** for webhook payloads
{% endhint %}

## Configuration Steps

**Set Up the Recipe in Workato**

* Create a new recipe
* Select **Webhook** as the trigger
* Copy the **Webhook URL** generated for the recipe
* If authentication is enabled for the webhook, take note of the **username/password or token**

**Configure the Connection in Couchdrop**

* Add a new outbound connection
* Select **Workato** and provide:
  * A name for the integration
  * A folder name (creates a Couchdrop folder that sends files to Workato)
  * The **Webhook URL** (and credentials if required) from Workato
* Save the configuration

Any files uploaded into the Couchdrop folder will now be sent automatically to your Workato recipe.

## Common Issues

<details>

<summary>Files larger than <strong>5 MB</strong> will be rejected by Workato</summary>

Workato cannot process files that are larger than 5MB.&#x20;

</details>

<details>

<summary>Invalid authentication method</summary>

Ensure the **authentication method** in Couchdrop matches the webhook configuration in Workato.

</details>

*


# Zapier

Learn about sending files from Couchdrop into Zapier Zaps.

Introduction to Zapier with Couchdrop

Zapier is a leading iPaaS (Integration Platform as a Service) solution for consumers and small businesses. iPaaS platforms like Zapier enable no-code integrations between internal systems - for example, connecting Salesforce with Zendesk.

Couchdrop is a Managed File Transfer (MFT) and SFTP platform designed to simplify secure B2B file transfers. It acts as a secure file transfer gateway for Zapier, allowing Zapier customers to receive files via SFTP, FTP, and other MFT protocols, and then pass them into Zapier for internal processing.

<figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2F1F5pwazuiHmAdiJ12QjL%2FZapier_logo.jpg?alt=media&amp;token=85ff9daf-7a64-43cb-8d5d-7d015087a46c" alt=""><figcaption></figcaption></figure>

## How Zapier works with Couchdrop

Zapier is configured in Couchdrop as an outbound connection. You link a Couchdrop folder to a Zapier Zap via a webhook trigger. Any file uploaded into that folder is sent to Zapier, which then starts the Zap you have defined.

## Requirements

* **Admin access in Couchdrop**
* A **Zapier Pro** subscription (required for webhook triggers)
* A Zap in Zapier with a **Webhook trigger** (`Catch Raw Hook`)
* The **Webhook URL** generated by Zapier

## Configuration Steps

**Set Up the Zap in Zapier**

* Create a new Zap
* Choose **Webhooks by Zapier** as the trigger and set it to **Catch Raw Hook**&#x20;
* Copy the **Webhook URL** from Zapier

**Configure the Connection in Couchdrop**

* Add a new outbound connection
* Select **Zapier** and provide:
  * A name for the integration
  * A folder name (creates a Couchdrop folder that sends files to Zapier)
  * The **Webhook URL** from Zapier
* Save the configuration

Any file uploaded into the Couchdrop folder will now be delivered automatically to your Zap in Zapier.

## Common Issues

<details>

<summary>Zapier requires a <strong>Pro subscription</strong> to use webhook triggers.</summary>

W**ebhook triggers in Zapier are only available on Pro or higher subscription plans**. This means that if you are using Couchdrop with Zapier and you need to initiate workflows based on incoming webhook events (for example, triggering an automation when a file is uploaded or moved), you must have at least a **Zapier Pro subscription**

</details>

<details>

<summary>Files larger than <strong>5 MB</strong> will be rejected by Zapier.</summary>

Zapier will not process files that are larger than 5MB

</details>

<details>

<summary>If Zapier cannot ingest a file, you’ll receive an email notification from Zapier with details.</summary>

</details>


# SIEM integrations

Learn about logging and SIEM support in Couchdrop

## Introduction

Couchdrop can send account and file activity to external logging and SIEM platforms for centralized monitoring, investigation, and security analysis.

Supported logging providers include **Splunk**, **Datadog**, **Azure Monitor Logs for Microsoft Sentinel**, **Elastic**, and **Webhooks**. You can connect one or multiple providers depending on how your organization collects and analyzes security events.

Events are sent as structured JSON, allowing your SIEM or logging platform to ingest Couchdrop activity alongside logs from your other systems.

### Supported SIEM and logging providers

Couchdrop supports the following external logging destinations.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Splunk</strong></td><td>Send events to Splunk using the HTTP Event Collector.</td><td><a href="/integrations/siem/splunk">Splunk</a></td></tr><tr><td><strong>Datadog</strong></td><td>Send Couchdrop events to Datadog Logs.</td><td><a href="/integrations/siem/datadog">Datadog</a></td></tr><tr><td><strong>Microsoft Sentinel</strong></td><td>Send events through Azure Monitor Logs for use with Microsoft Sentinel.</td><td><a href="/integrations/siem/microsoft-sentinel">Microsoft Sentinel</a></td></tr><tr><td><strong>Elastic</strong></td><td>Send events to Elastic through Logstash.</td><td><a href="/integrations/siem/elastic">Elastic</a></td></tr><tr><td><strong>Webhook</strong></td><td>Send event data as JSON to a webhook endpoint.</td><td><a href="/integrations/siem/webhook">Webhook</a></td></tr></tbody></table>

You can configure more than one provider if Couchdrop events need to be delivered to multiple logging or security systems.

### Event types

When configuring a logging provider, you can select which types of Couchdrop events should be sent.

Available event categories include:

* **Login** — Authentication and login activity.
* **Admin changes** — Administrative changes made within Couchdrop.
* **Failures** — Failed operations and events.
* **File based actions** — Activity involving files and file transfers.

Selecting only the event categories required by your organization can help keep your external logging destination focused on the activity relevant to your monitoring requirements.

## Configuring SIEM logging

{% hint style="warning" %}

#### Before you start

To configure SIEM logging, you will need:

* A Couchdrop account with access to the SIEM logging settings.
* The connection details or credentials required by your selected logging provider.
  {% endhint %}

{% stepper %}
{% step %}

### Select a logging provider

Log in to Couchdrop and navigate to **Admin Panel** → **Logging**.

Locate the provider you want to configure and select **Connect**.
{% endstep %}

{% step %}

### Select the events to send

Choose the Couchdrop event types that should be sent to the logging provider.

You can send login activity, administrative changes, failures, file-based actions, or a combination of these event types.
{% endstep %}

{% step %}

### Configure the provider

Enter the configuration values required by your selected logging provider.

Each provider has different authentication and destination requirements. Refer to the provider-specific Couchdrop documentation for its configuration requirements.
{% endstep %}

{% step %}

### Save the integration

Click **Save Updates** to save the logging configuration.

Couchdrop can now send the selected events to the configured provider.
{% endstep %}
{% endstepper %}

## Provider-specific configuration

The connection details required depend on the logging platform you are using.

* **Splunk** requires an Event Collector token and HTTP Event Collector URI.
* **Datadog** requires a Datadog Application Key and API Key.
* **Microsoft Sentinel** uses Azure Monitor Logs and requires the Azure Monitor configuration values created in Azure.
* **Elastic** requires the Elastic username, password, and URL for the configured Logstash HTTP input.
* **Webhook** sends Couchdrop event data to your configured webhook endpoint.

Once a provider is connected, Couchdrop sends the selected event categories to that destination as JSON logging data.

## Couchdrop event format

Couchdrop sends logging events as JSON. The properties included in an event depend on the activity that generated it.

An example Couchdrop event is shown below:

```json
{
  "id": "",
  "event_id": "",
  "token": "",
  "account": "",
  "organisation_id": "",
  "filename": "",
  "filename_relative": "",
  "path": "",
  "relative_path": "",
  "timestamp": 1750721574,
  "TimeGenerated": "2025-06-24T11:32:54.000Z",
  "authenticated_user": "",
  "authenticated_user_id": "",
  "storage_engine": "",
  "storage_engine_id": "",
  "event_type": "",
  "ip_address": "",
  "success": true,
  "total_size": 0,
  "file_size": 0,
  "additional_info": "",
  "system": "",
  "transaction_id": "",
  "region": "",
  "workflow_id": "",
  "workflow_action": "",
  "node": "",
  "message": "",
  "is_support_generated": false,
  "inbox_id": "",
  "shared_link_id": "",
  "error_type": "",
  "error_message": "",
  "error_original": "",
  "elapsed": 0,
  "as2_mdn_payload": "",
  "as2_station_id": "",
  "inbound_s3_bucket_id": "",
  "inbound_s3_bucket_key_id": "",
  "sender": "",
  "ingress_retry": 0,
  "text": "",
  "ingress": true,
  "ingress_status": {}
}
```

The payload provides information about the event itself together with relevant user, file, storage, workflow, transfer, and error information when applicable.


# Datadog

Learn how to send events to Datadog from Couchdrop

## Introduction

Couchdrop can send selected logging events to Datadog, allowing you to include Couchdrop activity within your existing Datadog logging environment.

To configure the integration, you will connect Couchdrop to Datadog using a Datadog **Application Key** and **API Key**, select the Couchdrop events you want to send, and optionally configure additional Datadog log attributes.

## How to configure Datadog logging

{% hint style="warning" %}

#### Before you start

To connect Couchdrop to Datadog, you will need:

* Administrator access to your Couchdrop tenant
* A **Datadog Application Key**
* A **Datadog API Key**

For information on configuring Datadog API access, see the [Datadog Logs API documentation](https://docs.datadoghq.com/api/latest/logs).
{% endhint %}

{% stepper %}
{% step %}

### Open the Datadog logging provider

Log in to Couchdrop and navigate to **Admin Panel > Logging**.

Find the **Datadog** provider and select **Connect/Manage**.
{% endstep %}

{% step %}

### Select the events to send

Select the Couchdrop events that you want to send to Datadog.

Only the events selected here will be sent through the Datadog logging integration.
{% endstep %}

{% step %}

### Configure Datadog

Enter the required Datadog credentials:

* **Datadog Application Key** — Enter the Application Key for your Datadog account.
* **Datadog API Key** — Enter the API Key used to authenticate with Datadog.

You can also configure the following optional Datadog attributes:

<table><thead><tr><th>Setting</th><th width="154.390625">Datadog attribute</th><th>Description</th></tr></thead><tbody><tr><td><strong>Datadog integration name</strong></td><td><code>ddsource</code></td><td>Sets the integration or source associated with the logs.</td></tr><tr><td><strong>Datadog Tags</strong></td><td><code>ddtags</code></td><td>Adds Datadog tags to the logs sent by Couchdrop.</td></tr><tr><td><strong>Originating Hostname</strong></td><td><code>hostname</code></td><td>Sets the hostname associated with the logs.</td></tr><tr><td><strong>Service Name</strong></td><td><code>service</code></td><td>Sets the Datadog service associated with the logs.</td></tr></tbody></table>
{% endstep %}

{% step %}

### Save the integration

Click **Save Updates** to save the Datadog configuration.

Couchdrop will use the configured credentials and attributes when sending the selected events to Datadog.
{% endstep %}
{% endstepper %}




---

[Next Page](https://docs.couchdrop.io/llms-full.txt/1)

