E-commerce
July 1, 2026
"My portal says 'In workshop production', what does that mean?" "The bot replies 'shipped' but Shopify displays unfulfilled." "Why has my custom status not moved for 10 days?" Three messages where a Shopify custom order status poorly explained by the bot creates more confusion than the native label.
A Shopify order status AI chatbot does not replace the STATUS-MAP agent policy (#407). It reads metafields order custom_status, prep_substatus, and fulfillment_status, explains the portal label in customer language, calculates the next step, and hands off if stuck or on hold.
This guide #408 covers intents bot_cust_stat_*, flow STAT-BOT, and KPI custom_stat. Perform PREP-STATUS (#407) in conversation: here, Shopify custom status AI use cases and 24/7 customer explanations.
Summary
Why do Shopify custom statuses overload the chat?
A Shopify custom order status is a label displayed in the customer portal via order metafields, an Order Status app, or a Flow workflow, distinct from the native unfulfilled/fulfilled fulfillment.
Five issues without a custom status bot
LLM invents status: bot mentions "on its way" without looking up the metafield
Custom ≠ native: "Atelier" portal vs Shopify unfulfilled, bot is confused
Opaque timeline: customer does not know the next custom step
Stale metafield: forgotten WMS update, bot repeats obsolete status
Multi-status: line-level custom vs order-level, bot response is generic
Shopify documents order metafields to extend order data beyond native fields (Shopify, metafields 2026). Gorgias estimates that 31-42% of post-purchase DTC status tickets with custom portals are "what does [label] mean" questions resolvable by a bot if grounded mapping is used (Gorgias, support stats 2026).
Angle #408 vs neighboring content
PREP-STATUS #407: STATUS-MAP agent policy. #408 = bot executes mapping in chat.
Bot prep #396: PREP-BOT delay in days. #408 = custom status label, not just ship_date calculation alone.
Bot WISMO #184: tracking fulfilled transit. #408 = upstream custom status unfulfilled.
Self-service #28: general portal. #408 = automated explanation of metafield statuses.
Preorder #187: dedicated preorder tag status. Bot reroutes if preorder metafield is detected.
DTC Example
MTO furniture brand, 6 custom statuses workshop → warehouse → shipped. Without STAT-BOT: 48% status tickets, bot hallucination 12 incidents/month. After bot: custom_stat_bot_resolution 76%, false_status_promise 0, prep_status_handoff -52%.
When to use custom statuses?
MTO, personalization, in-house production, multi-step 3PL, long preorders. Native Shopify status is insufficient to reassure customers.
Custom portal adoption
DTC MTO with enriched status portal: 45-55% of customers check their account before raising a ticket. Bot quotes the same labels = self-service consistency.
How does STAT-BOT differ from PREP-BOT #396?
Two bots upstream of shipping, two distinct intents.
Bot → customer question matrix
#408 STAT-BOT: "what does [custom label] mean?" "where is my order?"
#396 PREP-BOT: "how long before shipping?" ship_date calc
#184 WISMO: tracking number transit
#407 STAT-FLOW: dispute agents stuck, holds
Upstream router pipeline
Intent order status question → fulfillment check → if fulfilled → WISMO #184. if custom metafield present → STAT-BOT #408. if standard unfulfilled no custom → PREP-BOT #396 or STAT-BOT fallback STATUS-MAP #407.
STAT-BOT vs PREP-BOT data
STAT-BOT: custom_status, custom_status_label_fr, next_milestone, status_timeline[]
PREP-BOT: fulfillment_status, created_at, prep_sla_days, cut_off
Complementarity
STAT-BOT can include ship_date if eta_ship metafield is present. PREP-BOT reroutes if customer asks for meaning of custom label detected.
Promise #408
Policy CUST-STAT bot, 12 intents, flow STAT-BOT, guardrails metafield-only, KPI custom_stat_*.
Which bot_cust_stat_* intents should be configured?
Twelve Shopify custom status bot intents cover the portal and chat.
Twelve bot_cust_stat intents
bot_cust_stat_meaning: "what does [portal label] mean?"
bot_cust_stat_current: "where is my order?" full lookup
bot_cust_stat_timeline: past and remaining steps
bot_cust_stat_next_step: next milestone + ETA
bot_cust_stat_stuck: same custom status for X days
bot_cust_stat_mismatch: portal ≠ email or native confusion
bot_cust_stat_partial: heterogeneous line-level statuses
bot_cust_stat_hold: custom hold label (address, fraud, stock)
bot_cust_stat_mto: workshop production long statuses
bot_cust_stat_preorder: reroute #187 if preorder metafield
bot_cust_stat_cancel: collect cancellation, agent handoff
bot_cust_stat_wismo_confusion: custom label read as shipped
Handoff tags
cust_stat, cust_stat_stuck, cust_stat_hold, cust_stat_bot_resolved, cust_stat_handoff. Distinct prep_bot, wismo_transit.
Triggers T1-T4
T1: message contains custom status glossary keyword. T2: order lookup custom_status metafield not null. T3: portal referer URL /account/orders. T4: post-purchase email custom status reply.
How to apply the STAT-BOT flow in eight steps?
The STAT-BOT flow guides explanation custom grounded metafields status.
Eight steps SB-1 to SB-8
SB-1 Welcome: "Order status AI Assistant. I am checking your tracking."
SB-2 Collect: order_id or email + OTP
SB-3 Lookup: fulfillment_status + metafields custom_status*, timeline
SB-4 Classify: intent bot_cust_stat_* section 3
SB-5 Resolve label: STATUS-MAP #407 table metafield → explanation_en
SB-6 Explain: template current + next_step + timeline if requested
SB-7 Handoff if needed: stuck threshold, hold, cancel, sla_miss
SB-8 Close: portal link + /pages/order-status glossary
SB-5 metafield glossary
Metafield custom_status=atelier_production → "Your order is in workshop production. Custom manufacturing · normal delay [X] days. Next step: quality control · estimated [date]." Source: Notion STATUS-MAP sync bot.
SB-6 timeline template
Read status_timeline JSON metafield: [{step, date, done}]. Display checkmarks for completed steps + highlight current. Do not invent steps missing from JSON.
SB-7 handoff fields
order_id, custom_status, days_in_status, fulfillment_status, stuck_flag, bot_intent, verbatim.
SB-3 fulfilled check
If fulfilled: reroute WISMO #184 upstream. Custom status post-ship rare, document if used.
Fallback without metafield
custom_status null: reroute PREP-BOT #396 or standard STATUS-MAP #407. Do not block session. Log cust_stat_intake_incomplete.
Which Shopify metafields should be configured?
The Shopify custom order status metafields power the bot without hallucination.
Eight recommended metafields
custom_status: internal code (production_workshop, qc_check, wh_received)
custom_status_label_fr: portal label displayed to the customer
custom_status_explanation_fr: SB-6 bot sentence (optional override glossary)
custom_status_next_step: next milestone code + label
custom_status_eta: ISO date next step or ship
status_timeline: JSON array steps done/current/pending
status_updated_at: timestamp last metafield change (stale detect)
line_item_status[]: partial multi-SKU custom per line
Namespace suggestion
namespace order_status, owner ORDER. Sync Flow, WMS webhook, or admin manual ops.
Shopify Flow update
Trigger fulfillment event → update custom_status wh_ready. Trigger tag hold_fraud → custom_status hold_review. Bot reads latest API call.
Apps Order Status
ParcelPanel, Order Status Tracker: API export or webhook → same metafields bot layer.
Stale guard SB-3
If status_updated_at > 7 days and custom_status unchanged: bot_cust_stat_stuck flag + handoff STAT-FLOW #407, do not reassure blindly.
Admin Metafield Definition
Settings → Custom data → Orders → add definitions with FR descriptions for ops who update manually.
What guardrails prevent the bot from over-promising?
The authorized vs forbidden custom bot status matrix protects customer trust.
Authorized bot actions
Read metafields custom_status* + fulfillment_status
Explain label via STATUS-MAP #407 glossary sync
Display status_timeline JSON if present
Cite custom_status_eta if grounded metafield
Detect stuck via days_in_status vs threshold policy
Reroute fulfilled → WISMO, preorder → #187
Link /pages/order-status + account portal
Create handoff ticket SB-7 fields
Forbidden bot actions
Invent custom_status without metafield
Say "shipped" if fulfillment is unfulfilled
Promise ETA outside custom_status_eta metafield
Modify order metafield (read-only bot)
Skip stuck handoff if threshold exceeded
Auto compensation or refund (handoff #407/#395)
Hard block shipped language
If unfulfilled: block tokens "shipped", "on the way", "delivery tomorrow". Even if custom label contains "internal transit". Clarify prep vs carrier.
Mismatch handler
bot_cust_stat_mismatch: portal custom_status_label_fr vs email different → cite status_updated_at + "synchronization in progress" + handoff if > 24 h.
How to synchronize STATUS-MAP #407 and the bot?
The sync STATUS-MAP bot agents ensures consistency across the portal, chat, and customer service.
Notion source of truth
Table: custom_status code | label_fr | explanation_fr | next_typical | stuck_days_threshold | handoff_target. Export JSON bot glossary + macros STAT-* agents #407.
Five sync rules
Adding custom status → update Notion + Shopify metafield definition same day
Portal label = custom_status_label_fr metafield = bot SB-6 output
stuck_days_threshold → bot SB-7 auto handoff + agent STAT-STUCK-01
Timeline steps = status_timeline metafield = portal visual
Monthly verbatim review prep_status → adjust explanation_fr
WMS → metafield → bot pipeline
3PL webhook status_atelier → Flow update custom_status → portal refresh → bot read API. Target latency < 15 min. Alert if > 1 h.
Transactional emails
Klaviyo trigger custom_status change: email uses same label_fr. Reduces bot_cust_stat_mismatch.
Consistency tests
Staging: change metafield → verify portal + bot + agent macro preview identical.
Glossary versioning
Glossary JSON version field. Bot log version used per session. Rollback in case of deploy typo mapping.
Which MTO cases and line-level statuses should be managed?
Custom MTO and line-level statuses make bot routing more complex.
Typical workshop MTO statuses
design_confirmed → atelier_production → qc_check → wh_received → ready_ship
Each step 3-14 days. Bot quotes custom_status_eta per step
bot_cust_stat_mto intent: long timeline, patience normalized
Line-level partial
Order with 2 lines: line A ready_ship, line B atelier_production. bot_cust_stat_partial: explain split, policy ship hold or partial #357. Read line_item_status[] metafield per SKU.
Mixed cart standard + MTO
Order-level status = slowest line or "waiting for item" policy STATUS-MAP #407. Transparent bot: "Your [MTO SKU] in workshop · [stock SKU] ready · grouped shipment [date]."
Engraving customization
custom_status personalization_queue: bot explains +N days vs standard prep #396 reroute if no custom.
MTO Distinction #288
Made-to-order item policy agents. Bot #408 executes visible MTO status metafields.
Which custom_stat bot KPIs should be measured?
Shopify custom status bot KPIs drive automation and handoff.
Eight key metrics
custom_stat_bot_resolution_rate: resolved without handoff / cust_stat sessions
custom_stat_intake_complete: order lookup + metafield OK / sessions
false_status_promise: unfulfilled "shipped" audit (target 0)
custom_stat_handoff_rate: STAT-FLOW escalations / sessions
stuck_detect_accuracy: stuck handoff = true ops stuck / stuck handoffs
prep_status_ticket_delta: decrease in #407 tickets post bot
wismo_misroute_delta: decrease unfulfilled → WISMO
custom_stat_bot_csat: satisfaction of sessions tagged cust_stat
DTC custom status benchmark
custom_stat_bot_resolution 72-80%, false_status_promise 0, handoff < 25%, prep_status_ticket_delta -35-50%, bot_csat > 4.2/5.
Weekly dashboard
Sessions by intent, metafield null rate (fallback PREP-BOT), stale status_updated_at count, handoff reasons.
Transcript audit
Sample 20 sessions: verify SB-5 glossary match Notion, no invented timeline steps.
ROI vs agents alone
STAT-BOT -40-50% prep_status tickets #407. ROI positive starting from 80+ orders/month with active custom statuses.
What anti-patterns should be avoided on a custom status bot?
Ten Shopify custom status bot anti-patterns to banish.
1. LLM status without API lookup
Hallucination #1. SB-3 metafield read mandatory.
2. Ignoring fulfillment_status
Custom "ready for shipping" + unfulfilled ≠ package shipped.
3. Glossary bot ≠ portal labels
Customer sees contradiction. Notion sync section 7.
4. No reroute WISMO fulfilled
Bot explains custom even though tracking is available #184.
5. Stale metafield ignored
status_updated_at 14 days, bot reassures. Stuck handoff.
6. Invented timeline steps
JSON status_timeline only. No LLM extra steps.
7. Refund bot auto cancel
bot_cust_stat_cancel collect → agent handoff.
8. Custom status without glossary /pages/order-status
Bot SB-8 link 404. PREP-STATUS #407 prerequisite.
9. Mixing PREP-BOT and STAT-BOT intents
Router upstream section 2. Two distinct flows.
10. Line-level ignored partial
Order-level generic wrong. bot_cust_stat_partial mandatory.
11. Metafield typo production
atelier_prod vs atelier_production: glossary fallback + ops alert unknown code.
How does Qstomy handle custom Shopify statuses?
Qstomy on Shopify: STAT-BOT lookup metafields order_status.*, glossary STATUS-MAP sync, timeline render, stuck detect, hard block shipped unfulfilled, handoff STAT-FLOW #407.
Qstomy custom stat capabilities
cust_stat_intent_detect: 12 intents section 3
cust_stat_metafield_read: SB-3 API grounded
cust_stat_glossary_sync: Notion STATUS-MAP import
cust_stat_timeline_render: JSON → client FR
cust_stat_stuck_detect: threshold → handoff
cust_stat_no_shipped_unfulfilled: hard block
Pipeline #407 → #408 → agents
PREP-STATUS defines mapping. STAT-BOT runs 24/7. STAT-FLOW exceptions agents stuck/hold. PREP-BOT #396 completes if ship_date question without custom metafield.
Encrypted DTC scenario
MTO furniture 5 custom statuses, 520 orders/month unfulfilled avg 18 days.
After STAT-BOT Qstomy: custom_stat_bot_resolution 77%, prep_status_ticket_delta -46%, false_status_promise 0, custom_stat_bot_csat 4.4/5.
Explore customer support and request a demo.
What is the checklist for deploying STAT-BOT?
STAT-BOT Checklist (12 steps)
Document STATUS-MAP #407 + custom_status codes
Create order_status.* metafields section 5 Shopify
Configure WMS/Flow sync → metafields
Publish /pages/order-status custom status glossary
Export Notion glossary JSON → bot
Configure 12 bot_cust_stat_* intents section 3
Implement flows SB-1 to SB-8 + upstream router section 2
Enable guardrails no shipped unfulfilled + stale detect
Integrate STAT-FLOW #407 handoff fields SB-7
Staging tests 10 scenarios MTO, partial, stuck, fulfilled reroute
Align Klaviyo emails custom_status change labels
Weekly custom_stat KPI dashboard + transcripts audit
In brief
#408 = custom status bot, executes PREP-STATUS #407
Grounded metafields: zero status hallucination
STAT-BOT: lookup → glossary → explain → handoff
Router: fulfilled WISMO, custom STAT-BOT, else PREP-BOT
KPI false_status_promise: absolute zero target
FAQ
Difference with #407 agents?
#407 policy labels + macros. #408 bot explains metafields 24/7 in chat.
Are custom status needed for everyone?
No. Standard unfulfilled → PREP-BOT #396 is enough. Custom if MTO, multi-step, enriched portal.
Does the bot modify metafields?
No, read-only. Ops/WMS/Flow write. Bot reads API each session.
Relation to PREP-BOT #396?
Complementary. Upstream router. STAT-BOT if custom metafield present.
Shopify Plus required?
No. Order metafields on all plans. Flow optional. Compatible status apps.
Go further
This week: define custom_status codes, create Shopify metafields, sync Notion STATUS-MAP, test STAT-BOT staging on 5 MTO orders.
Share this #408 guide with ops and e-com: a custom status has value only if the bot reads it, not if it invents it.
How many custom status max?
Recommended 4-8 timeline steps. More = confusion. Group internal ops steps.

Enzo
July 1, 2026





