New teams get free Claude credits for their trial. Learn more

The e-commerce analytics stack: Shopify + Klaviyo + GA + Stripe

May 12, 2026•4 min read•Vivek Sah

Hi, this is Vivek, building Contextflo. I share practical notes on getting answers from your data, a couple of times a month.

The e-commerce analytics stack: Shopify + Klaviyo + GA + Stripe

Your e-commerce data lives in four places: Shopify for orders, Klaviyo for email, Google Analytics for traffic, and Stripe for payments. Answering "which email campaign drove the most revenue last month" needs all four. Here is how to set that up in an afternoon.

E-commerce analytics stack setup

The stack

  1. Shopify + Klaviyo → Airbyte → your warehouse (BigQuery or Snowflake)
  2. Stripe + Google Analytics → Contextflo, direct API connection
  3. Warehouse + APIs → all queryable from Claude in one conversation

The thing worth noticing is step 2. You do not have to ETL everything into the warehouse before you can ask a question about it. Sources that have a decent API can be queried directly, which means less pipeline to build and less pipeline to maintain later.

What you can ask once it is connected

Which Klaviyo campaign drove the most Stripe revenue last month?

What's our blended CAC when I combine Google Analytics acquisition data with Stripe revenue?

Show me the customer journey: GA source → Shopify first order → Klaviyo email engagement → repeat purchase rate.

Which products have the highest refund rate in Stripe but the best reviews in Shopify?

Each of these used to need someone who knew all four schemas and had an afternoon free. That is the actual bottleneck in most e-commerce teams, and it is not analysis, it is joining.

The joins that will bite you

Cross-source questions are only as good as the key you join on, and in this stack the key is almost always email or customer ID, both of which are messier than they look.

Shopify and Stripe will disagree on order count, because Shopify records an order at checkout and Stripe records a charge, and those diverge on failed payments, retries, and partial refunds. Klaviyo identifies people by email, while Shopify has both guest checkouts and accounts, so the same human shows up twice. Google Analytics does not know who anyone is at all, so anything joining GA to revenue is attribution, not fact.

None of this makes the questions unanswerable. It means the first time you ask one, check the answer against a number you already trust. Once you have settled how orders map to charges and how guest checkouts are resolved, save that as a definition so every later answer uses the same logic instead of re-deriving it.

Why this stack works

Most e-commerce teams do one of two things. They build a dashboard inside each tool, which gives four fragmented views and no way to ask across them. Or they hire someone to build a unified data model, which is correct and takes a quarter.

This is the middle path: a unified view without the unified model. You ask a question that spans sources, and the model works out where to pull from and how to combine it, using definitions you have written down once.

It is not free of tradeoffs. A real dimensional model is still better if you have the team to build and maintain one. Most stores under a certain size never will, and the choice is not between this and a warehouse model, it is between this and a spreadsheet.

Here is a more in-depth look at Contextflo and how it works.

What is Contextflo?

Contextflo is a governed context layer between your data and the AI your team already uses. Connect your warehouse once, and your team asks questions in their own Claude or ChatGPT. The model writes and runs the SQL; Contextflo supplies the definitions, the per-user access control, and the audit that make the answers trustworthy. Your data never moves, and you do not need a data team.

How it works

1
Connect your data
Point Contextflo at your warehouse or database, or upload a CSV. It reaches multiple sources at once, so a single question can span all of them.
2
Generate context automatically
Connect your code repo, Notion docs, or a data dictionary, and Contextflo annotates each table in your data source where it can. You review and correct them. That becomes the foundational context layer: your AI agent does not just see tables, it sees the context around them.
3
Define metrics and save golden queries
Pin the verified SQL behind a metric once. Every question then resolves against the same definitions, so the number is consistent no matter who asks or how they phrase it.
A short walkthrough on a BigQuery warehouse.

Your team queries in their own Claude or ChatGPT over MCP, so you bring any agent rather than a locked-in bot, and every answer comes back with the SQL shown and access enforced per user.