Snowflake

Pipe Mixpanel events to Snowflake in minutes, not months.

Every event, every user property, every funnel step — structured in Snowflake and queryable with SQL. No Fivetran. No Airflow DAGs. Just describe what you need.

Build your pipeline

Estimated setup: ~5 minutes

Your Mixpanel data is in a black box.

Mixpanel is great for product analytics in a UI. But when you need to join event data with revenue, CRM records, or backend logs, you hit a wall. The Export API is paginated and rate-limited. The raw data format is nested JSON. And stitching it into Snowflake requires a pipeline that someone has to build and maintain forever.

Rate-limited exports

The Export API throttles at 60 requests per hour for raw data. A full backfill of 90 days of events can take hours to complete — and that is before you handle pagination, retries, and timeouts.

Nested JSON nightmares

Mixpanel events arrive as deeply nested JSON with dynamic property keys. Flattening them into typed Snowflake columns is a recurring chore — and every new event type means new properties to handle.

Pipeline babysitting

Custom Airflow DAGs or cron scripts that break when Mixpanel changes their API, when you add new event types, or when your Snowflake warehouse gets resized. Someone always ends up paged at midnight.

You need a pipeline that handles the API, flattens the data, and lands it in Snowflake — automatically and on schedule.

Your pipeline, running live.

Mixpanel
  • Events
  • Profiles
  • Funnels
camelAI
  • Flatten
  • Dedupe
  • Type cast
SnowflakeSnowflake
  • events
  • profiles
  • sessions
  • funnels
Live
Last sync: 12s agoEvents today: 84,291
events0
profiles0
funnels0
cohorts0
properties0

Structured tables, not JSON dumps.

camelAI flattens Mixpanel’s nested event payloads into clean, typed Snowflake columns. Every property gets a column. Every timestamp is a proper TIMESTAMP_TZ. No VARIANT column full of JSON you have to parse in every query.

snowflake> DESCRIBE TABLE analytics.mixpanel_events;

ColumnTypeNullable
event_idVARCHARNOT NULL
event_nameVARCHARNOT NULL
distinct_idVARCHARNOT NULL
event_timeTIMESTAMP_TZNOT NULL
insert_idVARCHAR
cityVARCHAR
regionVARCHAR
country_codeVARCHAR
osVARCHAR
browserVARCHAR
deviceVARCHAR
referrerVARCHAR
utm_sourceVARCHAR
utm_mediumVARCHAR
utm_campaignVARCHAR
custom_propertiesVARIANT
synced_atTIMESTAMP_TZNOT NULL

Clustering:

CLUSTER BY (event_time, event_name)

4 tables · 1,337,257 total rows · schema: analytics · last sync: 12s ago

Three steps. Five minutes.

1

Connect Mixpanel and Snowflake

Add your Mixpanel API secret and Snowflake connection string as camelAI integrations. Credentials are encrypted and injected as environment variables — never stored in code.

U

“Connect my Mixpanel project (ID: 2847193) to the analytics warehouse in Snowflake.”

A

“Connected. I can see 47 event types and 89,412 user profiles. What would you like to sync?”

2

Describe your pipeline

Tell the agent what events, properties, and user data you want in Snowflake. Be as specific or as broad as you like — it adapts to your requirements.

U

“Sync all events and user profiles to Snowflake. Flatten properties into columns. Run every 15 minutes. Backfill the last 90 days.”

A

“Building the pipeline now. I’ll create 4 tables: events, user_profiles, sessions, and funnels. Starting 90-day backfill...”

3

It runs. You query.

camelAI sets up a cron job on Cloudflare Workers. Every 15 minutes, it pulls new events from Mixpanel's Export API, flattens them, deduplicates by insert_id, and loads them into Snowflake. Your data warehouse stays current. You write SQL.

SELECT
event_name,
COUNT(*) AS total,
COUNT(DISTINCT distinct_id) AS users
FROM analytics.mixpanel_events
WHERE event_time > DATEADD('day', -7,
CURRENT_TIMESTAMP())
GROUP BY event_name
ORDER BY total DESC
LIMIT 20;

Monitor every sync. Catch issues before your analysts do.

MixpanelSnowflakeSnowflake
Healthy

1.2M

events synced

89.4K

profiles synced

99.7%

success rate

12s

avg lag

Recent Sync Runs

RunTimeEventsDurationStatus
#1047Today 14:303,891 events1.2sSuccess
#1046Today 14:154,102 events1.4sSuccess
#1045Today 14:003,744 events1.1sSuccess
#1044Today 13:453,967 events1.3sSuccess
#1043Today 13:304,218 events1.5sSuccess
#1042Today 13:153,582 events0.9sSuccess

Built for data teams who are done babysitting pipelines.

Data Engineers

You maintain the pipeline infrastructure. You want Mixpanel-to-Snowflake to just work — reliably, on schedule — so you can focus on harder problems like data modeling and warehouse optimization.

Analytics Engineers

You write the dbt models downstream. You need Mixpanel events landing in Snowflake in a clean, predictable schema so you can join them with revenue, CRM, and product data without fighting nested JSON.

Heads of Data

You need to consolidate product analytics with the rest of your data warehouse. One source of truth in Snowflake, not five different SaaS dashboards with five different definitions of "active user."

Product Analysts

You want to run SQL against raw event data without waiting for engineering to build a pipeline. You want to join Mixpanel events with backend data that Mixpanel will never have access to.

Frequently asked questions

Your Mixpanel data belongs in Snowflake.

Stop exporting CSVs. Stop maintaining brittle scripts. Describe your pipeline in plain English and let camelAI build, deploy, and run it.