AI Replenishment Agent: Predict When Customers Will Buy Again (2026)
Quick summary: Predict the next buy from interval and behavior — do not spam, do not touch subscription billing. Reuse Gateway ~180 ms to ~95 ms and ~$791/mo at 50K; Baymard cart abandonment is 70.22%.
Key Takeaways
- Reuse Gateway ~180 ms to ~95 ms and ~$791/mo at 50K; Baymard cart abandonment is 70
- 22%
- on a 30-day timer
- Baymard 70
- 22% cart abandonment is people who never paid

Table of Contents
Beauty, supplements, food, pet, household: the shopper will need more — unless it was a gift, a return, or an active subscription you are about to double-sell. Stores still blast “running low?” on a 30-day timer. That is how you email someone whose box arrived yesterday, or bill them twice.
Baymard 70.22% cart abandonment is people who never paid. Replenishment is people who did. Gorgias WISMO ~18% (via Redo) is “where is this order,” not “when is the next one.” Do not mix the templates.
This is post 21 in the 15-automations map. It is not an anonymized client engagement. No refill-conversion KPI here.
On 17 June 2026, AgentCore Harness reached GA (What’s New). After 30 July 2026, Agents Classic is in maintenance for new customers. Net-new replenishment agents should not start on Classic.
First-party signals we reuse (not eCommerce client outcomes) — Gateway server-side tools cut median tool round-trip ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Platform TCO silhouette: support-style AgentCore at 50K sessions/mo ~$791/mo platform + model (decision guide). Per-SKU scoring at catalog scale is invoke volume; model it on the AgentCore pricing calculator.
Reproduce this — Priors, engage/suppress, goldens:
replenishment-engagement-rules.md. Journey handoff:post-purchase-journey-playbook.md. Ship gates:monday-checklist.md.
Opinionated take: predict, then maybe talk once. Subscription billing stays deterministic in the subscription engine. Trade-off: the agent will not “just subscribe them.” You also do not get surprise charges from a helpful model.
When they will buy again — and whether to talk
Today: a 30-day ESP flow, or Recharge/Skio handling subs, or nothing. The failure mode is spam or double-sell.
The agent opportunity: getPurchaseInterval + getSubscriptionState + inventory + suppression → engage yes/no + how.
flowchart TD
IntervalHistory --> ReplenishAgent
SubscriptionState --> ReplenishAgent
InventoryBehavior --> ReplenishAgent
ReplenishAgent --> EngageDecision
EngageDecision --> DraftOrSilence
DraftOrSilence --> HumanOrESPIntervals, quantity, behavior, seasonality, subscription state → agent → engage or silence → human / ESP. The model does not charge the card.
| Category | Interval shape (prior only) | Engage trap |
|---|---|---|
| Beauty / skin | 30–90d by size | Gift sets |
| Supplements | Bottle count × serving | January blasts in August |
| Food / CPG | SKU-specific | Oversell short shelf-life |
| Pet | Bag size / 14–45d | Medical claims |
| Household | 30–90d | Bundles vs component SKUs |
Priors are not a send. Replace them with your last-three paid intervals. One lifetime order → refuse a prediction.
Post-purchase hands off this stage. It must not invent cadence in the education drip. Retention is churn bands, not refill copy. Warehouse PO timing is inventory reorder — different Identity, different writes.
Deterministic vs AI vs humans
Deterministic (keep out of the prompt): charge, tax, dunning, skip/delay in the subscription portal, opt-out, “active sub on this SKU → do not remind.”
AI: messy history (they bought 18 then 45 then 22 days), gift vs self-use, seasonality vs true lapse, whether a bundle explodes into component intervals.
Humans: send approval, substitute-on-OOS, any new createSubscription. HITL can be a Next.js queue — not the agent host.
If Recharge already emails 3 days before renewal and that is the product, do not add a second reminder from Harness. Hybrid: billing engine owns money; agent owns non-sub next-buy guesses.
How to engage when engage: yes: one previewed template, one SKU, one window. Not a sequence of five “still thinking about it” pings. OOS → recommend delay or substitute to a human, not a promise date. Returns on that SKU → support or retention, not refill copy.
There is no native Shopify AgentCore connector. Shopify subscriptions, a custom order store, and WMS inventory are OpenAPI targets on Gateway.
Production: no payment tools
Bedrock = model. Harness for a single-domain predictor. Runtime + Strands only for hop caps with inventory/retention specialists. Strands does not give you Policy.
| Piece | Role |
|---|---|
| Gateway | getPurchaseInterval, getSubscriptionState, getInventoryRisk, getEngagementSuppression, previewReplenishSend |
| Cedar | Default-deny chargeNow, createSubscription, enqueueSend until reviewed |
| Identity | System job; shopper JWT must not bill |
| Browser | Off |
Automate first: suppress on active subscription + gift flag + opt-out. Then draft one reminder for in-stock, two-interval buyers. Not a new subscribe button.
Eval suite: two 28-day buys → draft, not charge; active sub → silence; gift ship-to → silence; chargeNow attempted → DENY; OOS → no “buy now”; duplicate inside 7 days → suppress.
Sample output (fixture — not client data):
customer_ref: hashed:aa12 sku: VIT-D3-90
predicted_window: 2026-09-12 .. 2026-09-18 (getPurchaseInterval, n=3)
subscription: none inventory: in stock gift: false opt_out: false
engage: yes how: draft_reminder approval_required: true
customer_ref: hashed:bb09 sku: FOOD-CAT-4KG
predicted_window: (tool returned active_sub)
engage: no suppress_reason: active_sub
how: none — billing engine already owns the chargeContext: Harness GA 17 June 2026, Gateway reads, Cedar on any send. Category priors in the artifact are starting points. Swap them for SKU-level medians before you score production traffic.
What broke — Sample harness treated every 30-day prior as a send. Fixture customer had an active subscription on the same SKU; the agent still drafted “time to refill” and a prototype
enqueueSendfired because Policy wasLOG_ONLYwith no sub check. Shopper was charged on the usual date and clicked the reminder. Detection: Gateway showedgetSubscriptionStateunused; ESP + billing both moved the same day; eval 2 was not in the suite yet. Recovery: requiregetSubscriptionState;engage: nowhen active; strip send untilENFORCE; replay as must-fail. Lesson: replenishment without a sub gate is a second storefront.
A second counter-case: refill copy on a returned supplement. That is support or retention, not a nag.
What to Do This Week
- List consumable SKUs that actually repeat. If the list is fashion-only, stop.
- Expose
getPurchaseIntervalandgetSubscriptionState. No billing writes. - Copy
replenishment-engagement-rules.md. Fill your intervals. - Harness on Gateway; Policy default-deny charge/subscribe/send; Browser off.
- Ten goldens + three must-fail (spam, gift, active sub).
- HITL for any send. Named owner for evals + cost alarm.
- Price SKU×customer scoring on the AgentCore pricing calculator.
monday-checklist.md.
Need Cedar on send without touching billing? Contact us. Related: Amazon Bedrock, Generative AI on AWS, AWS for retail / eCommerce.
What This Post Doesn’t Cover
- Journey stages before refill — post-purchase coordinator.
- DC / vendor reorder POs — inventory reorder.
- Churn winback lists — retention.
- Measured refill rate or subscription-attach from a FactualMinds engagement.
- AgentCore Payments / x402; PAN in Memory.
- A native Shopify / Recharge AgentCore connector.
FAQ
When should we NOT deploy an AI replenishment agent?
Skip it when the catalog is mostly one-time fashion or durables with no repeat SKU, when you have fewer than two prior paid intervals for the SKU, or when the real ask is “auto-subscribe everyone.” A dated ESP “buy again” flow is enough if you already suppress active subscriptions. Also skip Agents Classic after 30 July 2026.
What could go wrong if we spam “time to refill”?
You train unsubscribes and look blind to the order they placed yesterday. One reminder in the predicted window. Dedup 7 days. Honor opt-out. Gift ship-to is not a user. Daily nag is not a cadence.
What could go wrong if the agent touches subscription billing?
Double charges, tax mistakes, and dunning loops. Charge, retry, and skip stay in the subscription engine. The agent may recommend a reminder or a skip — it must not call chargeNow. Prompt text is not PCI or a billing SOP.
How is this different from inventory reorder and post-purchase?
This agent predicts the shopper next buy. Inventory reorder is the warehouse / PO side (post 22). Post-purchase coordinates the journey after one order and must hand replenishment here, not guess intervals in the education drip.
Beauty vs supplements vs pet — same agent?
Same harness, different priors and evals. Replace the sample interval table with your SKU data. Vet and ingestible copy must not invent medical claims. Short shelf-life food must not oversell. Gift flags matter more in beauty than in cat litter.
Harness or Runtime? Shopify connector?
Harness is enough for interval reads plus a draft reminder. Runtime plus Strands if inventory and retention specialists share a turn with hop caps. There is no native Shopify AgentCore connector — wrap orders, subscriptions, and inventory on Gateway. Browser off. No payment tools.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




