E-commerce
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
#395 PREP-TIME agents: PREP-FLOW, PREP-* macros. #396 automates bot explanation 24/7.
#184 WISMO bot: carrier transit tracking. #396 zooms in on unfulfilled, prep SLA, warehouse cut-off.
#187 preorder: product not launched. #396 = standard inventory in preparation.
#288 MTO: workshop manufacturing. #396 = warehouse pick-pack, not production.
#338 express: carrier cut-off. #396 = warehouse delay before label, all methods.
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
bot_prep_wismo_early: Day+0/Day+1 "not shipped" within normal SLA
bot_prep_sla_exceeded: preparation promise exceeded, handoff PR-5
bot_prep_cutoff_miss: order after cut-off, ship next day
bot_prep_weekend_gap: order Fri-Sat, waiting for Monday
bot_prep_peak_backlog: Black Friday, announced extended delay
bot_prep_personalization: engraving, message, +N days prep
bot_prep_mixed_cart_hold: waiting for missing SKU, ship complete
bot_prep_address_hold: address to verify, prep blocked
bot_prep_fraud_review: order under risk review
bot_prep_preorder_confusion: preorder tag, reroute #187
bot_prep_mto_confusion: made-to-order tag, reroute #288
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
PB-1 Greeting: "AI Assistant. I am checking the preparation status of your order."
PB-2 Collect order_id: or email + OTP if logged-out
PB-3 Lookup order: fulfillment_status, created_at, line_items tags
PB-4 Classify: prep_sla_ok | miss | preorder | MTO | peak | hold
PB-5 Calculate ship_date: warehouse SLA + cut-off + business days + peak offset
PB-6 Explain: PREP template grounded on PB-5, prep vs transit distinct
PB-7 Handoff if needed: sla_exceeded, cancel, address_hold, fraud
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
T1 Incoming message: not shipped, in preparation, processing
T2 Order status page unfulfilled: "Question about preparation?"
T3 Confirmation email D+1: reply "still not shipped" deep-link PB-2
T4 Peak banner site: "Current preparation time?" from /pages/shipping
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)
Document PREP-TIME policy #395 + /pages/shipping
Configure metafields prep_sla_days, prep_cutoff_hour, peak_banner
Configure 12 intents bot_prep_* section 3
Draft templates PB-1 to PB-8
Connect order lookup fulfillment + line_item properties
Implement deterministic PB-5 ship_date algorithm
Enable no_delivery_promise hard block guardrails
Integrate preorder #187, MTO #288, WISMO #184, split #357 rerouting
Configure triggers T1-T5 + route WISMO upstream
Staging tests for 10 prep, peak, cancel, preorder, partial scenarios
Handoff ticket with 10 fields to PREP-FLOW agents
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





