E-commerce

AI Chatbot for lead time: inform based on stock, warehouse, and volume

AI Chatbot for lead time: inform based on stock, warehouse, and volume

July 1, 2026

"I paid 36 hours ago, why is it still 'processing'?" "You advertise 24h shipping, my status hasn't changed." "It's a gift for Saturday, will it ship before Friday?" Three messages where the customer expects an immediate answer regarding warehouse preparation, not carrier transit.

An AI order preparation lead time chatbot does not replace the PREP-TIME policy or PREP-FLOW agents. It reads Shopify's fulfillment_status, calculates ship_date based on warehouse SLA, cut-off, and peak volume, explains unfulfilled vs. shipped, and escalates in case of a prep_sla_miss.

This guide #396 covers bot_prep_* intents, the PREP-BOT flow, AI guardrails, and prep_bot KPIs. It differs from the PREP-TIME agents (#395) (policy, macros, disputes) and the WISMO bot (#184) (transit tracking): here, the focus is on the AI use case between paid order and carrier handoff, grounded in stock, warehouse, and volume.

Summary

Why deploy an AI chatbot for preparation time?

Preparation time inquiries via chat arrive from Day 0 to Day 3, often confused with transit WISMO. Without a calibrated bot, four common failures occur.

Four malfunctions without a prep bot

  • Delivery promise: bot quotes carrier ETA even though the package is not shipped

  • Invented SLA: LLM says "shipped tomorrow" without looking up the order

  • Preorder/MTO confusion: preorder tag treated as standard inventory

  • Incomplete ticket: agent follows up without order_id or fulfillment_status

ShipBob estimates that pick-pack-label takes 0.5 to 2 business days depending on warehouse and volume (ShipBob, fulfillment 2026). Shopify distinguishes fulfillment (shipping) and delivery (receipt) (Shopify, fulfill orders 2026).

Angle #396 vs related content

DTC Example

Beauty brand, prep SLA 1-2 business days, 89 prep tickets/month including 58% after business hours. After PREP-BOT: prep_bot_resolution 79%, wismo_misroute -47%, prep_false_ship_promise 0, prep_bot_csat 4.3/5.

Responsible AI Principle

The bot reads order, calculates ship_date grounded in SLA, and distinguishes prep vs transit. It does not promise delivery dates or create fulfillments.

How does PREP-BOT differ from PREP-FLOW #395 and WISMO #184?

