🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Slack: stock alerts on every order

Lisa Granqvist Partner Workflow Automation Expert

Orders come in, and you find out you’re out of stock the worst possible way: after you’ve already promised delivery. Then it’s a scramble through spreadsheets, DMs, and “who saw the message?” confusion.

This stock alert automation hits ops managers first, but store owners and warehouse leads feel it too. Instead of checking Google Sheets manually and hoping someone pings the right person, you get a Slack alert on every order, plus a clean log you can actually trust.

Below is the exact n8n workflow that validates incoming orders, checks inventory in Google Sheets, alerts Slack, and records what happened so you can tighten fulfillment without adding more meetings.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Slack: stock alerts on every order

The Problem: Stock checks happen too late

Manual inventory checks don’t fail because people are lazy. They fail because order volume is spiky, interruptions are constant, and “I’ll check it in a minute” turns into 20 minutes. Meanwhile, the customer already got an order confirmation. Then you’re stuck issuing refunds, rushing partial shipments, or eating the cost of expedited restocks. And if your team uses Slack for day-to-day coordination, the worst version of this is when the alert goes to the wrong channel, or doesn’t happen at all. Same outcome: late delivery, unhappy customer, messy handoffs.

The friction compounds. Here’s where it breaks down in real life.

  • Someone has to copy SKUs from the order, look up each SKU in a sheet, and do the math for quantities.
  • Out-of-stock issues get discovered after the order is already “accepted,” which means customer support deals with the fallout.
  • Slack messages are inconsistent, so the warehouse can’t tell which orders are safe to pick and which need a hold.
  • If there’s no reliable log, you can’t spot patterns like the same 5 SKUs causing problems every week.

The Solution: Order-triggered inventory checks with Slack alerts

This workflow turns inventory control into something that happens automatically at the moment it matters: when an order arrives. An incoming order hits an n8n webhook, which validates the payload so you don’t process incomplete orders or bad item data. Then it formats the order, extracts each item SKU and quantity, and pulls the latest stock levels from Google Sheets. After that, the workflow merges those results into one view and checks availability. If everything is in stock, it sends a “success” Slack alert and logs the details to a Google Sheet. If anything is short, it posts a shortage alert (to the channel you choose) and logs the exception so it’s trackable.

The workflow starts with a webhook order event. It then compares item quantities against stock levels in Google Sheets, and routes the order down a success or shortage path. Finally, Slack gets the right message and your log sheet gets the full paper trail.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you process 20 orders a day and each order has 3 items. If someone spends even 3 minutes per item checking Google Sheets and doing quick math, that’s about 3 hours a day of “just verifying stock.” With this workflow, the manual time becomes basically the trigger itself (the order arrives) plus a short wait while n8n pulls rows from Google Sheets and posts to Slack. You still do fulfillment, obviously. You just stop doing the repeated checking and pinging.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store and retrieve stock levels
  • Slack to alert the right channel instantly
  • Webhook source (get it from your store/app integration)

Skill level: Beginner. You’ll connect accounts, clone a Google Sheet, and edit a few conditions and channel names.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

An order hits your webhook. n8n receives the order from your website, form, app, or any system that can send JSON to the workflow URL.

The order is cleaned up and validated. The workflow checks that the payload has what you need (order id, customer fields, items, quantities) and then prepares a consistent structure so the rest of the logic doesn’t break on weird inputs.

Inventory is pulled from Google Sheets and compared. For each SKU in the order, the workflow retrieves stock levels from your sheet, merges the results, and runs an availability check using the thresholds you set.

Slack and logging happen automatically. In-stock orders get a success message plus a success log row. Shortages get an alert to your “warehouse” channel (or another channel you choose) and a shortage log row so you can track recurring issues.

You can easily modify the Slack routing to post different alerts per product category or location based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the inbound webhook that receives order payloads from your eCommerce system.

  1. Add and open Incoming Order Hook.
  2. Set Path to ecom-order.
  3. Set HTTP Method to POST.
  4. Set Response Data to All Entries and Response Mode to Last Node.

Step 2: Connect Google Sheets for Inventory and Logging

Configure the spreadsheet lookups for stock levels and the log append for order outcomes.

  1. Open Retrieve Stock Levels and connect the sheet that holds SKU inventory.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Set Operation to lookup, Range to Inventories!A:B, and Lookup Column to sku.
  4. Set Lookup Value to ={{$json["sku"]}} and Sheet ID to your spreadsheet ID (replace [YOUR_ID]).
  5. Open Append Log Sheet and set Operation to append with Range OrderLogs!A:E and your Sheet ID.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials.
Tip: Make sure your inventory sheet has a sku column in column A and stock values in column B to match the lookup range Inventories!A:B.

Step 3: Set Up Order Parsing and Preparation Functions

These function nodes validate the incoming payload and normalize order data for stock checks and invoicing.

  1. Open Validate Order Payload and keep the validation logic that throws an error for missing id, customer, or items.
  2. Open Prepare Order Details to map customer data, items, and totals into a consistent structure.
  3. Open Extract Item Quantities to emit per-item records with sku and qty.
  4. Note that Extract Item Quantities outputs to both Retrieve Stock Levels and Combine Item Stock in parallel.
⚠️ Common Pitfall: Ensure the incoming order payload includes an items array with sku and quantity; otherwise Validate Order Payload will throw Invalid order payload.

Step 4: Configure Stock Merge and Availability Logic

