Amazon S3 Step
Uploads files to an Amazon S3 bucket using a named connection. Saves both user-uploaded files and workflow-generated documents (reports, exports, attachments) to your S3 storage.
Top-level properties
| name | type | required | constraints | |
|---|---|---|---|---|
connection | string | yes | Name of the connection instance to use | |
action | string | yes | enum: UPLOAD_FILE | Operation to perform |
bucket | string | yes | Target S3 bucket name | |
folder | string | no | Optional folder/prefix within the bucket | |
files | array[File] | yes | minItems: 1 | Files to upload |
File
| name | type | required | constraints | |
|---|---|---|---|---|
source | string | yes | See Source variants below | File source handle or descriptor |
name | string | yes | Output object key/file name in the bucket |
Source variants (anyOf)
- Object reference with id:
{ id: string, downloadUrl: string }(requiresid)
- Object reference with URL:
{ id?: string, downloadUrl: string }(requiresdownloadUrl)
- New file descriptor:
{ name: string, metadata?: { contentType?: string, size?: number, createdAt?: string, updatedAt?: string } }
- String handle:
string(e.g., a URL or handle), still requires siblingname
Example (JSON)
{
"connection": "s3-prod",
"action": "UPLOAD_FILE",
"bucket": "my-org-uploads",
"folder": "invoices/2025/",
"files": [
{
"source": {
"id": "file-123",
"downloadUrl": "https://files.example.com/download/file-123"
},
"name": "invoice-123.pdf"
},
{
"source": {
"name": "generated-report.csv",
"metadata": {
"contentType": "text/csv",
"size": 2048,
"createdAt": "2025-09-16T10:30:00Z",
"updatedAt": "2025-09-16T10:30:00Z"
}
},
"name": "report-2025-09-16.csv"
},
{
"source": "https://example.com/files/terms.pdf",
"name": "terms.pdf"
}
]
}Updated 22 days ago
