Stock Alerts
Stock alerts are a daily email about your own inventory: the products that are below the minimum level you set in OpenBoxes, and the lots that are close to expiring. They are switched off until someone on your account turns them on, and they are included on the plan you are already on. There is no alerts add-on to buy.
Stock alerts are available on Shared and Dedicated instances alike. What decides is where your instance actually runs, not the plan name. If we are moving your instance between tiers, alerts keep running on the shared fleet until the move and resume on the new server once the move is complete; the daily check may not run on the days the move is in progress.
The short version#
- Once a day. Not real time. We check your instance once each day and send at most one email. Nothing is sent the moment stock drops.
- Only products with a minimum set are ever checked for being low. If a product has no minimum level at that location, it is never reported as below minimum, however low it gets. The minimum level is the only threshold used; a reorder point is not. If you set no minimums at all, you will never be told anything is low.
- The expiring half does not use minimum levels. It looks only at how close a lot is to its expiry date, so an instance with no minimums set still receives an email on any day a lot falls inside the chosen window.
- Stock that has already expired is not listed. The section covers lots still ahead of their expiry date. A lot that has already passed its expiry date is not in the email, so it is not what triggers one. Use the expiry views in your own instance for stock that is already past its date.
- We cut long lists sensibly and always tell you the true total. At most 50 rows per location in each section, and 200 rows in one email overall. The below-minimum section keeps the largest shortfalls; the expiring section keeps the lots closest to their expiry date. Each section that shows fewer rows than exist says so and gives the real total, for example "Showing 50 of 1,483 products below minimum."
- Who gets it, and how to stop. The account owner, plus the teammates ticked in the panel. Every email carries an unsubscribe link that removes only that one address.
Turning them on#
- Go to Integrations in the portal sidebar, then the Destinations tab.
- Open Stock alerts.
- Switch them on.
- Tick the teammates who should receive the email. The account owner always receives it, unless they have unsubscribed themselves.
- Choose the expiring soon window: 30, 60, 90, 180 or 365 days. The default is 30 days.
Anyone on your account can open this panel and change these settings: switch the instance's alerts on or off, change the expiry window, and change which teammates receive them. It is a shared team surface, not an owner-only control.
Two things follow from that, and both are worth knowing:
- The switch turns the whole instance's alerts on and off, not one person's copy, so a teammate can switch alerts off for everyone.
- An individual stops their own copy with the unsubscribe link in the email. That opt-out is kept, and nobody can undo it by re-ticking that person here, not even the account owner.
When the email arrives#
We take one picture of your stock each day, early in the morning, and send the email shortly after 7am, both in your instance's timezone, not ours. We check every hour, so the usual send is within the hour after 7am; if a run is delayed or busy it can be later, but it is always the same day, in your instance's timezone. The send hour is fixed; it is not something you choose.
Your timezone is decided in this order:
- The timezone you set yourself, under Settings > General.
- Otherwise, the timezone we have recorded for your account.
- Otherwise, US Eastern (
America/New_York).
The email and the portal both name the zone that was used, so you can always see which one you are on, including when it is the platform default rather than a choice you made.
What is in the email#
Below minimum. Products whose quantity on hand is under the minimum level set for them at that location, grouped by location, largest shortfall first. Products that are completely out of stock are part of this section.
Expiring within your window. Lots whose expiry date falls inside the window you chose, grouped by location, soonest to expire first, with the lot number, the expiry date and the quantity on hand.
This section lists stock approaching expiry. A lot that has already passed its expiry date is not listed here, and does not on its own cause an email to be sent. For stock that is already past its date, use the expiry views in your own OpenBoxes instance.
The coverage line. Every email says how many of your products have a minimum level set, for example: "We only check products that have a minimum level set: 142 of 3,180 products here." That sentence is there so a short email is never mistaken for a clean bill of health.
The check time, with the timezone named, and a link to your instance.
The limits, stated plainly#
- At most 50 rows per location, per section: the 50 largest shortfalls in the below-minimum section, and the 50 lots closest to expiry in the expiring section.
- At most 200 rows in one email in total, across all locations and both sections.
- Whenever a section shows fewer rows than exist, the email states the real total for that section.
A day with a very long below-minimum list can use up the 200-row budget before the expiring section, so on that day the expiring section may be short or absent, but its true total is still stated.
When we send nothing#
If nothing is below minimum and nothing is expiring inside your window, we send no email at all. An inbox with nothing in it is ambiguous, so the check itself is reported in the portal instead.
The Stock alerts panel shows a status line such as:
Last checked 06:12 (Europe/London): 0 alerts
That is the difference between "we looked and you are fine" and "we did not look". If a check could not be completed (your instance was suspended or being rebuilt, the data could not be read, or we could not reach the user directory), the panel says so explicitly, with the reason and when we will try again. It never reports a failed check as "0 alerts".
Alerts are not sent for an instance that is suspended or being rebuilt, and staging copies never send them.
Who receives it#
- The account owner, always, unless they have unsubscribed themselves.
- The teammates ticked in the panel.
To receive an alert, a person must be an active user on your account: their email address must be verified and their account enabled. Someone who was invited but has not finished setting up their account, and someone whose access has been disabled, is never a recipient. The panel shows them greyed out with the reason. If the account owner's own address is not verified, no email goes to the owner, and the panel says so.
Removing someone from your account in the portal stops their alerts with no other step.
The weekly summary uses this same list, but nobody on it gets the weekly summary until it is turned on for them.
Outside addresses#
The same daily email can go to an address that is not a user on your account: a supplier, a contractor, a colleague without a login. It is set up in the same panel, Integrations > Destinations > Stock alerts, in the card Addresses outside your account, and it is included on your plan with nothing to buy.
- Only the account owner can add an outside address. Anyone on the account can see the list, type in a code, resend one, switch an address off or remove it.
- The address confirms a code before anything is sent to it. When the owner adds it, that mailbox receives a 6-digit code (just the code, no link). The person hands it to someone on your account, who types it into the panel. A code lasts 15 minutes and allows up to 5 wrong attempts; after that, or once it has expired, send a new one. Nothing goes to the address until the code is entered.
- Limits. Up to 5 outside addresses per account, and up to 5 new ones in a day. A temporary or disposable mailbox is refused. An address that belongs to a member of your account is refused too. Tick that person in the team list instead. Aliases and plus-tags are a known limit:
name+stock@example.comis treated as a different address fromname@example.com, so those two checks do not see through them. - Every alert to an outside address carries a footer saying which account added it and when, and its own unsubscribe link.
- Removing is not unsubscribing. Removing an address is not permanent: the account owner can add it again, and it will need to confirm a new code. Unsubscribing IS permanent for that address: it cannot be added again by anyone on the account, and there is no way back through support either. The only option is a different address. If we remove an address at its own request, that is permanent in the same way. When an outside address unsubscribes, it stops at once and the account owner is told (by the label you gave the address, never by the address itself).
- An outside address is tied to the person who added it. If the person who added an address later leaves the account, the address stops receiving; the row in the panel says so, and the account owner can remove it and add it again.
- An outside address later invited onto the account as a member receives two copies (one as the member, one as the outside address) until you remove one of them.
- Support can remove an outside address on your request, and that is the only change support makes to this list; the owner is told when it happens. Adds and confirmations are always yours.
- Outside addresses are stored encrypted and are erased when the account closes; our email delivery log keeps a masked form of the address and the subject line for its normal retention period, and our email provider keeps its own delivery record.
Stopping alerts#
One person, from the email. Every alert carries an unsubscribe link, and there are two ways to use it, both deliberate.
- Opening the link in a browser changes nothing. You get a confirmation page, and nothing happens until you press the button on it. That is on purpose, so a corporate link scanner that opens every URL in your mail cannot unsubscribe anyone.
- Using your mail client's own Unsubscribe control acts immediately: the control Gmail, Outlook or Apple Mail shows at the top of the message. There is no page and no button: mailbox providers send that as a POST by specification, and it is required to work without a round trip.
Either way it removes that one address, and nothing else: the rest of your team keeps receiving the email and your instance is not changed. When the unsubscribe actually changes something, the account owner is told; a repeat unsubscribe by someone already unsubscribed is accepted quietly and tells the owner nothing again. For an outside address the opt-out is permanent (see Outside addresses).
An opt-out made this way is kept. Nobody can simply re-tick that person in the panel to undo it (not the account owner, not anyone else on the account), so contact support if a teammate unsubscribed by mistake. For an outside address there is nothing support can undo: the only option is a different address.
Unsubscribe links expire after 180 days. Clicking one from an alert older than that reports the link as no longer valid, and nothing is changed; use the link in a recent alert instead, or ask someone on the account to untick you.
The whole instance. Anyone on the account switches stock alerts off in Integrations > Destinations > Stock alerts. Nobody receives the email after that.
These alerts are not governed by Settings > Notifications. Those five toggles are a separate, platform-level preference list. Stock alerts are turned on and off in the Integrations tab, and by the unsubscribe link.
The weekly summary#
The weekly summary is a Monday email about the week before. It is available today, included on your plan with nothing to buy, on the same instances as the daily alert. It is separate from the daily alert: either can be on without the other.
Turning it on#
Nobody gets the weekly summary automatically. It takes two steps:
- Make it available for the account. In Integrations > Destinations > Stock alerts, find the Weekly summary section and switch on Turn on the weekly summary for this account. As with the rest of the panel, anyone on the account can do this.
- Turn it on for each person. The section then lists everyone on the daily alert's list, each with a Weekly summary tick, and everyone starts with it off. Tick your own row to get it. The account owner can also tick teammates and verified outside addresses.
Someone who turned it off themselves (from the link in the email, or by unticking their own row) can only be turned back on by that same person. The account owner cannot override their choice. To get the weekly summary at all, a person must also be on the daily alert's list.
When it arrives#
Every Monday from 7am in your instance's timezone (the same one the daily alert uses), covering Monday to Sunday of the week before. It waits for Monday morning's daily check, so it usually arrives within an hour or two of 7am. If that check is running late, it still goes out by about midday and says what it could not include. It is never sent on another day.
Unlike the daily alert, it is sent even in a week when nothing went wrong, because stock value, purchase orders and activity are worth knowing on their own. If no daily check succeeded all week, nothing is sent, and the panel says "Last weekly summary not sent: no daily check succeeded that week."
What is in it#
- How many checks it is based on, for example "Based on 6 of 7 daily checks." A week can have fewer, such as the first week after your instance starts or a week with a missed check.
- Stock-outs: how many products ran out this week, how many came back, and how many are at zero now, with the new ones listed by product and location and the number of days each was at zero.
- Stock levels: how many products are below their minimum now, with the same coverage line as the daily email, and how many lots are expiring inside your expiry window.
- Stock value at the start and end of the week, at each product's price per unit in OpenBoxes. A point with no priced check reads "not measured", never zero.
- Purchase orders: how many are open, how many are overdue (only orders whose expected date comes from an inbound shipment), drafts not yet placed, and the value not yet received in each currency.
- Activity: totals by category for the week. Transfers between your own locations are not counted.
- Links to the Reports page in the portal and to your instance.
It is a summary of counts and totals, not the daily email's full lists.
Who sees values#
- The account owner and admins see stock and order values.
- Other teammates get the same summary without values, with the line "Values are shown to the account owner and admins.", unless the account owner has switched on showing values to all teammates on the Reports page. That switch applies to the weekly summary too. The role is read when each summary is sent.
- Outside addresses never see values: they get no stock value, no order values and no link into the portal or your instance. They do get the counts, the new stock-outs by product and location, and the activity totals by category. No supplier names or order numbers are in the summary for anyone.
Slack and Microsoft Teams#
A Slack or Teams destination gets the weekly summary only if Also post the weekly summary here is ticked on that destination (it is off by default), and only while the weekly summary is switched on for the account. The channel gets one short message: the counts, up to 5 new stock-outs by product and location, the week, and a link to the Reports page, which needs a portal login to open. A channel never gets stock values, supplier names, order numbers or activity quantities. PagerDuty never receives the weekly summary.
Stopping it#
- One person, from the email. Every weekly summary has its own unsubscribe link. It stops the weekly summary for that address and leaves the daily alert as it is. The page behind that link also offers Turn the weekly summary back on, which undoes only that unsubscribe. For an outside address, it then receives the summary only if the account owner still has it turned on for that address.
- One person, from the panel. Untick your own row.
- Unsubscribing from the daily alert ends the weekly summary too, for a teammate, the account owner or an outside address alike, because the weekly summary only goes to people still on the daily list. "Turn the weekly summary back on" cannot bring back a daily unsubscribe.
- The whole account. Anyone on the account switches the weekly summary off in the panel.
What is not available yet#
Email is the destination for below-minimum and nearing-expiry. PagerDuty, Slack and Microsoft Teams are available today for stock-outs only among the stock alerts (they can also carry temperature alerts, in beta): an incident opens in PagerDuty, or a message is posted to a Slack channel or a Teams channel, when a product with a minimum set runs out at a location, found by the same daily check, and below-minimum and nearing-expiry never go to any of them as alerts (a Slack or Teams channel ticked for the weekly summary gets only their counts, once a week). See PagerDuty alerts, Slack alerts and Microsoft Teams alerts.
Being built, not available yet, and with no published date: choosing which locations or muting individual products.
The weekly summary is available today.
Sending to an email address that is not a user on your account is available today. See Outside addresses.
Stock levels are also not available as a webhook event. Stock alerts are a notification channel of their own, not something you subscribe to through the webhooks API.
Related#
- Stock alerts overview: every stock alert on one page, and which ones go to email, Slack, Microsoft Teams and PagerDuty.
- Managing users: who is on your account, and who counts as active.
- PagerDuty alerts: an incident when a product runs out of stock; stock-outs only.
- Slack alerts: a message in a Slack channel when a product runs out of stock; stock-outs only.
- Integrations overview: what is available today and what is coming.

