Skip to content

File Transfer Triggers

File transfer triggers send your files to remote servers using standard transfer protocols. After your automation extracts data and saves it to a file, these triggers upload that file to a server where your team, clients, or downstream systems can access it.

RTILA X supports three file transfer protocols:

Trigger Protocol Best For
SFTP SSH File Transfer Protocol Secure transfers to Linux/Unix servers
FTPS FTP over SSL/TLS Secure transfers to FTP servers
WebDAV Web Distributed Authoring and Versioning Transfers to web servers, cloud drives

SFTP (SSH File Transfer Protocol) transfers files over an encrypted SSH connection. It is the most secure and widely used method for transferring files to servers.

The SFTP trigger connects to a remote server via SSH and uploads a file. The connection is encrypted end-to-end, making it safe for transferring sensitive data. SFTP is the preferred method for transferring files to Linux servers, VPS instances, and any server with SSH access.

Parameter Type Required Default Description
hostname string ✅ Yes — The hostname or IP address of the SFTP server. Example: sftp.example.com or 192.168.1.100
port integer No 22 The SSH port. Default is 22. Some servers use custom ports.
username string ✅ Yes — Your SSH username.
password string No — Your SSH password. Use this OR a private key, not both.
private_key_path string No — The path to your SSH private key file. Use this OR a password, not both.
private_key_passphrase string No — The passphrase for your private key, if it has one.
local_path string ✅ Yes — The path to the file you want to upload. Relative to RTILA’s output directory.
remote_path string ✅ Yes — The destination path on the remote server. Example: /home/user/data/products.csv

SFTP supports two authentication methods:

Method Parameters to Use Security Level
Password username + password Good
Private Key username + private_key_path (+ optional private_key_passphrase) Best

Tip: Private key authentication is more secure than password authentication. If your server supports it, use a private key.

Upload with password:

{
"hostname": "sftp.example.com",
"port": 22,
"username": "deploy",
"password": "your-ssh-password",
"local_path": "output/products.csv",
"remote_path": "/home/deploy/data/products_${date}.csv"
}

Upload with private key:

{
"hostname": "192.168.1.100",
"port": 2222,
"username": "deploy",
"private_key_path": "/home/user/.ssh/id_rsa",
"private_key_passphrase": "key-passphrase",
"local_path": "output/data.json",
"remote_path": "/var/data/incoming/data.json"
}
  • The connection is encrypted using SSH. Your data and credentials are safe during transfer.
  • If the remote directory doesn’t exist, the upload will fail. Make sure the destination directory exists on the server.
  • If the remote file already exists, it will be overwritten.
  • The local_path is relative to RTILA X’s output directory.
  • The remote_path is the full path on the remote server (e.g., /home/user/data/file.csv).

FTPS (FTP over SSL/TLS) transfers files over an encrypted FTP connection. It is commonly used with traditional FTP servers that have been upgraded to support encryption.

The FTPS trigger connects to an FTP server using SSL/TLS encryption and uploads a file. FTPS is widely used in enterprise environments and with traditional hosting providers.

Parameter Type Required Default Description
hostname string ✅ Yes — The hostname or IP address of the FTPS server. Example: ftp.example.com
port integer No 21 The FTP port. Default is 21. Some servers use port 990 for implicit FTPS.
username string ✅ Yes — Your FTP username.
password string ✅ Yes — Your FTP password.
local_path string ✅ Yes — The path to the file you want to upload. Relative to RTILA’s output directory.
remote_path string ✅ Yes — The destination path on the remote server. Example: /uploads/products.csv
Port Mode Description
21 Explicit FTPS The standard FTP port with TLS upgrade. Most common.
990 Implicit FTPS TLS is required from the start. Less common.

Tip: Most FTP servers use port 21 with explicit FTPS. If your connection fails on port 21, try port 990.

Upload with explicit FTPS (port 21):

{
"hostname": "ftp.example.com",
"port": 21,
"username": "ftpuser",
"password": "ftp-password",
"local_path": "output/products.csv",
"remote_path": "/uploads/products_${date}.csv"
}

Upload with implicit FTPS (port 990):

