Prerequisites
- Pro Max workspace.
- An S3 bucket with CSVs you control.
- IAM access keys with
s3:GetObject+s3:ListBucketon the bucket/prefix.
Steps
Create the agent
Name: “S3 inventory puller”. Goal:
Watch s3://acme-inventory/daily-uploads/. On every cron tick, pull new CSVs, upload them, and trigger a mapping job per file.
Add the inbound data source
Data sources → Add → S3 (inbound).
name: “Daily uploads”bucket:acme-inventoryprefix:daily-uploads/region:us-east-1format:CSVaccessKeyId/secretAccessKey: paste IAM key pair (stored in vault, never echoed back).scheduleCron:0 */6 * * *(every 6 hours).
Test the connection
Click Test — we run a read-only
ListObjectsV2 against the prefix and report what we’d pull on the next sync.What gets stored
Per sync:agent_data_source_sync.manifest_json looks like:
InventoryUploadCompletedEvent, which the agent also subscribes to.
Equivalent API call
Failure handling
After 3 consecutive failed pulls (any cause — credential rotation, network blip, bucket permissions), the source is auto-paused, aDATA_SOURCE_PULL_FAILED pending item is filed, and configured channels are notified.
Related
- Agents overview — broader context.
- Data sources and sinks — full transport reference.
- Push results to webhook — the outbound sibling.