Amazon S3 Step
Upload files to an Amazon S3 bucket as part of your workflow. Use this step to store user-uploaded files and workflow-generated documents—such as reports, exports, and attachments—in your S3 storage.
The Amazon S3 step uploads files to a bucket in your Amazon Web Services account using a named connection. You can store any combination of user-uploaded files and workflow-generated documents, and organize them into folders within the bucket.
Configuration
| name | type | required | description |
|---|---|---|---|
connection | string | yes | The name of the S3 connection to use, as configured in Integrations. |
action | string | yes | The operation to perform. Must be UPLOAD_FILE. |
bucket | string | yes | The name of the target S3 bucket. |
folder | string | no | An optional folder prefix within the bucket (e.g. invoices/2025/). |
files | array | yes | One or more files to upload. At least one file is required. See Files below. |
Files
Each entry in the files array defines a file to upload and where it comes from.
| name | type | required | description |
|---|---|---|---|
source | string or object | yes | The file to upload. See File sources below. |
name | string | yes | The object key (file name) to use in the S3 bucket. |
File sources
The source field accepts several formats depending on where the file comes from:
- Object reference with ID:
{ "id": "string", "downloadUrl": "string" }— references a file by its ID. BothidanddownloadUrlare required. - Object reference with URL only:
{ "downloadUrl": "string" }— references a file by download URL, without an ID. - Generated file descriptor:
{ "name": "string", "metadata": { "contentType": "string", "size": number, "createdAt": "string", "updatedAt": "string" } }— describes a workflow-generated file. Onlynameis required; allmetadatafields are optional. - String URL or handle: A plain string (e.g.
"https://example.com/files/terms.pdf") used as a direct file reference.
Example
The example below uploads three files to an S3 bucket: one referenced by ID, one generated by the workflow, and one from a direct URL.
{
"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 20 days ago
