Output

S3 / R2 bucket

Drop the result in a bucket

Saves the finished result into a cloud storage bucket — Amazon S3 or any S3-compatible store (Cloudflare R2, Wasabi, Backblaze B2, MinIO, Telnyx Storage) — for teams that keep or further process their files there. A paid-plan feature.

How it works

Object storage buckets are a very common place companies keep files in the cloud, organized into folders. When your job produces a result, this node drops that file straight into the bucket you point it at, so it lands where your other tools and teammates already look.

This is the right choice when the finished document is one input to a bigger machine: a data warehouse that ingests files from a bucket, a backup archive, or another app that watches the bucket and picks up whatever appears. Instead of emailing a file around, you deposit it where the system expects it.

It speaks the S3 API, so beyond AWS it also writes to Cloudflare R2 and other S3-compatible stores — you just point it at their endpoint. You provide the bucket name, the folder path and file name you want, and the credentials to write there. Each job writes its own file, so you build up a tidy record over time.

Common use cases

Real situations where this node earns its place in a flow.

Archive every report

Write finished documents to your own S3 bucket for retention.

Publish a report

Drop HTML to a bucket that serves it to a viewer.

Feed downstream analytics

Land outputs in S3 for your data team to work from.

S3 / R2 bucket in a workflow

A simple example of where this node sits in a flow.

Extract PDFs → structured data Render document Merge data + template → document S3 / R2 bucket Drop the result in a bucket

What you set up

  • Enter the bucket name and the key template (folder path plus file name) to save under — you can include job values like {merchant}, {date}, {datetime}, {jobId} in the name so each job writes a distinct file.
  • For AWS S3: create an IAM user (not a role — the node signs with a static access key), attach a policy that allows only s3:PutObject on arn:aws:s3:::YOUR_BUCKET/* (the object path, not the bucket ARN), and generate an access key. Paste the key ID + secret and set the region.
  • For Cloudflare R2 or another S3-compatible store: create an API token scoped to the bucket with object read+write, then set the Custom endpoint (R2: https://<account-id>.r2.cloudflarestorage.com), region 'auto', and the token's access key ID + secret.

Common questions

Do I need my own cloud storage account for this?

Yes. You supply the bucket and credentials for your own S3 or R2 storage, so the files live under your control in your account, not ours.

What are the exact permissions you need?

Only write. On AWS that's a single action, s3:PutObject, scoped to arn:aws:s3:::YOUR_BUCKET/* — the object path with the /*, not the bucket ARN (that mismatch is the usual 'AccessDenied'). If the bucket uses SSE-KMS with a customer-managed key, also allow kms:GenerateDataKey and kms:Decrypt; default SSE-S3/AES256 needs nothing extra. On R2, an API token with Object Read & Write scoped to the bucket.

Does this work with Cloudflare R2?

Yes. R2 is S3-API compatible: set the Custom endpoint to https://<account-id>.r2.cloudflarestorage.com, region 'auto', and use an R2 API token's access key ID and secret. The same node also covers Wasabi, Backblaze B2, MinIO, and Telnyx Storage via their endpoints.

What happens if two jobs would save the same file name?

Include a job value like an ID or timestamp in the file name so each job writes a distinct file and nothing gets overwritten.