Article
Stock-out alerts in Microsoft Teams with a Workflows webhook

If you have tried to send inventory alerts to Microsoft Teams by following an older guide, you were probably told to add an Incoming Webhook connector to a channel. That no longer works. This article explains why, what to create in Teams instead, and how to connect it to OpenBoxes Lift so that a channel hears about it when a product runs out of stock. The full reference is in Microsoft Teams alerts.
Why the old connector URL no longer works#
Microsoft retired the Office 365 connector webhooks, the ones whose URLs sit on webhook.office.com, in May 2026. Many how-to articles and older Microsoft pages still describe them, so it is easy to end up with a URL of that shape, whether you created it recently or copied it from an old setup.
When you paste one into Lift, it is refused when you save it, with a message that says so and points you at Workflows. Other hosts are refused too. The URL has to be one that Teams itself created for a workflow, over HTTPS on the standard port. A URL you have routed through a service of your own will not be accepted.
What to create instead: a Workflows webhook#
The replacement is a Workflows webhook, created inside Teams:
- Open the channel that should receive the alerts.
- Choose Workflows.
- Add the template "Post to a channel when a webhook request is received", pointing it at that channel.
Teams then shows you a webhook URL. Treat that URL like a password: anyone who holds it can post to that channel.
The channel is chosen here, in Teams, not in Lift. If you later want the alerts in a different channel, create another workflow in that channel and use its URL. If you are replacing an old connector, create the workflow in the same channel the connector used to post to.
Connecting it to Lift#
In the portal sidebar, go to Integrations, then the Destinations tab, then Microsoft Teams. Add a destination, give it a name you will recognise (such as "Warehouse channel"), paste the webhook URL and save.
The URL is stored encrypted and never shown again; afterwards the panel shows only the host. To change it, open the destination with Edit and paste a new one. You can add up to 5 Teams destinations to an instance, and anyone on your account can manage them.
Then send a test from the destination's edit dialog or its card. It posts one short card marked [TEST] saying the connection works. A Teams channel does not page anyone, so there is nothing to silence first. Tests are limited to one per destination every 5 minutes.
What the channel will receive#
It is deliberately narrow, so it is worth knowing before you tell your team to watch the channel:
- Stock-outs only. A card is posted when a product that has a minimum level set at a location drops to zero quantity on hand at that location.
- Once a day, not in real time. Lift takes one picture of your stock each day, in your instance's timezone, and posts cards from that picture. A product that runs out at noon is posted when the next daily check sees it.
- One card per product and location, then one Stock returned card when a later daily check sees stock again.
- At most 50 new stock-outs per destination per day, then one extra card with the true total.
Products that are below their minimum but not at zero, and lots that are close to expiring, never go to Teams. Those stay in the daily stock alert email.
Teams alerts are included on the plan you are already on, with no add-on to buy, on Shared and Dedicated instances alike.
Make sure there is something to check#
The most common reason a channel stays quiet is not the webhook. It is that the products you care about have no minimum level at the location in question, and a product with no minimum there is never checked, however low it gets.
So set minimum levels in OpenBoxes for the products that matter at each location. The Inventory guide describes the thresholds OpenBoxes keeps per product and location. To see your coverage, the Stock alerts panel under Integrations shows how many of your products have a minimum level set, and the Reports page in the portal shows the same kind of line.
Changing the URL, and when cards stop#
- Replacing the URL posts no confirmation message. Within about an hour, the new webhook gets a card for each product that is still out of stock.
- If Teams refuses cards three times in a row, for example because the workflow was deleted or the channel was removed, Lift switches the destination off and the panel says so. Check the workflow, then save the URL again to switch it back on.
- Cards stop silently when a product is no longer tracked (its minimum was removed, or the product or location is gone), when the destination is removed, when the URL is changed, when the instance is suspended or closed, or when there has been no usable daily check for three days.
The details of each case are in Microsoft Teams alerts.
The optional weekly summary#
A Teams destination can also receive the weekly summary, if you tick "Also post the weekly summary here" on it (off by default) and the weekly summary is switched on for your account under Stock alerts. It is one short card each Monday with the week's counts, up to 5 new stock-outs by product and location, and a link to the Reports page. It never carries stock values, supplier names, order numbers or activity quantities.
Summary#
- Office 365 connector webhooks on
webhook.office.comwere retired by Microsoft and are refused. - Create a Workflows webhook with the template "Post to a channel when a webhook request is received", and add it under Integrations, Destinations, Microsoft Teams.
- Expect stock-outs only, from a once-a-day check; below-minimum and expiring stock stay in the email.
- Set minimum levels, or there is nothing to alert on.
Using Slack instead? See Stock-out alerts in Slack.
Keep reading
- GuideMicrosoft Teams Alerts
- GuideStock Alerts
- On the siteIntegrations in OpenBoxes Lift
- What's newWhat shipped in October 2026