Skip to main content

Send scheduled exports to your own S3 bucket

Deliver exports directly into your AWS S3 bucket so they can feed into your data warehouse or downstream pipeline.

Written by Rich Schaeffer

If your team needs exports to land directly in your own S3 bucket — for ingestion into a data warehouse, an internal dashboard, or another pipeline — configure an external S3 destination. Once connected, any scheduled export can target your bucket.

This is an admin-only setup. If you don't see the Integrations tab inside the Exports sheet, you don't have the Organization Settings permission. Ask a teammate who does.

What you'll need

  • An S3 bucket in your AWS account.

  • A prefix (directory path) where Stateable should write. Example: stateable/commissions/.

  • An IAM user or role with s3:PutObject permission on that prefix.

  • An access key ID and secret access key for that IAM identity.

  • The bucket's AWS region.

Configure the destination

  1. Click Export and open the Integrations tab.

  2. Fill in the S3 form: bucket name, prefix, region, access key ID, and secret access key.

  3. Click Test Connection. Stateable writes a tiny probe file to the prefix and reads it back. You'll see a success or failure banner.

  4. Save. The destination is now selectable when you create or edit a scheduled export.

Use the destination on a schedule

  1. Open the Scheduled Export tab.

  2. Create or edit a schedule, and choose Your S3 bucket as the destination.

  3. Save. The next run will write directly to the configured prefix.

Security notes

  • Credentials are encrypted at rest in Stateable's secrets manager. They're never logged.

  • Use a dedicated IAM user scoped only to the destination prefix. Avoid root keys or broadly-scoped users.

  • Rotate access keys annually and update the integration afterwards. The Test Connection button is your sanity check.

Troubleshooting

  • Test Connection fails with "Access Denied" — verify the IAM identity has s3:PutObject and s3:GetObject on the exact prefix you configured.

  • Test Connection fails with "NoSuchBucket" — double-check the bucket name and region match your AWS console.

  • Scheduled export ran but file isn't in the bucket — check the prefix. A missing trailing slash in the prefix can land the file one level up.

Related

  • Schedule recurring exports on any cadence

  • Run a one-off export from a filtered view

  • Manage teammate permissions and access

Did this answer your question?