AI voice agents for back-in-stock and price-drop alerts phone customers who asked for a call when a product returns or drops in price. The agent reads live stock and price as the call connects, then offers to hold the item or have the store send a checkout link. Each call invites a purchase, so written consent comes first.
Key Takeaways
- Call only shoppers who ticked a box agreeing to AI-voice calls.
- Read stock and price when the call connects, never from the trigger.
- Pause the campaign the moment the last unit is held or sold.
A restock call placed after the last unit sold tells a customer about something they cannot buy. This guide covers when an alert earns a call, the consent a signup needs, reading live stock in Dograh and running short of units. You can self-host Dograh or run it on Dograh Cloud.
When an alert deserves a phone call
Most restock and price-drop alerts need no call at all. The store's own email or text tool sends them, and no voice agent is involved. A call is for the alerts where a conversation changes what the customer does.
The gap is real. Notify Me's back-in-stock funnel report, which followed 11.2 million alert requests from more than 20,600 stores for 90 days each, found that 54% of the requested products came back in that window. Of the shoppers who got an alert, 11.8% bought the item within 90 days of asking. Most people who wait for a product never buy it within that window.
Price changes the picture. The same company's report on what moves back-in-stock conversion puts the purchase rate at 11.9% to 12.4% for items under $50, and 6.5% for items at $500 or more. In our view, an expensive item carries questions an email can't answer, such as whether the size runs small or whether the store can hold it until payday.
So a call earns its place in two cases. The customer asked to be told by phone, on the signup form. Or the alert comes with a decision, such as holding a limited item or a price drop on something costly. Everything else stays in the inbox.
An item the customer already ordered is a different call. That is a service call about their order, and AI voice agents for backorder and delivery-date updates covers it.
An alert that invites a purchase is a sales call
A restock call tells the customer the item they wanted is back so they can buy it, and that makes it a sales call under US rules. Price-drop calls are the same.
Under the Telephone Consumer Protection Act (TCPA), the FCC's calling rules treat a call that encourages a purchase as telemarketing. When that call uses an artificial voice and reaches a mobile or a home line, it needs the person's prior express written consent. The FCC's 2024 ruling on AI-generated voices confirmed that an AI voice counts as an artificial voice.
A past purchase does not fill that gap. An existing customer relationship matters only for the do-not-call rules, and it never replaces written consent for an AI-voice sales call. The customer asking to be told is what makes the call possible, provided the way they asked counts as written consent.
The Federal Trade Commission's Telemarketing Sales Rule points the same way on the opening. An outbound sales call says promptly who is calling, that it is a sales call, and what it is about. A restock alert does that naturally if the first line names the store and the alert the customer signed up for.
An alert is something the customer asked for. An offer the store picks on its own, such as an add-on after delivery, is an upsell call with its own list and script, and our post on upsell and cross-sell in e-commerce covers it.
Write the signup so it covers AI-voice calls
The "Notify me" form is the consent record, so its wording decides who can be called. An email field next to a product does not permit a phone call.
Add a separate box for calls. It names the store and the phone number, and says the customer agrees to calls made with an AI or automated voice about restocks and price drops on the items they pick. It also says agreeing is not a condition of buying anything, and it starts unticked. A shopper who wants email only leaves it empty.
Keep the consent record in your own system, with the wording version and the time it was given. The logic that starts each call checks that record first, so a subscriber without call consent gets the email and never the call. Our post on AI voice agents for abandoned-cart recovery uses the same checkbox logic at checkout.
Shoppers outside the US fall under their own country's rules, which can treat these calls more strictly. Confirm your form wording with counsel before the first call goes out.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Start calls from the stock or price event
The call starts when your inventory or pricing system sees the change, one call per subscriber who chose calls. Your system already knows when a size comes back or a price falls below the level a customer set, so it should start the call itself, with no one watching a dashboard.
In Dograh, the API Trigger starts one outbound call per request. Your system sends the subscriber's number in phone_number and what the agent should know in initial_context, such as the first name and the product variant the customer picked:
{
"phone_number": "+1415555XXXX",
"initial_context": {
"first_name": "Maya",
"product_name": "Trail Runner 2",
"variant": "size 8, grey",
"alert_type": "back_in_stock",
"subscriber_id": "sub_48213"
}
}
What this does: It starts one call to Maya about the grey Trail Runner 2 in size 8. The
subscriber_idlets the agent's tools find her alert record later in the call, and the price is left out on purpose, because it is read fresh when she answers.
Your system decides the order. If you promised first come, first served, send the triggers in signup order and stop when you run out of stock.
For a long waitlist you can also upload the subscribers as a campaign. Each column after the phone number reaches the agent as a variable. Calling hours apply in one time zone per campaign, so a store with subscribers coast to coast gives each zone its own campaign.
Read stock and price as the call connects
The agent reads stock and price from your store at the moment the call connects, never from the trigger. Between the moment your system starts the call and the moment the customer answers, the last unit can sell or a sale price can end.
Pre-Call Data Fetch handles this. Open the Start Call node, set it to Outbound calls only and enter your Endpoint URL. Once the customer answers, Dograh sends a request to that endpoint and waits for the reply before the greeting plays, so keep the endpoint fast. The reply's values become variables, such as {{in_stock}} and {{current_price}}, that the greeting and the prompt can use.
When the item has sold out again, your endpoint can return a greeting_override with a different opening, such as an apology and a promise to keep the customer on the list. The agent then never pitches an item that is gone. Do the same when a price drop has ended.
Give every variable in the Greeting Text a fallback, such as {{first_name | there}}. Without one, a missing value is spoken as empty text and the opening sounds broken.
What the agent says on the call
The call is short. It names the store and the alert, confirms the person, gives the live facts and asks one question.
Put the opening in the Greeting Text, the fixed line Dograh speaks word for word as the call connects, for example "Hi, this is Northwind Outfitters with the stock alert you asked us to call you about. Am I speaking with Maya?" The name comes from {{first_name | the account holder}}, so a missing name still reads as a sentence. Allow Greeting Interruption is on by default, which lets the customer cut in after two words, so switch it off on the Start Call node and the store's name and the reason for the call always play in full. When a shopper should hear that an automated assistant is calling, because you choose to say so or local law requires it, add that to the Greeting Text as well.
Asking for the person by name only finds the right person. The call shares nothing from an account, so once the person confirms, the agent names the item and the live price. If the person who answers is someone else, the prompt tells the agent to say the store will email instead and end the call.
Then the agent asks one question, whether to hold the item or have the store send a checkout link. An HTTP API tool asks your store's system to reserve the item for the time you allow, or to send its own checkout link by text or email through your messaging provider. The shopper hears a short typed or recorded message while the request runs. The agent never takes card details, and customers answer by voice.
Questions the agent can't answer from your data go to a person through Transfer Call, which works on Twilio, Telnyx, Plivo, Cloudonix and Asterisk ARI. Your team's line is dialled first, and the shopper joins only once someone answers. The person who picks up gets no summary by default, which is why the agent saves the details to your system first.
If the customer says to stop calling, the agent accepts that by voice and writes it to your system during the call, and your system removes the number from the next list. Voicemail handling is off by default. If you set it to Leave a message, keep the price out of the message, since it may change before the customer listens.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
More subscribers than units
A restock of 50 units can have thousands of people waiting, and the calls have to stop when the stock does. Plan for that before the first restock call.
Self-hosted Dograh runs 10 concurrent calls by default, and you can raise the limit with DEFAULT_ORG_CONCURRENCY_LIMIT. Your servers and phone provider set the practical ceiling. Dograh Cloud Pay as you go includes 10 concurrent calls, and you can ask for more. Calls beyond the limit wait their turn.
Count each hold against stock in your own system, and pause the campaign when the count reaches zero. Calls already in progress finish normally, and the Pre-Call Data Fetch check catches any customer who answers after the last unit went. A customer who hears "it sold out again" twice will stop trusting the alert, so pause early rather than late.