The prep bot and the agent process PREP-FLOW complement each other in a pipeline, like CUR-BOT (#394) and CUR-DISP (#393).

#396 bot: upstream (minutes 0-5)

  • Detect intent bot_prep_* vs wismo_transit #184

  • Lookup order: fulfillment_status, created_at, tags

  • Classify: prep_sla_ok | prep_sla_miss | preorder | MTO | peak

  • Calculate ship_date based on warehouse SLA + cut-off + volume

  • Explain prep templates grounded in order data

  • Handoff pre-filled ticket PR-5+ if prep_sla_miss or cancellation

#395 agents: execution (disputes, exceptions)

  • PR-5 to PR-8: prep_sla_miss action, hold address, fraud review

  • PREP-* Macros: ops-approved answers

  • Pre-ship cancellation: refund if unfulfilled

  • Warehouse escalation: supervisor + warehouse

#184 WISMO: post-fulfillment

Bot #184 reads carrier tracking, delivery ETA. If unfulfilled, reroutes bot_prep_* to PREP-BOT. If fulfilled, remains wismo_transit. No mixed prep + transit double response.

Structured Handoff

Ticket: order_id, created_at, fulfillment_status, prep_sla_promise, ship_date_calc, bot_prep_type, peak_flag, order tags, 6-message transcript, cancel_request Y/N. Agent takes over PR-5 without asking for the order again.

What the bot does not do

No fulfillment API, no carrier delivery date promise, no address modification, no auto refund cancellation. PREP-TIME rule 7 #395.

Which bot_prep_* intents should the chatbot detect?

Twelve preparation delay bot intents cover unfulfilled post-order.

Twelve bot_prep intents

  1. bot_prep_wismo_early: Day+0/Day+1 "not shipped" within normal SLA

  2. bot_prep_sla_exceeded: preparation promise exceeded, handoff PR-5

  3. bot_prep_cutoff_miss: order after cut-off, ship next day

  4. bot_prep_weekend_gap: order Fri-Sat, waiting for Monday

  5. bot_prep_peak_backlog: Black Friday, announced extended delay

  6. bot_prep_personalization: engraving, message, +N days prep

  7. bot_prep_mixed_cart_hold: waiting for missing SKU, ship complete

  8. bot_prep_address_hold: address to verify, prep blocked

  9. bot_prep_fraud_review: order under risk review

  10. bot_prep_preorder_confusion: preorder tag, reroute #187

  11. bot_prep_mto_confusion: made-to-order tag, reroute #288

  12. bot_prep_cancel_before_ship: cancel before fulfillment

Trigger signals

  • not shipped, in preparation, unfulfilled, processing, no tracking yet

  • order lookup: fulfillment_status unfulfilled or partial pending

  • gift deadline: "for Saturday", "before Friday"

Conversation tags

prep_bot_detected, prep_bot_sla_ok, prep_bot_sla_miss, prep_bot_handoff, prep_bot_reroute_preorder, prep_bot_reroute_mto, prep_bot_reroute_wismo, prep_bot_cancel_flag.

Intent priority

bot_prep_cancel_before_ship + order > bot_prep_sla_exceeded > bot_prep_wismo_early. Chargeback threat prep miss: live agent alert if working days.

Wismo #184 distinction

If fulfillment_status fulfilled > prep_bot_reroute_wismo to tracking #184. No prep response for packages already shipped.

Which PREP-BOT conversational flow should be configured?

The PREP-BOT flow guides the preparation explanation in 8 steps PB-1 to PB-8.

bot_prep_wismo_early sequence

  1. PB-1 Greeting: "AI Assistant. I am checking the preparation status of your order."

  2. PB-2 Collect order_id: or email + OTP if logged-out

  3. PB-3 Lookup order: fulfillment_status, created_at, line_items tags

  4. PB-4 Classify: prep_sla_ok | miss | preorder | MTO | peak | hold

  5. PB-5 Calculate ship_date: warehouse SLA + cut-off + business days + peak offset

  6. PB-6 Explain: PREP template grounded on PB-5, prep vs transit distinct

  7. PB-7 Handoff if needed: sla_exceeded, cancel, address_hold, fraud

  8. PB-8 Close: "Email notification as soon as shipped." order status link

bot_prep_peak_backlog branch

Read shop peak_banner metafield: "High volume period: shipping in 3-5 business days." ship_date_calc includes peak_offset. No standard 24-hour prep promise.

bot_prep_personalization branch

Detect line_item engraving/message properties: +N days prep. "Your personalization adds 2 business days before shipping."

bot_prep_preorder_confusion branch

Preorder tag on order or SKU → reroute to preorder #187. No standard stock ship_date.

Flow prohibitions

Never "delivered tomorrow" if unfulfilled. Never invented carrier tracking. Never "we are shipping now" without a fulfillment event.

What can and cannot the bot do during preparation?

The allowed vs forbidden bot prep matrix protects the brand and customer expectations.

Allowed bot actions

  • Lookup fulfillment_status and created_at order

  • Calculate ship_date according to SLA PREP-TIME #395 grounded

  • Explain warehouse cut-off and weekend gap

  • Communicate peak backlog if banner is active

  • Distinguish prep (before label) vs transit (after ship)

  • Reroute preorder #187, MTO #288, WISMO #184 if fulfilled

  • Create pre-filled PR-5+ handoff ticket

  • Initiate pre-ship cancellation request (agent handoff, not auto refund)

Forbidden bot actions

  • Fulfillment API create shipment

  • Promise carrier delivery date without tracking

  • Invent tracking number or carrier status

  • Modify order shipping address

  • Refund cancellation without PR-8 agent

  • Confirm 24-hour prep if warehouse SLA is 48 hours

  • Ignore preorder/MTO tag for stock ship_date

Gray area: partially fulfilled

Split shipment: explain package 1 shipped, package 2 in prep. Reroute to split bot #357 if complex multi-fulfillment.

System prompt

"Source of truth = Shopify order fulfillment_status + SLA PREP-TIME. Never promise delivery if unfulfilled. Escalate bot_prep_sla_exceeded." Quarterly review with #395 policy owner.

How do I connect Shopify inventory, warehouse, and volume to the bot?

The Shopify preparation bot integration provides grounded data without SLA hallucination.

Read-only order fields

  • fulfillment_status: unfulfilled, partial, fulfilled

  • created_at: order timestamp vs cut-off

  • line_items tags: preorder, made-to-order, personalization

  • line_items properties: engraving, gift message

  • fulfillments: count, dates, tracking if partial

  • order tags: fraud_hold, address_hold, peak_delay

Shopify Admin API order and fulfillment events (Shopify Dev, Order API).

Warehouse SLA sources

  • Metafield shop prep_sla_days: 1-2 standard days

  • Metafield shop prep_cutoff_hour: e.g., 2:00 PM Paris time

  • Metafield shop peak_banner_active: offset +2 days

  • Metafield product prep_sla_override: personalization +N days

  • Inventory location: assigned warehouse, available stock

Multi-warehouse

If SKUs are split across locations, ship_date = max prep per warehouse. Align with multi-warehouse bot #325 for inventory, #396 for prep delay per location.

Identity verification PB-2

Logged-in: order list match email. Guest: order_id + email zip match. Do not expose third-party orders.

Ship_date calculation PB-5

Deterministic algorithm: created_at + prep_sla_days + weekend skip + peak_offset + personalization_days. LLM reformulates PB-6, it does not calculate on its own.

How do you route to an agent without promising delivery?

The prep agent bot handoff transmits context without logistics over-promising.

Handoff criteria PB-7

  • prep_sla_exceeded > 2 days beyond promise

  • Pre-shipment cancellation request bot_prep_cancel_before_ship

  • Blocking address_hold or fraud_review

  • 3+ post PB-6 insistence messages

  • Order > 300 units presentment or Saturday deadline gift + miss

Minimum ticket information

order_id, created_at, fulfillment_status, prep_sla_promise, ship_date_calc, bot_prep_type, peak_flag, personalization_flag, transcript, cancel_request, deadline_gift_date.

Waiting message PB-7

"Your file PREP-[ID] has been forwarded. An agent will check with the warehouse within 4 business hours. We cannot speed up preparation from the chat without operations confirmation."

SLA bot vs agent

  • Bot PB-1 to PB-6: < 3 min, < 8 messages

  • Agent PR-5+: 4 h first response prep_sla_miss

Cancel flag

prep_bot_cancel_flag → cancellation ticket PR-8. Bot does not refund. Agent confirms unfulfilled then refund policy.

Post-handoff bot silence

No "have you been shipped?" follow-ups before the agent replies. Status lookup fulfillment OK if customer returns.

What are the triggers and widget placement for PREP-BOT?

The preparation bot deployment targets unfulfilled order status and early WISMO messages.

Five PREP-BOT triggers

  1. T1 Incoming message: not shipped, in preparation, processing

  2. T2 Order status page unfulfilled: "Question about preparation?"

  3. T3 Confirmation email D+1: reply "still not shipped" deep-link PB-2

  4. T4 Peak banner site: "Current preparation time?" from /pages/shipping

  5. T5 WISMO #184 reroute: wismo_not_shipped → PREP-BOT if unfulfilled

Priority pages

  • Order status /account orders unfulfilled

  • /pages/shipping linked from confirmation email

  • Global widget with intent router prep vs wismo

Proactivity limit

T2 max 1×/session order status. No aggressive "where is my package" popup if unfulfilled D+0.

24/7 value

58% of preparation tickets are out of hours, example #396. Immediate PB-6 bot reduces night/weekend wismo_misroute.

WISMO #184 Router

Upstream intent classifier: fulfillment_status check before tracking branch. Avoids carrier ETA on orders not shipped.

A/B test

T2 order status widget vs passive. Measure prep_bot_resolution and wismo_misroute for 60 days.

Which prep_bot KPIs should be measured?

Bot prep KPIs link automation, overall FCR, and misrouted tickets.

Eight key metrics

  • prep_bot_resolution_rate: resolved without handoff / prep bot sessions

  • prep_bot_intake_complete: order_id lookup OK / sessions

  • prep_false_ship_promise: unfulfilled delivery promise incidents (target 0)

  • prep_bot_handoff_rate: agent escalations / sessions

  • wismo_misroute_rate: prep treated as transit / WISMO tickets

  • prep_bot_reroute_accuracy: preorder/MTO/wismo reroute correct

  • prep_fcr_delta: FCR #395 increase with bot

  • prep_bot_csat: post PB-6 satisfaction

DTC Benchmark

prep_bot_resolution 75-82%, false_ship_promise 0, intake_complete 90-95%, handoff_rate 18-25%, wismo_misroute -40-55% at 90 d.

Weekly support + ops dashboard

Top bot_prep_* intents, handoff reasons, prep_sla_miss warehouse correlation, active bot hours vs prep tickets.

20 transcripts audit/month

Score: ship_date mentioned? prep vs transit distinct? no invented tracking? preorder reroute OK? no unfulfilled delivery promise?

Incident alert

prep_false_ship_promise > 0: pause free LLM PB-6, review prompt 24 h.

Peak correlation

Black Friday: prep_bot_resolution can drop 10 pts. Adjust peak_offset metafield and PB-6 templates proactively.

Which edge cases and anti-patterns should be avoided?

Ten edge cases bot prep and playbook responses.

1. Bot promises next-day delivery unfulfilled

Critical incident. Hard block ETA carrier if not fulfilled. Immediate audit.

2. WISMO #184 replies tracking on unfulfilled

Router upstream fulfillment check. prep_bot_reroute_wismo inverse if fulfilled late.

3. Preorder tag ignored

ship_date stock applied to preorder. Reroute #187 mandatory.

4. MTO confused with warehouse prep

Manufacturing 5-10 days before pick. Reroute #288, not standard PREP-TIME.

5. Partial fulfilled, customer panicking about package 2

Manifest package 1 shipped, package 2 prep. Handoff split #357 if complex.

6. Peak banner forgotten

Bot quotes 24-hour SLA during BF. Read peak_banner_active mandatory PB-5.

7. Cut-off time zone customer ≠ warehouse

Always display "Paris warehouse time" explicitly PB-6.

8. Personalization property unread

Engraving +2 days forgotten. Scan line_item properties PB-3.

9. Fraud hold invisible to customer

Generic message "verification in progress", handoff PR-6. No fraud details.

10. Generalist bot confuses express #338

Carrier cut-off ≠ warehouse cut-off. Two distinct lines PB-6.

Anti-patterns

  • WISMO #184 without unfulfilled branch → PREP-BOT

  • PREP-TIME #395 without SLA metafields for bot PB-5

  • No /pages/expedition linked PB-8

How does Qstomy inform about the preparation time?

Qstomy on Shopify: PREP-BOT with fulfillment_status lookup, grounded SLA ship_date calculation, PB-6 templates, preorder/MTO/WISMO reroute, PREP-FLOW handoff without auto-fulfillment.

Qstomy PREP-BOT Capabilities

  • prep_intent_detect: 12 intents section 3

  • prep_order_lookup: fulfillment, tags, properties

  • prep_sla_calculate: PB-5 deterministic metafields

  • prep_explain_template: distinct prep vs transit

  • prep_no_delivery_promise: hard block ETA carrier unfulfilled

  • prep_peak_aware: banner + automatic offset

  • prep_handoff_ticket: PR-5+ brief agents #395

  • prep_wismo_router: reroute #184 if fulfilled

Complement #395

PREP-FLOW dispute and exception agents. Qstomy PREP-BOT automates PB-1 to PB-6. prep_fcr +9 pts, prep_ticket_rate -42% combined policy + bot.

Quantified DTC Scenario

Beauty brand, prep SLA 1-2 days, 89 prep tickets/month, 58% after hours.

After Qstomy PREP-BOT: prep_bot_resolution 81%, prep_false_ship_promise 0, prep_bot_intake_complete 93%, wismo_misroute -49%, prep_bot_csat 4.4/5.

Explore customer support and request a demo.

What is the checklist for deploying PREP-BOT?

PREP-BOT Checklist (12 steps)

  1. Document PREP-TIME policy #395 + /pages/shipping

  2. Configure metafields prep_sla_days, prep_cutoff_hour, peak_banner

  3. Configure 12 intents bot_prep_* section 3

  4. Draft templates PB-1 to PB-8

  5. Connect order lookup fulfillment + line_item properties

  6. Implement deterministic PB-5 ship_date algorithm

  7. Enable no_delivery_promise hard block guardrails

  8. Integrate preorder #187, MTO #288, WISMO #184, split #357 rerouting

  9. Configure triggers T1-T5 + route WISMO upstream

  10. Staging tests for 10 prep, peak, cancel, preorder, partial scenarios

  11. Handoff ticket with 10 fields to PREP-FLOW agents

  12. Weekly prep_bot KPI dashboard + audit transcripts

Summary

  • #396 = bot explains prep, #395 = policy/dispute agents

  • PREP-BOT: lookup unfulfilled → ship_date → prep vs transit

  • Grounded SLA: no invented tracking, no promised delivery

  • Reroute: preorder, MTO, WISMO fulfilled, split

  • KPI prep_bot_resolution: target 75-82%

FAQ

Difference with #395?
#395 policy PREP-TIME + PREP-FLOW agents + macros. #396 standard PB-1 to PB-7 bot automation.

Difference with #184 WISMO?
#184 post-dispatch transit tracking. #396 unfulfilled preparation before label.

Can the bot ship the order?
No. Fulfillment is warehouse ops. Bot informs and hands off if sla_miss.

Express #338 relation?
#338 carrier cut-off. #396 warehouse prep cut-off. Both delays add up.

Black Friday Peak?
Read peak_banner metafield. PB-6 templates proactive extension.

Go further

Test staging: "not shipped yet" + unfulfilled order_id D+1, check quoted PB-6 ship_date, zero delivery promise, reroute WISMO if fulfilled.

Share this #396 guide with support and warehouse ops: the right prep bot explains preparation, not the transit it doesn't control yet.

Enzo

July 1, 2026

Convert over 2,000 customers on average per month with Qstomy.

The world’s 1st Shopify AI dedicated to customer conversion

Empowering 200+ e-commerce merchants

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.