
Agentic Salesforce to Snowflake ELT: From One Prompt to a Governed Pipeline
How Bruin CLI, Bruin MCP, Bruin Cloud, and agent skills can build and maintain a Salesforce to Snowflake ELT pipeline across bronze, silver, and gold layers.
Your revenue lives in Shopify, your marketplace sales in Amazon, and your spend across Meta, Google, and TikTok. Getting one honest number for 'what did we make and what did it cost' means reconciling all of it. Here's how to stop doing it in a spreadsheet.

Kateryna Kozachenko
Marketing & Growth
TL;DR: multi-channel ecommerce means your sales are split across Shopify and Amazon while your spend is split across Meta, Google, and TikTok, and every one of those systems reports on its own definitions, timing, and attribution. Getting to one honest answer for "what did we actually make and what did it actually cost" is a reconciliation job, and most teams do it by hand in a spreadsheet every week. That manual synthesis is slow, error-prone, and stale the moment it's finished. The fix is to connect every source once, agree on common definitions and keys, dedupe the double-counted attribution, and compute contribution margin in one place. Then "what's my blended ROAS after fees?" becomes one question with one answer, which is what an AI data analyst like Bruin is for.
Ask a growing ecommerce team "what did you make last month?" and watch what happens. Someone opens Shopify. Someone else says "but that doesn't include Amazon". A third person points out the ad spend isn't in either. Twenty minutes later there's a spreadsheet, three exported CSVs, and a number nobody fully trusts.
This is the multi-channel reconciliation problem, and it's one of the most common time sinks in ecommerce operations. Not because anyone is bad at their job, but because the data was built to live in silos, and reconciling it is genuinely hard.
Here's why it's hard, and how to make it a single answer instead of a weekly ritual.
You have at least two revenue sources and three spend sources, and none of them agree on definitions.
On the revenue side:
On the spend side:
So you have gross-vs-settlement mismatches on revenue, overlapping double-counted attribution on spend, currency conversion if you sell internationally, and timezone and timing differences across all of it. "What did we make and what did it cost" isn't one query against one system. It's a reconciliation across five systems that each answer a slightly different question.
Strip away the tooling and there are only a few numbers that matter, and they all require the reconciliation:
Every one of these is a blended number. Blended numbers, by definition, can't come from one platform. They come from reconciling all of them against your own order data as the source of truth.
Here's how most teams get these numbers today: an analyst or operator exports a CSV from Shopify, another from Amazon Seller Central, and one from each ad platform. Then they line them up in a spreadsheet, reconcile revenue to a common definition, subtract fees, allocate spend, and produce a weekly view. It works. It's also the bottleneck.
The problems with the spreadsheet approach are structural, not a matter of skill:
The spreadsheet isn't wrong. It's just the manual version of something that should be defined once and answered on demand.
The durable fix has four steps, and none of them requires living in a spreadsheet:
1. Connect every source to one place. Shopify, Amazon, and each ad platform feed into a common store of data. This is the step that used to require a data-engineering project and now doesn't.
2. Agree on keys and definitions. Decide what "net revenue" means, what timezone and currency you standardize to, and how you'll key orders across channels. Write it down once. This is the same discipline that solves the broader "how do I know my numbers are right" problem.
3. Dedupe attribution against your own orders. Use your actual order data as the denominator and the source of truth. Treat platform-reported revenue as a directional signal, not gospel, and compute blended CAC and ROAS from real orders so no sale is counted twice.
4. Compute contribution margin in one model. Revenue, minus COGS, minus channel fees, minus shipping, minus attributed spend, per channel. Once this model exists in one place, every downstream question is just a slice of it.
Do this once and "what's my blended ROAS after Amazon fees for the last 30 days?" stops being a Friday-afternoon project and becomes a question you ask and answer in seconds.
The reason an AI data analyst matters here is that the reconciled model unlocks an endless stream of ad-hoc questions, and you don't want to build a dashboard for each one:
With the sources connected and the definitions agreed, an AI analyst answers each of these as a single question, against the reconciled data, and shows you the query it used so the number is auditable. That last part matters, because a blended number that you can't trace is exactly the kind of figure nobody trusts.
We built Bruin as a single platform that connects your sources, models them, and answers questions on top, which is the shape this problem needs.
You connect Shopify, Amazon, and your ad platforms through direct integrations, plus thousands more sources via APIs, webhooks, and scraping. You define your metrics once. Then you ask, in plain English, in whichever channel your team already uses (Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email, or the browser), "what was net revenue and blended ROAS across all channels last month?", and get one reconciled answer, with the query behind it, from data you can trace back to the raw Shopify and Amazon rows.
The point isn't that Bruin has an AI that talks. It's that the AI is sitting on top of ingestion and modeling it controls, so the reconciled number is real, current, and auditable, instead of a spreadsheet's best guess from last Tuesday. And because it can run on a schedule, the weekly reconciliation can just happen and post itself, instead of being someone's recurring chore.
Because they double-count and they use different definitions. Ad platforms each claim credit for the same sales inside overlapping attribution windows, so summing their reported revenue overstates the total. And Shopify's gross sales, Amazon's settlement figures, and your bank deposits are three different numbers. You reconcile against your own order data, counted once, rather than adding up self-reported figures.
Platform ROAS uses the platform's own attributed revenue, which overlaps with other platforms and is usually optimistic. Blended ROAS divides your total ad spend across all platforms into your actual total revenue from your order data. Blended ROAS is the honest, defensible number for deciding where budget goes.
Decide on a convention (accrual by order date, or cash by settlement date) and apply it consistently, and keep Amazon's fees explicit so a dollar of Amazon revenue is compared fairly against a dollar of DTC revenue. The key is picking one basis and reconciling to it every period, rather than mixing order-date revenue with settlement-date deposits.
They're useful for in-platform optimization (which creative, which keyword). They're not the right source for "did the business make money", because no single platform can see the others or your true costs. Use platform dashboards for tactics and a reconciled cross-channel view for the P&L question.
Yes, that's the main reason to move it off the spreadsheet. Once the sources are connected and the metrics defined, the reconciliation runs on a schedule and the answer is available on demand. With Bruin you can also have the weekly blended view post itself into your team's channel automatically.
The slow part historically was building pipelines from each source, which is now a connection step rather than an engineering project. Defining your metrics (net revenue, timezone, currency, how you key orders) is the part that needs a real decision, but it's a decision you make once. After that, questions are instant. Get started at github.com/bruin-data.

How Bruin CLI, Bruin MCP, Bruin Cloud, and agent skills can build and maintain a Salesforce to Snowflake ELT pipeline across bronze, silver, and gold layers.

Most AI data analysts live in Slack or a browser. Bruin runs in WhatsApp too. Here is why field, sales, and ops teams prefer asking their data questions there, what it takes to make it actually work, and how to roll it out safely.
Can you just use ChatGPT, Claude, or a coding agent like Codex to analyze your company data? Here is the honest difference between a general AI model and a purpose-built AI data analyst, why a model alone is not enough, and what it takes to get trustworthy answers from live company data.
Practical updates on open-source data pipelines, AI analysts, governance, and what we are shipping at Bruin.