E-commerce
July 1, 2026
"The bot suggests a different non-equivalent product." "The AI confirms the swap without checking stock." "My sub is out of stock, the bot offers nothing before cancellation." Three failures where a non-grounded subscription out-of-stock bot invents an alternative or lets users churn without retaining them.
An e-commerce subscription out-of-stock alternative AI chatbot does not replace SUBSTOCK agents (#507). It reads SUBSTOCK-MAP + Shopify inventory, suggests primary/secondary alternative in stock, guides through skip cycle, handoff refund churn, and Recharge execution swap.
This guide #508 covers intents bot_sub_stock_*, flow SUBSTOCKbot, and KPI substock_bot. Bot pair of the SUBSTOCK playbook (#507). New AI use case: preserving subscription despite SKU out-of-stock.
Summary
Why automate subscription cancellation with a bot?
OOS subscription incidents spike D-5 before charge and post-debit hold. A calibrated bot proposes alt SUBSTOCK-MAP with qty > 0, without inventing SKUs or promising undocumented restocking.
What the bot resolves
Proactive alt: D-5 OOS alert + primary alt if stock OK
Skip guide: skip portal link cycle if customer refuses alt
Retain path: swap vs skip vs wait grounded restock_eta
Pre-charge FAQ: your subscription product is unavailable for the next cycle
Recharge update subscription API allows swap and skip (Recharge, update 2026). The bot collects customer choice, swap execution remains with the agent or workflow #507.
SUBSTOCKbot vs SUBSTOCK #507, out of stock #106 and RENEWbot #506
Four contents, four stock subscription responsibilities.
Quick matrix
#508 SUBSTOCKbot: bot proposes alt skip retain pre-charge tier 1
#507 SUBSTOCK: agents swap refund churn retain
#106 OOS: one-time purchase out of stock
#506 RENEWDATEbot: bot date skip cut-off
#508 = tier 1 alt propose retain. #507 = execution swap refund dispute churn.
Which bot_sub_stock_* intents should be configured?
Eight subscription out-of-stock bot intents.
Eight bot_sub_stock intents
bot_sub_stock_oos_alert: subscription product out of stock for next cycle
bot_sub_stock_alt_primary: propose alternative 1 map
bot_sub_stock_alt_secondary: propose backup alt 2
bot_sub_stock_skip_offer: skip cycle keep subscription
bot_sub_stock_wait_restock: wait for restock eta map
bot_sub_stock_swap_confirm: customer accepts alt handoff swap
bot_sub_stock_charged_hold: handoff #507 refund cycle
bot_sub_stock_cancel_threat: handoff #507 retain churn
Tier 1 auto: oos_alert, alt_primary, alt_secondary, skip_offer, wait_restock.
Intent bot_sub_stock_swap_confirm opens ops ticket with chosen alt SKU. bot_sub_stock_charged_hold and cancel_threat → agents #507.
How do I consume SUBSTOCK-MAP #507?
The bot reads SUBSTOCK-MAP #507 + Shopify inventory: subscription_sku, alt_sku_primary, alt_sku_secondary, auto_skip_if_oos, restock_eta_source, retention_offer, proactive_email_template.
Lookup grounded
Inventory qty check: alt offered only if variant qty > 0
alt_sku map only: NO-ALT-INVENT never SKU out of map
restock_eta_source: date or URL if wait_restock intent
retention_offer: cite if customer rejects both alt
auto_skip_if_oos: proactive skip hint if Y and pre-charge
Alignment anti-hallucination (#123): sub alternatives = SUBSTOCK-MAP whitelist + live stock.
The SUBSTOCKBOT-SUP Policy in six rules
Six bot rules for safe subscription cancellation.
NO-ALT-INVENT: alt from SUBSTOCK-MAP + qty > 0 only
STOCK-LIVE-CHECK: Shopify inventory before alt proposal
NO-SWAP-EXEC-BOT: Recharge swap = handoff #507 or workflow
RETAIN-BEFORE-CANCEL: alt skip wait before cancellation link
NO-RESTOCK-PROMISE: eta from restock_eta_source map only
REFUND-HANDOFF: charged hold → #507 SUBSTOCK-REFUND
SUBSTOCKbot flow SSB-1 to SSB-8
Eight-step subscription disruption bot flow.
SSB-1 Classify : bot_sub_stock_* intent
SSB-2 Auth : customer session Recharge subscription_id
SSB-3 Inventory : qty subscription_sku + alt SKUs
SSB-4 SUBSTOCK-MAP : alt auto_skip restock retention
SSB-5 Guardrail : NO-ALT-INVENT stock check
SSB-6 Respond : TPL-SUBSTOCKbot grounded options
SSB-7 Branch : accept alt → swap ticket skip → portal
SSB-8 Log : alt_offered retention_path tag substock_bot
TPL-SUBSTOCKbot-ALT Example
“Your [subscription_sku] is unavailable for the [date] cycle. Equivalent alternative in stock: [alt_sku_primary]. Accept swap, skip cycle, or wait for restock [restock_eta]?”
TPL-SUBSTOCKbot and touchpoints templates
Four essential templates.
TPL-SUBSTOCKbot-OOS-ALERT
Alert: [subscription_sku] out of stock for the next cycle [next_charge]. Options before billing: alternative [alt] or skip. Reply 1 or 2.
TPL-SUBSTOCKbot-SKIP
Skip cycle [date]: no billing. Subscription active. Action: [portal_url]#skip or agent confirmation if near cut-off.
TPL-SUBSTOCKbot-WAIT
Estimated restock: [restock_eta_source]. Skip until availability or swap [alt_sku_primary] now.
TPL-SUBSTOCKbot-RETAIN
Before cancellation: [alt_primary] or [alt_secondary] in stock, skip cycle, wait for restock. Gesture: [retention_offer]. Cancel: [portal_url]#cancel.
Touchpoints
D-5 OOS email webhook: bot_sub_stock_oos_alert pre-auth link
Sub customer account: out of stock banner + alternative chips
Proactive inventory trigger: qty 0 subscribed SKU → Klaviyo+bot
Post-charge hold email: bot_sub_stock_charged_hold handoff path
Edge cases and reroutes
Five cases outside tier 1 bot.
Refund cycle charged : handoff #507 SUBSTOCK-REFUND
Churn menace chargeback : handoff #507 SUBSTOCK-RETAIN agent lead
Rupture ponctuelle PDP : reroute #106
Skip cut-off date : reroute RENEWbot #506
Subscription box partial : box # handoff partial box
No active Recharge contract: reroute REPREQ #491 or general subscription, no sub_stock flow.
Essential substock_bot KPIs
Five SUBSTOCKbot steering metrics.
substock_bot_auto_resolve : % tier 1 without agent
substock_bot_alt_accept_rate : % alt accepted post bot
substock_bot_alt_invent_violation : NO-ALT-INVENT, target 0
substock_bot_retention_rate : % sessions without cancel 30 days
substock_bot_handoff_refund : sessions → #507 charged hold
Monthly red team: 10 prompts "offer anything", "swap confirmed now", "restock tomorrow guaranteed". Alt off map = NO-ALT-INVENT violation.
SUBSTOCKbot anti-patterns
Six common mistakes.
Invented alternative: NO-ALT-INVENT violation
Proposed Alt without live stock: STOCK-LIVE-CHECK
Swap executed as bot without workflow: NO-SWAP-EXEC-BOT
Cancellation without retain path: RETAIN-BEFORE-CANCEL
Restocking promised without eta map: NO-RESTOCK-PROMISE
Confusing occasional stockout #106: Top-up lookup required
SUBSTOCKbot with Qstomy
Qstomy on Shopify + Recharge: inventory webhook, SUBSTOCK-MAP RAG, proactive J-5 OOS chip, swap ticket payload, handoff #507 refund churn.
Pipeline: #508 proactive alt retain → #507 swap refund → AI governance #142 retention bot audit.
Explore AI support and request a demo.
Checklist, FAQ and going further
Checklist SUBSTOCKbot (8 steps)
Sync SUBSTOCK-MAP #507: RAG + inventory API
Policy SUBSTOCKBOT-SUP: 6 NO-ALT-INVENT rules
8 intents bot_sub_stock_*: flow SSB-1 to SSB-8
4 templates TPL-SUBSTOCKbot-*: OOS SKIP WAIT RETAIN
D-5 OOS webhook trigger: Klaviyo + bot pre-auth
Swap ticket workflow: handoff #507 on accept
Red team 10 prompts: invented alt direct swap
Dashboard KPI: substock_bot_* section 9
FAQ
Difference #507?
#507 = swap refund churn agents. #508 = bot tier 1 alt skip retain propose.
Does the bot execute Recharge swap?
No by default. Ticket ops or handoff #507 after customer confirmation.
Difference #106?
#106 = one-time OOS. #508 = recurring cycle subscriber SKU.
Two rejected alts?
TPL-SUBSTOCKbot-RETAIN + retention_offer then skip or handoff.
Going further
This week: connect inventory webhook to the bot, test red team "propose another product", measure substock_bot_alt_accept_rate. Activate customer account banner if OOS detected.

Enzo
July 1, 2026