{
"hostname": "secure.example.com",
"port": 990,
"username": "ftpuser",
"password": "ftp-password",
"local_path": "output/data.json",
"remote_path": "/incoming/data.json"
}
  • The connection is encrypted using SSL/TLS.
  • If the remote directory doesn’t exist, the upload will fail.
  • If the remote file already exists, it will be overwritten.
  • FTPS is different from SFTP. SFTP uses SSH; FTPS uses FTP with TLS. They are not interchangeable.
  • If your server uses plain FTP (no encryption), RTILA X does not support it. Use SFTP instead.

WebDAV (Web Distributed Authoring and Versioning) transfers files over HTTP/HTTPS. It is commonly used with cloud storage services, web servers, and content management systems.

The WebDAV trigger uploads a file to a WebDAV server using HTTP/HTTPS. WebDAV is supported by many cloud storage providers (Nextcloud, ownCloud, Box, etc.) and web servers (Apache, Nginx with WebDAV module).

Parameter Type Required Default Description
webdav_url string ✅ Yes — The full WebDAV URL. Example: https://cloud.example.com/remote.php/dav/files/user/
username string No — Your WebDAV username. Leave empty if no authentication is required.
password string No — Your WebDAV password. Leave empty if no authentication is required.
local_path string ✅ Yes — The path to the file you want to upload. Relative to RTILA’s output directory.
remote_path string ✅ Yes — The destination path on the WebDAV server. Example: /reports/products.csv
Service WebDAV URL Format
Nextcloud https://your-domain.com/remote.php/dav/files/username/
ownCloud https://your-domain.com/remote.php/dav/files/username/
Box https://dav.box.com/dav/
Yandex Disk https://webdav.yandex.com/
Apache WebDAV https://your-server.com/webdav/
Nginx WebDAV https://your-server.com/dav/

Upload to Nextcloud:

{
"webdav_url": "https://cloud.company.com/remote.php/dav/files/john/",
"username": "john",
"password": "nextcloud-password",
"local_path": "output/products.csv",
"remote_path": "/reports/products_${date}.csv"
}

Upload to a generic WebDAV server:

{
"webdav_url": "https://files.company.com/webdav/",
"username": "deploy",
"password": "webdav-password",
"local_path": "output/data.json",
"remote_path": "/incoming/data.json"
}
  • WebDAV uses HTTP/HTTPS, so it works through most firewalls and proxies.
  • If the remote directory doesn’t exist, some WebDAV servers will create it automatically. Others will fail.
  • If the remote file already exists, it will be overwritten.
  • Authentication is optional. Some WebDAV servers allow anonymous access.
  • WebDAV is slower than SFTP for large files but is more universally accessible.

Scenario Recommended Protocol Why
Transferring to a Linux/VPS server SFTP Most secure, universally available on Linux
Transferring to a traditional hosting provider FTPS Most hosting providers support FTPS
Transferring to a cloud drive (Nextcloud, Box) WebDAV Native WebDAV support
Maximum security SFTP with private key SSH encryption with key-based auth
Behind a restrictive firewall WebDAV Uses HTTP/HTTPS, works through most firewalls
Large files (1 GB+) SFTP Faster than WebDAV for large transfers
No SSH access available FTPS or WebDAV Alternatives when SSH is not available

Combining File Triggers with File Transfer

Section titled “Combining File Triggers with File Transfer”

A common workflow combines file format triggers with file transfer triggers:

Example: Export → Compress → Upload

  1. Export to File — Export data to CSV: output/products.csv
  2. Compress File — Compress to ZIP: output/products.zip
  3. SFTP — Upload to server: remote_path: /data/products.zip

Example: Export → Convert → Upload

  1. Export to File — Export data to JSON: output/data.json
  2. Convert Format — Convert to Parquet: output/data.parquet
  3. SFTP — Upload to server: remote_path: /data/data.parquet
Practice Why It Matters
Use SFTP over FTPS when possible SSH encryption is generally considered more secure
Use private key authentication More secure than passwords; keys can’t be brute-forced
Never store passwords in plain text Use RTILA’s secure variable storage for sensitive credentials
Use TLS/SSL for all transfers Never transfer files over unencrypted connections
Restrict server permissions Give the transfer user only the permissions it needs
Use dedicated transfer accounts Don’t use your main server account for file transfers
Monitor transfer logs Check server logs regularly for unauthorized access attempts