> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockful.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Alerts watch your inventory and tell you in Slack, Discord, your own endpoint or by email when the conditions you care about are met. Every plan includes unlimited alerts.

Alerts watch your inventory and tell you in Slack, Discord, your own endpoint or by email when conditions you care about are met. All plans include unlimited alerts.

<Frame>
  <img src="https://mintcdn.com/ljsstudios/lAYZCy5_49NRsktr/images/user-guide/alerts--list.png?fit=max&auto=format&n=lAYZCy5_49NRsktr&q=85&s=e022b834a62ce10b3f1e08b5f1149124" alt="The alerts list" width="2936" height="916" data-path="images/user-guide/alerts--list.png" />
</Frame>

<Note>
  Slack and Discord alerts need that service connected first, under **Settings → Integrations**. Email and webhook alerts need no connection at all.
</Note>

## Alert types

| Alert                               | Triggers when...                                                                                                                                                                                                                                                                                                                                     | Checked    |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| **Out of stock**                    | A variant hits zero or below                                                                                                                                                                                                                                                                                                                         | Live       |
| **Oversold**                        | A variant goes negative because it has sold past zero. Optionally set a threshold to only alert once it is oversold by at least that many units                                                                                                                                                                                                      | Live       |
| **Back in stock**                   | A variant that was out of stock returns to a positive quantity. It does not fire when stock simply increases from an already-positive level                                                                                                                                                                                                          | Live       |
| **Low stock**                       | A variant drops below a threshold you set, measured in days of cover or units                                                                                                                                                                                                                                                                        | Live       |
| **Reorder point reached**           | A variant falls to or below its reorder point, while still in stock                                                                                                                                                                                                                                                                                  | Live       |
| **Sales spike or drop**             | A SKU sells far above or below its own recent pattern, with an AI explanation of what changed. Choose the severity and whether you want spikes, drops, or both. Needs [anomaly detection](/user-guide/anomalies) switched on                                                                                                                         | Once a day |
| **Traffic surging, stock thin**     | A product's [storefront traffic](/user-guide/traffic) has at least doubled while its stock would run out inside the days of cover you set. Catches demand building before your sales rate has caught up with it                                                                                                                                      | Once a day |
| **Promotion stock check**           | A [promotion](/user-guide/forecasting/promotions) is coming up and some SKUs are short of what the declared uplift implies. One message per promotion, listing what to order                                                                                                                                                                         | Once a day |
| **Time to reorder**                 | The last day you can place an order for a SKU and still have it land before you run out, told to you as that day approaches. Set how far ahead to hear about it. Skips anything already on an open order, allows for a supplier's closed periods, and stays quiet once a deadline has passed, since ordering then can no longer prevent the stockout | Once a day |
| **Supplier slower than configured** | A supplier's actual delivery times have run past the lead time you have set for them, which under-sizes every reorder point that depends on it. One message per supplier                                                                                                                                                                             | Once a day |

**Live** alerts are evaluated the moment an inventory change arrives from Shopify. **Once a day** alerts are checked on a schedule, because the figures behind them - storefront sessions, sales history, supplier receipts - only update overnight.

How often an alert is checked isn't something you set: it follows from the trigger, and is shown on the alert form beneath it. *When* the daily check runs is yours - pick the hour under **Check time**, and that's when those alerts land. Two alerts on the same store can check at different times.

A few triggers can't be checked in the small hours, because their own inputs aren't there yet. **Traffic surging**, **Promotion stock check** and **Time to reorder** are available from 6am, **Sales spike or drop** from 9am (it waits for the overnight analysis to finish). The rest have no restriction.

For a **low stock** alert you choose how the threshold is measured:

* **Days of cover** - fires when a variant's days of supply, based on recent sales velocity, falls below your number. Best for catching stockouts before they happen, even on fast movers.
* **Units** - fires when available units fall to or below your number. Best for a fixed floor regardless of how fast something sells.

## Creating an alert

<Frame>
  <img src="https://mintcdn.com/ljsstudios/lAYZCy5_49NRsktr/images/user-guide/alerts--form.png?fit=max&auto=format&n=lAYZCy5_49NRsktr&q=85&s=690969f9e035d17e8980ca8a45f62ba3" alt="Creating an alert: trigger, scope, and channel" width="2438" height="1598" data-path="images/user-guide/alerts--form.png" />
</Frame>

1. Go to **Alerts** in the main menu, and click **Create alert**
2. Choose a trigger type and set the threshold. For **low stock**, also choose whether it's measured in **days of cover** or **units**
3. Choose where it goes under **Delivery**, and how it's sent under **Sending**
4. Choose which SKUs to watch - all SKUs, selected SKUs, or a filter
5. Save the alert

You can pause or edit an alert at any time.

Two optional conditions narrow when an alert fires:

* **Only when nothing is on order** (low stock and reorder point) - skips the alert while incoming stock or an open purchase order already covers the product, so you only hear about the SKUs that still need action.
* **Minimum monthly sales value** - only alerts for products selling at least that value per month at the current sales rate, keeping slow, low-value SKUs out of your channel.

The same variant won't be alerted on again until the cooldown passes, so a SKU hovering around its threshold doesn't fill your channel. The cooldown is 24 hours by default and you can change it in **Alert settings** - anything from an hour to a week. It applies per location and per trigger, so the same product can still alert about a different problem.

## Where alerts go, and how they're sent

Each alert has its own settings, so a low stock alert can post to Slack on its own while a reorder alert arrives as one email each morning.

**Where** is one of four channels, each with its own page:

| Channel                                            | Where it goes                            |
| -------------------------------------------------- | ---------------------------------------- |
| **[Slack](/user-guide/alerts/channels/slack)**     | Posted to a channel.                     |
| **[Discord](/user-guide/alerts/channels/discord)** | Posted to a channel in your server.      |
| **[Webhook](/user-guide/alerts/channels/webhook)** | POSTed as JSON to a URL you control.     |
| **[Email](/user-guide/alerts/channels/email)**     | To the recipients you add on that alert. |

Slack and Discord are each connected once for the whole shop, under **Settings → Integrations**, or straight from the alert with **Connect**. Email and webhook need no connection: their destination is set on the alert itself.

**How to send** is individual alerts, or a summary:

| Sending               | What arrives                                                                                                                                                                                                           |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Individual alerts** | One message per alert, sent as soon as that alert is raised                                                                                                                                                            |
| **Summary**           | One message covering everything the alert caught since the last one - daily, weekly on the days you pick, or monthly (by date, month-end, or an nth weekday). Repeat every N periods if you like, at a time you choose |

This is about how many messages you get, not how quickly. A once-a-day alert set to **Individual alerts** still only checks once a day; it just sends each finding as its own message rather than grouping them, at the check time you chose.

On a once-a-day trigger the summary's time is the check time too, so a weekly summary still checks every day and reports the whole week. Nothing found on a Tuesday waits until the next Monday to be noticed.

A summary reports what the alert *caught over the period*, not whatever happens to be low when it sends. A SKU already reported yesterday isn't listed again unless it alerts again, which is what makes this different from a scheduled report.

<Note>
  Email is always a summary. A message per alert by email on a large catalogue is thousands of emails, so individual sending is Slack and Discord only.
</Note>

### Testing an alert

**Send test** on a saved alert shows what it will actually produce: a single message when it sends individually, or a sample summary when it doesn't. Email tests go to one address only, so testing never mails the whole team. Test sends don't count towards the cooldown.

<Tip>
  Start with a broad alert (all SKUs, generous threshold) and refine once you see which alerts are useful.
</Tip>
