Data Exports
Data exports write your Sequenzy data to a bucket you own, every few minutes, as gzipped JSON lines. Load the files into Snowflake, BigQuery, Redshift, Databricks, Athena or DuckDB and join email engagement with the rest of your product data. You can set up an export in Settings → Data Warehouse → Export to bucket, with the API, the CLI (sequenzy data-exports create) or the MCP server (create_data_export).
Datasets
Test sends are never exported. Events imported as history (for example through Import Events with timestamps older than an hour) are your own backfilled data and are not streamed back out.
Supported storage
- Amazon S3. Provide the bucket, region and an access key.
- Google Cloud Storage. Create an HMAC key for a service account with the Storage Object Creator role on the bucket, and choose
gcsas the provider. - S3-compatible storage such as Cloudflare R2, MinIO or Backblaze B2. Choose
s3and set the endpoint, for examplehttps://<account-id>.r2.cloudflarestorage.com. The endpoint must use HTTPS and resolve to a public address.
<prefix>/_sequenzy/connection-test.json to confirm access. If that fails, nothing is saved and you see the reason, such as a missing bucket, a wrong region or a denied write. Secrets are stored encrypted and are never shown again.
File layout
- Each file is gzip-compressed JSON, one object per line, up to 50,000 lines.
date=folders are Hive-style partitions, so warehouses can prune by day.- Event files cover a window of recorded time (
fromMsexclusive,toMsinclusive, in epoch milliseconds). A delayed bounce lands in the window in which Sequenzy recorded it, so nothing is missed behind an earlier window. - The subscriber snapshot is complete when
_SUCCESSexists. Load a day’s snapshot only after that marker appears.
Delivery guarantees
- At least once. If a run fails partway, the retry rewrites the same window with the same file names. In rare cases, such as a changed file count after a retry, a row can appear twice. Deduplicate on
id. - No gaps. A window only advances after every file in it is written. Exports trail real time by about two minutes so late writes are included.
- Retries. Failed runs retry automatically, backing off from the export frequency up to every 6 hours. The dashboard, API and CLI show the last error until a run succeeds.
- Ordering. Rows inside a file are ordered by recorded time. Use
occurred_atfor analysis.
startFrom in the API). Events recorded more than 7 days after they occurred are not part of the stream.
Row schemas
Every row hasschema_version (currently 1). New fields may be added in the same version; existing fields do not change meaning.
email_events
sms_events
id, event_type (sent, delivered, failed, clicked, opted_out, received), occurred_at, recorded_at, subscriber_id, sms_send_id, campaign_id, sequence_step_id, segments, credits, error_code, clicked_url.
custom_events
id, event_name, occurred_at, recorded_at, subscriber_id, properties (object), campaign_id, sequence_step_id.
subscribers
snapshot_date, id, email, external_id, first_name, last_name, phone, status, sms_status, tags (array), custom_attributes (object), created_at, updated_at.
The snapshot reads subscribers in pages while you keep working, so a contact changed during the export may show either version. Deleted subscribers are absent from the next snapshot.
Load into your warehouse
- Snowflake
- BigQuery
- Redshift
- DuckDB
Manage exports
- Pause and resume. Paused exports keep their position and continue where they stopped. Pausing or deleting an export stops a run in progress before its next file.
- Change datasets. Datasets you add start from the time you add them.
- Move or rotate keys. Changing the bucket, prefix or credentials writes a new test file first. Exports continue from their position in the new location, and a subscriber snapshot in progress starts over there. An export already running stops before its next file and continues with the new settings.
- Export now. Runs immediately instead of waiting for the schedule.
- History. Each run from the last 14 days shows rows, files, size and any error.
- Delete. Stops the export. Files already written stay in your bucket.
data_exports:read to view them, and data_exports:write plus subscribers:read and analytics:read to create, change, test or run them, and data_exports:delete to delete them.