Every stock-out has the same post-mortem: the data was there, nobody looked in time. Current on-hand sits in your Shopify admin, sales velocity is knowable, the reorder point is written down somewhere — but checking it is a manual chore that happens sporadically, and by the time someone notices the fast-mover is low, the lead time is already gone and the listing goes dark. FluidGrids turns that forgettable chore into a standing process that runs whether you remember it or not.
Set a schedule trigger — six o'clock every weekday in your timezone — and the run fires with no one at the keyboard. A Shopify node reads live inventory for every tracked variant: on-hand quantity, SKU, product title, location. The store's API token lives in a workspace connection, referenced by the node but never written into the workflow itself. A transform node then reshapes the raw payload into clean rows — one per SKU, each carrying its on-hand, its reorder point, its velocity, and its lead time — so the math that follows is working on tidy, typed data instead of a nested API blob.
Then the part that replaces guesswork: a code_tool node walks each SKU and, leaning on calculator_tool for the arithmetic, works out days of cover, target stock for the lead time plus a safety buffer, and the actual reorder quantity — floored at zero, rounded to your pack size. No more ordering round numbers because they feel right. The quantity is derived from how fast the thing sells and how long it takes to arrive, and it comes out the same way every single morning.
A filter node keeps only the SKUs that have genuinely crossed their reorder point with a positive quantity to order; everything healthy drops out right there, so the rest of the workflow carries signal instead of noise. A Google Sheets node appends one timestamped row per flagged SKU to a rolling log — a durable, sortable record your buyers and finance team can open, filter, and act on, and that quietly builds the audit trail of what was flagged and why. Finally a Slack node posts the short version to your supply channel: these SKUs are low, order this many of each, here's the log. On a day when nothing crossed the line, the run short-circuits before Slack so the channel stays quiet — no empty all-clear to train people into ignoring it.
Because it runs on FluidGrids like production software, the operability comes free. The whole thing executes on background workers off the request path, and every node's input, output, and duration is preserved on the run. If the Shopify pull hits an expired token or a rate limit, the executor pins a typed error to that exact node — rotate the credential, retry that single step, and the run picks up without re-alerting. The alert itself is the human handoff: the agent decides what and how much, a buyer still places the order — and for higher-stakes catalogs you can drop a pause in after the filter so the run waits on an approval before it ever pings the channel.
The payoff is boring in the best way. Low stock surfaces while there's still time to restock, the reorder quantities are defensible instead of improvised, and the whole loop — scan, compute, log, alert — happens on a cadence you set once and stop thinking about. The stock-out you used to discover from an angry customer, you now catch three mornings early, with the exact quantity to fix it already in the message.
Do it yourself
On a fixed cadence, pull live stock, compute reorder quantities from thresholds and velocity, log the result to a sheet, and Slack the low-stock list before you sell out.
Open My Workflows and click New to start a blank workflow.
You should see: A blank canvas opens with the node palette visible.
Ready to make this your story?



