
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.
When stock is spread across warehouses, 3PLs, Amazon FBA, and retail, nobody can answer 'how much do we actually have and where'. Here's how to build one unified inventory view with velocity, days of cover, and reorder alerts, without a data team.

Kateryna Kozachenko
Marketing & Growth
TL;DR: once your inventory is spread across more than one location or channel (a couple of warehouses, a 3PL, Amazon FBA, a retail store or two), the simple question "how much do we have and where" stops having a simple answer. Each system counts stock its own way, uses its own SKU scheme, and syncs on its own schedule, so you oversell on one channel while dead stock piles up in another. The fix is to bring every inventory source into one place, map the SKUs to a common identity, and layer on velocity, days of cover, and reorder logic. Then "what's below reorder point across all locations?" is a question you ask, and an alert you receive, not a spreadsheet you rebuild. That's what an AI data analyst like Bruin is built to do.
Here's a question that sounds trivial and almost never is: how many units of your best seller do you have right now, and where are they?
For a single-warehouse store, easy. For a store with a main warehouse, a west-coast 3PL, Amazon FBA, and a flagship retail location, that question can take a person half a day and still produce a number with an asterisk. Multiply it across your whole catalog and you understand why stockouts and overstock coexist in the same business, on the same day.
Multi-location inventory is one of the quiet killers of ecommerce margin, and it's fundamentally a data problem.
Every place your stock physically sits has its own system of record, and those systems were never designed to agree:
Now the failure modes write themselves:
The root cause is always the same: there is no single, trustworthy number for on-hand by SKU across every location, because the counting happens in silos that use different identities for the same physical product.
A useful multi-location inventory view is more than a sum. It needs four layers:
1. One on-hand number per SKU, everywhere. Total available to promise across all locations, plus the per-location breakdown, keyed to a single product identity even though each system calls it something different. This SKU mapping is the unglamorous foundation everything else stands on.
2. Velocity by location and channel. How fast each SKU sells, where. A SKU can be a fast mover on Amazon and a slow mover in DTC, and the reorder logic has to know the difference.
3. Days of cover and reorder points. On-hand divided by velocity, per location, so you can see "the west-coast 3PL has 6 days of cover on this SKU" and act before it's zero. Reorder points that reflect lead time, not a static number someone set last year.
4. Cross-location intelligence. Where should stock move? Which SKUs are overstocked in one place and short in another? Which slow movers are tying up cash and should be discounted rather than reordered? These are the decisions that actually save money, and they're only possible once the first three layers exist.
Notice that layers 2 through 4 all depend on layer 1. If you can't get one trustworthy on-hand number per product across locations, nothing above it works. And layer 1 is exactly the join that the siloed systems make hard.
The single biggest reason multi-location inventory analysis stalls is that the same physical product has a different code in every system. Your WMS calls it TSHIRT-BLK-L. Amazon calls it by an FNSKU. Your POS has its own barcode. Your 3PL relabeled it on intake.
Until those are mapped to one identity, every cross-location number is wrong, and every automated reorder or transfer suggestion is dangerous. So the mapping is not optional busywork. It's the thing that makes the rest possible.
The good news: it's a one-time setup that then stays maintained as you add products, and once it exists, every downstream question (on-hand, velocity, cover, transfers) just works. The bad news is that people avoid it because it looks tedious, and so they keep living in the per-system view and paying for it in stockouts.
Historically, a unified inventory view meant an inventory or ERP implementation, or a data-engineering project to pipe every system into a warehouse and model it. Both are heavy. Both are why smaller multi-channel operators just live with the spreadsheet.
Two things changed. Connecting the source systems got cheap, and asking questions across them in plain language got cheap. That combination is what lets a small team get an enterprise-grade inventory view without the enterprise project.
The reason an AI data analyst fits inventory particularly well is that inventory questions are both endless and time-sensitive:
You'll never dashboard all of those. You want to ask, get an answer with the query behind it, and, crucially, have the urgent ones (below reorder point, near stockout) tell you on a schedule instead of waiting for you to check.
We built Bruin as one platform that connects your sources, models them, and answers questions on top, which is precisely what a unified inventory view needs.
You connect your warehouse or WMS, your 3PL, Amazon FBA, and your POS through direct integrations, plus thousands more sources via APIs, webhooks, and scraping. You map SKUs to one product identity once. From then on, on-hand by SKU across every location is a single reconciled number you can trust, and every question on top of it (velocity, days of cover, transfer suggestions) is just a query.
Then you ask, in plain English, in whatever channel your team already uses (Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email, or the browser): "which SKUs are below reorder point across all locations?". You get the list, with the query, from data you can trace back to each source system.
And because the same platform runs on a schedule, the alerts that matter can watch for you: below reorder point, projected stockout inside lead time, dead stock crossing a threshold. Those post into your team's channel automatically, so multi-location inventory becomes something that warns you before it hurts, instead of something you discover after a cancellation email goes out.
Each of these is a decision waiting to happen: a reorder to place, a transfer to schedule, a slow SKU to discount, a stockout to prevent.
Because each channel tracks its own view and can't see the others' allocations in real time. If DTC and Amazon both believe the last unit is available, both can sell it. The fix is a single available-to-promise number that every channel reads from, which requires unifying the counts across systems.
Mapping the same physical product to one identity across systems that each use a different SKU or code. It's a one-time setup that everything else depends on. Skip it and every cross-location number, and every automated reorder, is unreliable.
Not necessarily. An ERP is one way to enforce a single inventory record, but it's a heavy implementation. If you already run a WMS, a 3PL portal, FBA, and a POS, you can instead connect those sources into one place and analyze them together, which gets you the unified view and the analytics without ripping out your systems.
Inventory tools are strong at operations within their own scope. The gap is cross-system, blended analysis: velocity by channel, days of cover per location, transfer intelligence, and dead-stock detection across everywhere at once. That analytical layer is what an AI data analyst on top of connected sources adds.
Yes, and that's the main reason to move off manual checks. Once sources are connected and reorder points are defined, checks for below-reorder-point and projected stockouts run on a schedule and notify you. With Bruin those alerts post straight into your team's channel.
As current as the slowest source feeding it, which is why freshness matters and a good tool reports it. Real-time systems (POS, WMS) update continuously; some 3PLs send daily files. The unified view should tell you how fresh each part is, so you're never promising stock on a day-old count. 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.