The same logic applies to price drops with a deadline. When the sale ends, the remaining calls should not go out.
Listing alerts in real estate
Property alerts follow the same pattern with different data. A buyer saves a search, a matching home comes on the market or drops in price, and the buyer asked to be called about it.
The consent logic is the same, because a listing alert encourages a purchase. What changes is the record the agent reads, such as the listing's price and open-house time, fetched when the call connects so a home that went under contract is never pitched. The agent books a showing from live slots, and price talk such as "will they take less?" goes to the buyer's agent.
AI voice agents for listing-alert callbacks walks through that call.
Where shopper data sits
Alert calls carry names and buying interests, so decide where the audio and transcripts live before the first call. Dograh is self-hostable. On your own servers, shoppers' call data stays with you and never reaches Dograh.
In this setup Dograh runs the call flow, the tools and the telephony, and the speech and language models form a separate layer you choose. With your own keys, the models run under your contract with the provider, though shopper audio still reaches that provider. Anonymous usage telemetry is on by default in a self-hosted install. To switch it off, set ENABLE_TELEMETRY=false and remove POSTHOG_API_KEY.
A self-hosted store pays no per-minute platform fee to Dograh, though servers, model keys and phone minutes still cost money, and on Dograh Cloud there is a 1¢-a-minute platform fee. Our guide to AI voice agents for e-commerce and retail covers the other calls a store can hand over.
Where to start
Start with one product line where customers already ask to be called, such as limited drops or expensive items, and add the call box to that signup form only. Run the first restock with a small list and read every transcript.
Before a single subscriber gets a call, test the agent on a real phone number. Most phone calls reach the agent as 8 kHz audio, while a browser test runs at 16 kHz, so product names and prices can sound different to the speech model. Then sell out the item halfway through a test campaign and check that every later call opens with the apology. Each alert type above has its own deep dive:
Glossary
- Prior express written consent
- A signed agreement, electronic signatures included, that names a phone number and allows sales calls with an artificial or AI voice to it. For alert calls, it is the separate call box on the signup form.
- Telemarketing call
- Under the FCC's calling rules, a call that encourages someone to buy or rent goods or services. A restock or price-drop alert falls in it, even when the customer asked for the alert.
- Greeting override
- A per-call replacement for the agent's saved opening line. Your Pre-Call Data Fetch endpoint can return one, so a sold-out item gets an apology instead of a pitch.
- Concurrency limit
- The number of calls an agent platform runs at the same time. Self-hosted Dograh runs 10 by default, so a big waitlist is called in turns, in the order your system sends the calls.

