Connect S3

Who can use this feature?

  • Odie admins or users who can manage integrations
  • Availability depends on your Odie plan and configuration

Connect Odie to Amazon S3 to import CSV files on a schedule. Create one reusable S3 connection for your organization, then use that connection across scheduled imports.

Connection and import are separate: The connection stores access to the S3 bucket. Each scheduled import defines what files to read, what object type to update, and when the import runs.

Understand the S3 import setup

Configuration What it controls
S3 connection Reusable bucket access, AWS region, credentials, and an optional base folder prefix.
Scheduled import The saved connection, optional folder override, file pattern, object type, and schedule.
CSV connector Shared field mapping for the selected object type. Mapping is not configured separately for each scheduled import.

Amazon S3 is the supported source for this release. SFTP support is planned for a future release.

Prepare your S3 access

Before opening the connection wizard, prepare:

  1. An S3 bucket that contains the CSV files you want to import.
  2. The bucket's AWS region, such as us-east-1.
  3. A dedicated IAM user with least-privilege access to the bucket and prefix.
  4. The IAM user's access key ID and secret access key.
Do not use AWS root credentials or broadly privileged administrator credentials for the connection.

Create the S3 connection

  1. In Odie, open Settings > Integrations > S3 Scheduled Import.
  2. Click Connect source.
  3. In the Source step, select Amazon S3.
  4. In the Credentials step, enter the connection details:

    Field Required Description
    Connection name Yes A recognizable name for the connection.
    Access key Yes The access key ID for the dedicated IAM user.
    Secret Yes The secret access key associated with the access key.
    Region Yes The AWS region that contains the bucket.
    Bucket Yes The bucket name without an s3:// prefix.
    Base folder prefix No The root folder within the bucket that all imports using this connection should start from.
  5. Click Test connection. You must pass the test before you can save the connection.
  6. In the Review step, confirm the details and click Save connection.

The saved connection appears in the connections list and can now be selected when you create a scheduled import.

Prefix format: Enter reports/2026, not /reports/2026/. Do not include leading or trailing slashes.

Grant the required AWS permissions

The IAM user must be able to list the configured bucket or prefix and read objects from it:

  • s3:ListBucket on the bucket, scoped to the prefix whenever possible.
  • s3:GetObject on objects under the prefix.

Replace YOUR-BUCKET and your/base/prefix in this example policy:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListBucketWithPrefix",
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::YOUR-BUCKET",
      "Condition": {
        "StringLike": {
          "s3:prefix": ["your/base/prefix/*"]
        }
      }
    },
    {
      "Sid": "ReadObjectsUnderPrefix",
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::YOUR-BUCKET/your/base/prefix/*"
    }
  ]
}

If you do not configure a base folder prefix, grant access at the bucket level. This is broader access, so use a prefix whenever possible.

Create a scheduled import

After saving the connection, create a scheduled import as a separate step:

  1. Choose the saved S3 connection.
  2. Optionally enter a folder override. Odie adds this path after the connection's base folder prefix.
  3. Enter a file pattern, such as accounts_*.csv, if you want to import only matching files.
  4. Choose the object type and configure the import schedule.
  5. Review and save the scheduled import.
Field mapping: Configure field mapping on the CSV connector for the object type. Mapping is shared and is not stored on an individual scheduled import.

Understand how folders combine

Odie combines the connection's base folder prefix with the optional folder override on the scheduled import.

Setting Example
Connection base folder prefix acme
Scheduled import folder override daily
Effective path acme/daily

File pattern, object type, schedule, and the folder override belong to the scheduled import—not the reusable S3 connection.

Understand the connection test

The test checks The test does not check
The bucket exists and is reachable. CSV files are present.
The credentials can list the configured prefix. File headers or CSV field mapping.
The region and bucket name are valid. The import schedule, file pattern, or GetObject access.
A connection test can pass when the IAM user has ListBucket but not GetObject. If scheduled imports fail after a successful test, verify read access to objects under the effective prefix.

Manage connection security

  • Access keys are stored encrypted and are not shown again after you save the connection.
  • Use a dedicated IAM user and the narrowest practical bucket and prefix permissions.
  • Rotate access keys according to your organization's security policy.
  • Connection details are read-only in this release. To change credentials, create a new connection or contact your administrator if an edit flow is available in your environment.

Delete a connection

You cannot delete an S3 connection while one or more scheduled imports reference it. Delete or reassign those scheduled imports first.

Deleting a scheduled import does not delete the reusable S3 connection.

Troubleshoot the connection

Issue What to check
Bucket not found Confirm the bucket name and AWS region.
Access denied Confirm the IAM policy includes ListBucket and GetObject for the correct prefix.
Test passes, but imports fail Confirm GetObject access and verify that files are under the effective prefix.
No files discovered Review the base folder prefix, folder override, and file pattern together.
Connection name already exists Use a unique connection name for the organization.

FAQs

Question: Is the S3 connection the same as a scheduled import?

Answer: No. The connection stores reusable access to the S3 bucket. A scheduled import selects that connection and defines the folder override, file pattern, object type, and schedule.


Question: Where do I configure CSV field mapping?

Answer: Configure field mapping on the CSV connector for the object type. The mapping is shared and does not belong to an individual scheduled import.


Question: Is SFTP supported?

Answer: Not in this release. Amazon S3 is the available source; SFTP support is planned for a future release.

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request