AWS S3 EXPORTS

Messaging data,
exported on schedule to your S3 bucket.

Compressed Parquet files, Hive-partitioned by date and hour, written to a bucket your team owns. AWS S3 natively, or any S3-compatible store: Backblaze B2, Cloudflare R2, Wasabi, DigitalOcean Spaces, MinIO.

THE BEFORE

Your messaging data shouldn’t live in a vendor’s UI.

Every report your team builds, every model your data scientists train, every audit your compliance lead runs depends on raw events. Not screenshots. Not CSV exports. Continuous, schema-stable, in your warehouse.

WHAT YOU GET

Everything your data team expects from a real warehouse pipeline.

Three guarantees. Each one removes a question your engineering review will ask.

01 / SCOPED ACCESS

Your bucket. Your key. Your control.

You create an access key scoped to one bucket with a write-only policy. We encrypt the secret at rest with AWS KMS, bind it to that destination, and validate it with a probe write. Revoke the key any time.

02 / STABLE DATA SHAPES

Versioned. Documented. No glue code.

Stable, versioned data shapes under a v1 prefix. Same fields next quarter as this quarter. Backwards-compatible additions only, so your pipelines never break on a release.

03 / SCHEDULE AND SCOPE

Hourly, daily, or on demand. Incremental or full.

Hourly, daily at 08:00 UTC, or on demand. Each scheduled run picks up exactly where the last one ended. A chunked full export backfills up to two years of history.

WHAT GETS EXPORTED

Four data sets. Stable. Documented. Versioned.

The grain matches how data teams actually model messaging. No reshaping required.

Message events

one row per message, re-exported when its status changes

Every send and every inbound reply. Direction, status, error code and reason, sent, delivered, and failed timestamps, contact, and project. Keep the latest updated_at per message_id for the final outcome.

Project summaries

one row per completed project

Per-project totals for recipients, sends, deliveries, and failures, written when the project completes. Executive reporting and historical performance, ready to query.

Opt-out events

one row per opt-out

Compliance-grade opt-out trail. Every opt-out with phone, source, timestamp, and brand. The artifact your compliance review needs.

Click events

one row per link click

Every link click with device, browser, geo, referrer, and UTM context, plus unique, share, and bot flags. The data your downstream models have been waiting for.

Versioned under a v1 prefix. Backwards-compatible additions only. Your downstream queries never break on a release.

THE WORKFLOW

Same outcome. A real pipeline instead of a spreadsheet.

What used to be a weekly export ritual is one connection and a schedule.

BEFORE

Manual pulls. Stale data. Format drift.

  1. 1Log in to vendor UI
  2. 2Export CSVs by hand
  3. 3Reconcile schema drift
  4. 4Re-import to the warehouse

Lost weeks. Audit gaps. Decisions on yesterday’s data.

NOW

Continuous. Schema-stable. Auditable.

  1. 1Add a scoped access key once
  2. 2Pick data sets and a schedule
  3. 3Query in the warehouse

One scoped access key. Hourly refresh. Parquet in your bucket. Done in an afternoon.

WORKS WITH YOUR WAREHOUSE

One bucket. Every engine your team runs.

The files are standard Parquet in Hive-partitioned paths, so the tools your data team already uses read them directly from the bucket. No connector to install on our side.

Amazon Athena and Glue

Crawl the prefix or declare a partitioned table.

Snowflake

Snowpipe or an external stage on the bucket.

Databricks

Auto Loader on the prefix, landing Delta tables.

BigQuery

An external table over the Hive-partitioned path.

DuckDB

read_parquet with hive_partitioning straight from S3.

QUESTIONS BUYERS ASK

Answered before you have to.

This is the defining platform. See how it's measured.

Every message delivered. At a known cost. On demand. At any scale.