Combine ordered items with stock levels and check if the order can be fulfilled.

  1. In Combine Item Stock, set Mode to combine and Fields to Match to sku.
  2. In Stock Availability Check, set the boolean condition to compare quantities and stock using ={{ $items().every(item => item.json.qty <= item.json.stock) }} against ={{ true }}.
  3. Confirm that Combine Item Stock feeds into Stock Availability Check for final routing.

Step 5: Configure Success and Shortage Alerts

Send Slack notifications based on whether stock is sufficient or not.

  1. Open Slack Success Alert and set the Text to ={{ '✅ Order ' + $json.orderId + 'Invoiced. \nInvoice: ' + $json.invoiceId + ', \nAmount: $' + $json.amount + ', \nCustomer: ' + $json.customer + ', \nDate: ' + $json.date}}.
  2. Set Channel to your Slack channel ID (replace [YOUR_ID]), and use Authentication oAuth2.
  3. Credential Required: Connect your slackOAuth2Api credentials.
  4. Open Slack Shortage Alert and set Text to ={{'⚠️ Order '}} {{ $('Prepare Order Details').item.json.id }} {{'is not available for order due to lack of stock.'}} \n{{'\n SKU: '}} {{ $json.sku }}\n{{'\n Request quantity: '}} {{ $json.qty }}\n{{'\n Stock quantity: '}} {{ $json.stock }}.
  5. Set Channel to your Slack channel ID (replace [YOUR_ID]) and ensure Authentication is oAuth2.
  6. Credential Required: Connect your slackOAuth2Api credentials.

Step 6: Build Invoice and Logging Records

Create invoice data for successful orders and log outcomes for both success and shortage branches.

  1. Open Generate Invoice Record and keep the invoice construction that uses Prepare Order Details and Extract Item Quantities fields.
  2. Verify Generate Invoice Record outputs to Slack Success Alert.
  3. Open Build Success Log and confirm it sets status to Success.
  4. Open Build Shortage Log and confirm it sets status to Out of Stock.
  5. Ensure both Build Success Log and Build Shortage Log connect to Append Log Sheet.
Tip: This workflow has multiple function nodes (6 total). If you customize the order schema, update Prepare Order Details first, then align the downstream function nodes that reference it.

Step 7: Test & Activate Your Workflow

Run a manual test with a sample payload to confirm stock checks, alerts, and logging are working.

  1. Click Execute Workflow and send a test POST request to the Incoming Order Hook URL with a valid order payload.
  2. Successful execution should: pass Validate Order Payload, populate Prepare Order Details, and complete stock lookup/merge before Stock Availability Check.
  3. If stock is available, verify a message in Slack Success Alert and a new row appended by Append Log Sheet.
  4. If stock is insufficient, verify a message in Slack Shortage Alert and a log entry from Build Shortage Log appended to Append Log Sheet.
  5. Once verified, toggle the workflow to Active for production use.
⚠️ Common Pitfall: This workflow has no error handling. If your webhook sends malformed payloads, executions will fail in Validate Order Payload without fallback logging.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check n8n’s Credentials menu and confirm the sheet is shared with the connected Google account.
  • If your stock lookup relies on exact SKU matching, small formatting differences will cause false shortages. Check for extra spaces, different capitalization, or SKUs stored as numbers in Google Sheets.
  • Slack alerts can silently go to the wrong place if the channel name changes. Confirm the channel (often “warehouse”) exists and matches the Slack node configuration before you trust it in production.

Frequently Asked Questions

How long does it take to set up this stock alert automation automation?

About 30 minutes if your Google Sheet and Slack are ready.

Do I need coding skills to automate stock alerts?

No. You’ll paste in credentials and adjust a few conditions. The “hard part” is simply deciding what counts as a shortage for your business.

Is n8n free to use for this stock alert automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Workspace and Slack plan limits if your account is restricted.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this stock alert automation workflow for different Slack channels per product category?

Yes, and it’s one of the best upgrades. You can route messages by adding a condition right after Extract Item Quantities, then sending alerts to different Slack nodes (or dynamically setting the channel) before the workflow reaches Slack Success Alert or Slack Shortage Alert. Common customizations include separate channels for backorders vs. normal picks, different thresholds for fast-moving SKUs, and tagging a specific manager for high-value orders.

Why is my Slack connection failing in this workflow?

Usually it’s expired credentials or missing workspace permissions in your n8n Slack credential. Also check the target channel name: if “warehouse” doesn’t exist (or was renamed), Slack won’t post where you expect. If you’re firing lots of alerts at once, rate limits can show up too, which looks like random failures.

How many orders can this stock alert automation automation handle?

A lot. On n8n Cloud, capacity depends on your plan’s execution limits, and self-hosting depends on your server. Practically, Google Sheets lookups are the main bottleneck, but most small teams can run this all day without noticing.

Is this stock alert automation automation better than using Zapier or Make?

Often, yes, because this flow has branching logic (success vs. shortage) plus data shaping that’s easier to control in n8n. You also get the option to self-host, which matters when order volume spikes and per-task pricing gets annoying, frankly. Zapier or Make can still be fine for a simple “new order → post message” setup, but this workflow is doing validation, multi-item checks, and structured logging. If you’re torn, Talk to an automation expert and we’ll point you to the simplest reliable option.

Once this is running, stock checks stop being a daily firefight and become a quiet background process. You get faster decisions, clearer Slack handoffs, and far fewer surprise stock-outs.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal