In addition to email-based imports, Statisfy can poll an Amazon S3 bucket for CSV or Excel files and ingest them on a schedule. This is the recommended source when your data pipeline already drops files in S3 — there’s no email step, no attachment size limits, and ingestion runs as soon as a new file lands.Documentation Index
Fetch the complete documentation index at: https://help.statisfy.com/llms.txt
Use this file to discover all available pages before exploring further.
Configuring an S3 source requires Admin access and the Manage Integrations permission.
How It Works
- You add one or more S3 connections (credentials + region + scope).
- You create a CSV Integration and select S3 as its source, pointing it at a bucket and prefix on one of your connections.
- Statisfy’s poller scans the configured S3 location on a recurring schedule.
- New or changed files (detected via S3 ETag) are copied to Statisfy and processed using the field mappings you configured in the wizard.
Step 1: Add an S3 Connection
S3 connections are managed separately from individual CSV integrations so you can reuse the same credentials across multiple integrations.- Navigate to Integrations → S3 Connections and click Add Connection.
- Enter a connection key (alphanumeric, used as a stable identifier) and a human-readable name.
- Choose the AWS region for the bucket.
- Pick an authentication mode — see the next section for details.
- Click Test Connection to verify Statisfy can list objects in the bucket. The test reports up to 10 sample keys.
- Click Save.
Authentication Modes
Statisfy supports two S3 authentication modes. Pick the one your organization’s policies allow.Access Key (simplest)
Access Key (simplest)
You provide:
- Access Key ID
- Secret Access Key
your-bucket and your-prefix/):Access Grants (S3 Access Grants)
Access Grants (S3 Access Grants)
You provide:
- Account ID — your AWS account ID
- Target Prefix — the S3 prefix scope to request credentials for
Step 2: Create a CSV Integration with an S3 Source
Once a connection exists, follow the standard CSV Integration wizard. The differences when S3 is selected as the source: Source step (replaces the auto-generated email):- Connection — pick from the S3 connections you’ve already added
- Bucket — choose from the list of accessible buckets, or enter manually for Access Grants connections
- Prefix (optional) — limit ingestion to a folder (e.g.,
daily-exports/)
.csv, .xlsx, or .xls files. Only those three extensions are picked up — other file types in the bucket are ignored.
The remaining wizard steps (account identifier mapping, field mappings, product usage mappings, test, review) work exactly the same as for the email-based source.
Sync Behavior
Polling:- Statisfy polls each active S3 CSV integration on a recurring schedule.
- Each poll lists objects under the configured bucket + prefix and queues any file whose ETag has not been processed before.
- The dedup key is
{connection}/{bucket}/{key}#etag={etag}— re-uploading a file with the same content does not reprocess it. - Replacing a file with new content (different ETag) triggers a fresh ingestion.
- Only
.csv,.xlsx, and.xlsfiles are ingested. Other extensions in the same prefix are skipped.
- Identical to email-based CSV imports. See Setting Up CSV Integration → Account Identifier Mapping.
Managing Connections
Edit a connection:- Open Integrations → S3 Connections and find the connection.
- Click Edit to update the display name, region, account ID, or target prefix (the editable fields depend on the connection’s auth mode).
- To rotate access keys, enter the new keys — Statisfy only updates credentials when both fields are provided.
- Click Delete on the connection row.
- If the connection is referenced by any active CSV integration, deletion is blocked with an error message naming the integration. Remove or repoint those CSV integrations first.
Security
- Access keys and any other secrets are stored encrypted in Google Cloud Secret Manager — they never appear in logs or API responses.
- Scope credentials tightly to the bucket and prefix Statisfy needs, and rotate access keys on your regular cadence.
- Statisfy reads CSV/Excel files only — it never writes or deletes objects in your bucket.
Troubleshooting
Test Connection fails
Test Connection fails
- For Access Key, verify the IAM policy grants
s3:ListBucketon the bucket ands3:GetObjecton the prefix. - For Access Grants, confirm the account ID and target prefix are correct, and that an Access Grants instance exists in the bucket’s region.
Files in the bucket but not being ingested
Files in the bucket but not being ingested
- Confirm the file extension is
.csv,.xlsx, or.xls(case-insensitive). Other extensions are ignored. - Check that the prefix on the CSV integration matches the actual key path.
- A file with the same ETag as a previously processed file is intentionally skipped — try re-uploading a modified version.
Cannot delete a connection
Cannot delete a connection
- Statisfy blocks deletion while any active CSV integration still uses the connection. The error message names the blocking integration — repoint or delete it, then retry.
Bucket listing is empty for an Access Grants connection
Bucket listing is empty for an Access Grants connection
- This is expected. Access Grants credentials are prefix-scoped and cannot list buckets. Enter the bucket name manually in the CSV integration wizard.