Skip to main content

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.

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.
For a one-time upload, use Direct CSV Import. For automated email-based imports, see Setting Up CSV Integration.
Configuring an S3 source requires Admin access and the Manage Integrations permission.

How It Works

  1. You add one or more S3 connections (credentials + region + scope).
  2. You create a CSV Integration and select S3 as its source, pointing it at a bucket and prefix on one of your connections.
  3. Statisfy’s poller scans the configured S3 location on a recurring schedule.
  4. New or changed files (detected via S3 ETag) are copied to Statisfy and processed using the field mappings you configured in the wizard.
Files that have already been processed are tracked by ETag, so re-uploading the same content does not trigger reprocessing.

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.
  1. Navigate to Integrations → S3 Connections and click Add Connection.
  2. Enter a connection key (alphanumeric, used as a stable identifier) and a human-readable name.
  3. Choose the AWS region for the bucket.
  4. Pick an authentication mode — see the next section for details.
  5. Click Test Connection to verify Statisfy can list objects in the bucket. The test reports up to 10 sample keys.
  6. Click Save.
You can edit a connection later (rotate keys, update the region, change the display name) or delete it. Statisfy blocks deletion if the connection is still referenced by an active CSV integration.

Authentication Modes

Statisfy supports two S3 authentication modes. Pick the one your organization’s policies allow.
You provide:
  • Access Key ID
  • Secret Access Key
Best for: quick setup or when you’re using a long-lived IAM user dedicated to Statisfy.Recommended IAM policy (replace your-bucket and your-prefix/):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::your-bucket",
      "Condition": { "StringLike": { "s3:prefix": ["your-prefix/*"] } }
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::your-bucket/your-prefix/*"
    }
  ]
}
Treat the secret access key like a password. Never paste it into shared documents or email.
You provide:
  • Account ID — your AWS account ID
  • Target Prefix — the S3 prefix scope to request credentials for
Best for: organizations that have standardized on AWS S3 Access Grants for prefix-scoped, time-bound credentials.Note: Bucket listing is not available for Access Grants connections — credentials are scoped to a specific prefix. Enter the bucket name manually when creating CSV integrations against this connection.

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/)
The wizard then shows a folder browser so you can navigate into the prefix and confirm Statisfy can see the expected .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.
Deduplication:
  • 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.
File Type Filtering:
  • Only .csv, .xlsx, and .xls files are ingested. Other extensions in the same prefix are skipped.
Account Matching:

Managing Connections

Edit a connection:
  1. Open Integrations → S3 Connections and find the connection.
  2. Click Edit to update the display name, region, account ID, or target prefix (the editable fields depend on the connection’s auth mode).
  3. To rotate access keys, enter the new keys — Statisfy only updates credentials when both fields are provided.
Delete a connection:
  1. Click Delete on the connection row.
  2. 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

  • For Access Key, verify the IAM policy grants s3:ListBucket on the bucket and s3:GetObject on 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.
  • 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.
  • 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.
  • This is expected. Access Grants credentials are prefix-scoped and cannot list buckets. Enter the bucket name manually in the CSV integration wizard.