E-commerce

AI Chatbot for Split Shipments: Explaining the Location of Each Package

AI Chatbot for Split Shipments: Explaining the Location of Each Package

July 25, 2026

"There is an item missing, where is the rest?" "I have two tracking numbers, which one should I look at?" "Order delivered but half of it is missing." Three WISMO messages where a single-package bot returns only one tracking number and worsens the confusion.

Claro estimates that WISMO tickets represent 30% to 50% of e-commerce support volume (Claro, WISMO Shopify 2026). ShippyPro points out that multi-package orders multiply "missing package" contacts if the status is not explained package by package (ShippyPro, WISMO 2026).

This guide #357 formalizes the split shipment AI chatbot: explaining where each package is. It completes support split (#356) (policy SPLIT-SHIP ops) and WISMO bot (#184) with the angle of post-purchase AI use case for multi-fulfillment and multiple tracking.

Summary

Why automate split shipment with a bot?

A split shipment bot reads all fulfillments of an order and responds package by package. The standard WISMO bot only sees one tracking number.

Three single-package bot failures

  • Single tracking: customer panics over missing items

  • Global "delivered" status: package 2 is still on the way

  • No manifest: customer does not know which item is where

TrackingMore notes that listing items and tracking per package in notifications reduces WISMO tickets (TrackingMore, 2026 notifications).

Angle #357

#356 documents the SPLIT-SHIP policy and agent macros. #184 automates single-package WISMO. #357 defines the dedicated multi-fulfillment bot: lookup, manifest, false missing triage, handoff.

Split bot ROI

For a brand with 35% split orders, split_wismo can account for 15 to 25% of total WISMO tickets. Bot connected to fulfillments + carrier: 30-second response time vs. 5 minutes for an agent.

DTC Example

Home brand, 89 split_wismo tickets/month, generic WISMO bot. After dedicated split bot: 74% auto-resolved, split_bot_resolution 78%, false_missing_escalation 12%, split bot CSAT 4.6/5.

Journey stage

Post-shipment of package 1, pre-delivery of package 2: peak split_bot sessions. Trigger: delivery email for package 1, "missing items" chat.

Ops prerequisites

SPLIT-SHIP policy (#356) and per-fulfillment emails in place. The bot executes the conversational layer, it does not invent logistics.

How does it differ from WISMO #184 and support #356?

Seven delivery contents, seven distinct bot roles.

Support split ops (#356)

Guide #356: SPLIT-SHIP policy, SPLIT-* macros, missing escalations. #357 implements the multi-package lookup AI layer.

WISMO Bot (#184)

WISMO Bot (#184): single order tracking or first fulfillment. #357 adds fulfillment loop N and item manifest.

Shipping FAQ Bot (#203)

Shipping Bot (#203): pre-purchase fees and times. #357 = post-purchase multi-package.

Multi-warehouse Bot (#325)

Multi-warehouse bot (#325): stock and routing. #357 intervenes after split shipping.

Pre-order (#337)

Pre-order (#337): split stock + pre-order. Split bot manages package 2 pre-order ETA.

Gift order

Gift: recipient receives package 1. Bot explains package 2 without raising alarm.

Promise #357

split_* intents, SPLIT-BOT-GATE flow, package manifest, false missing triage, handoff #356, split_bot KPI.

Which split intents should the bot classify?

Map the split_bot intents before flows.

Ten split shipment intents

  • split_status_all: where is my order (N parcels)

  • split_parcel_n: specific parcel 1 or 2 status

  • split_missing_rest: items are missing

  • split_tracking_n: send link for parcel N

  • split_eta_n: delivery date for parcel 2

  • split_partial_delivered: parcel 1 OK, parcel 2?

  • split_why_separate: why two parcels

  • split_not_shipped_yet: parcel 2 not shipped yet

  • split_stale_tracking: tracking for parcel 2 stuck

  • split_true_missing: all delivered, item missing

Mandatory session fields

order_id, fulfillment_count, fulfillments[], line_items_by_fulfillment, carrier_status[], false_missing_risk (bool). See taxonomy (#135).

Distinction split vs wismo

If fulfillment_count = 1: route wismo_status (#184). If fulfillment_count > 1: route split_* (#357).

90-day ticket mining

Export split_wismo tags (#356). Prioritize flows for top verbatims "missing", "two parcels", "incomplete".

How to build the SPLIT-BOT-GATE flow?

The SPLIT-BOT-GATE flow routes each message via lookup fulfillments before replying.

Six sequential gates

  1. Auth Gate: email or order_id + customer match

  2. Fulfillment_count Gate: 1 vs N parcels

  3. Intent Gate: missing vs status vs tracking

  4. Manifest Gate: items per fulfillment

  5. Carrier Gate: live status of each tracking

  6. Exit Gate: split response, false missing OK, handoff

Split_missing_rest branch

Customer "X is missing" → lookup line item X in fulfillments → if parcel 2 is unfulfilled or in_transit: SPLIT-STATUS response for parcel 2, no missing handoff. If all delivered: routes to split_true_missing → handoff #356 branch D.

Split_status_all branch

Card summary per parcel: Parcel 1/N items + status + tracking. Global status: partially delivered if applicable.

Anti-reship rule

The bot never promises to resend a parcel. Status explanation + ETA + handoff if stale or true missing.

Max turns

3 clarifications max. Then agent handoff with fulfillments payload.

Which data sources does the split bot read?

The split bot responds from Shopify fulfillments + carrier API.

Five Shopify sources

  • Order fulfillments[]: count, status, tracking

  • Line items per fulfillment: parcel manifest

  • Order fulfillment_status: partial / fulfilled

  • Fulfillment events: shipped_at, delivered_at

  • Metafield order.split_notified: customer notified split

Shopify Admin API exposes fulfillments per order (Shopify, Fulfillment API 2026).

Carrier layer

AfterShip, ShippyPro or direct carrier: scan status, ETA by tracking_number. Heeya: 80% automation with carrier API vs. 40% Shopify alone (Heeya, tracking bot 2026).

Policy SPLIT-SHIP #356

RAG chunks /delivery-split page for split_why_separate. Bot quotes policy, does not invent logistic reason.

Sync branded tracking page

Bot links to multi-parcel tracking page (#181) same data as conversation. Consistency email / page / chat.

Cache and carrier freshness

Carrier statuses change every 2 to 6 hours depending on the network. The split bot must read the carrier API in real time on split_missing_rest and split_stale_tracking, not a 24-hour cache which would display "in transit" when parcel 2 has been delivered since this morning. Recommended TTL: 15 minutes for in_transit, 0 minutes if customer insists "still not received". If carrier API is unavailable, bot quotes Shopify fulfillment status + approximate ETA disclaimer, then offers handoff rather than an invented status.

SKU mapping to fulfillment

Each line_item_id must point to fulfillment_id before any "X is missing" response. Bundles and kits complicate the manifest: a parent SKU can be split across two parcels (structure in parcel 1, accessories in parcel 2). Document these splits in metafield product.split_fulfillment_hint so the bot quotes "screws and plugs in parcel 2" without guessing.

What safeguards should be imposed on the split shipment bot?

The SPLIT-BOT-GUARD safeguards prevent reshipments and misleading "delivered" statuses.

Five strict rules

  • No "order delivered" if fulfillment is pending/in_transit

  • Mandatory manifest: items listed by package

  • False missing triage: check package 2 before raising an alarm

  • No reshipment promise: handoff to agent #356

  • Tracking stale > 72 h: handoff to logistics

Split bot system prompt

"You list each package with its items and status. You never state that the order is complete if a package is not delivered. If a customer reports a missing item, you check which package it is in before drawing any conclusions." See anti-hallucination.

Double partial confirmation

split_partial_delivered: "Package 1 delivered on [date]. Package 2 [status] with ETA [date]. Package 2 items: [list]."

Regression tests

25 scenarios: 2 packages in transit, package 1 delivered package 2 pending, false missing claim, true missing all delivered, 3 packages, stale tracking, preorder package 2. split_hallucination target 0%.

Which bot flows for post-purchase split?

The split bot operates on post-shipment touchpoints.

Chat flow "items missing"

Auth order → fulfillment_count > 1 → split_missing_rest → manifest → package 2 on its way response or handoff.

Email flow package 1 delivered

Pre-filled chat link order_id. Proactive bot split_status_all if customer opens.

Tracking page widget flow

"Ask a question" on multi-package page. Bot retrieves fulfillments context without asking for the number again.

Flow split_why_separate

Citation policy #356 SPLIT-WHY + "shipping fees charged once" if shipping question.

Bot response example

"Your order #7842 contains 2 packages. Package 1 (Modular shelf): delivered on July 12. Package 2 (Screws and fasteners): shipped on July 14, in transit, estimated delivery July 17. Tracking: [link]. You have not been charged shipping fees twice."

Handoff payload split

order_id, fulfillment_count, fulfillments snapshot, carrier_status[], client_verbatim, false_missing_risk, session_log.

How do I connect the Split bot to Shopify?

The Shopify split bot setup aligns API fulfillments and the carrier aggregator.

Technical Checklist

  1. Enable read fulfillments scope Admin API

  2. Connect AfterShip / ShippyPro multi-tracking

  3. Configure router fulfillment_count > 1 → split_*

  4. Index policy SPLIT-SHIP #356 RAG

  5. Write prompt SPLIT-BOT-GUARD section 6

  6. Connect handoff #356 split_missing_claim

  7. Test 25 regression scenarios

  8. Weekly split_bot_resolution dashboard

Webhook fulfillment created

Trigger customer notification + split_bot_eligible tag if count > 1.

WISMO #184 Integration

Parent router: fulfillment_count check before wismo vs split intent.

Gradual Launch

Phase 1: split_status_all + split_missing_rest. Phase 2: stale tracking handoff. Phase 3: proactive post package 1 delivered.

Which KPIs should be measured on the split bot?

Without split_bot KPIs, it is impossible to prove ROI vs generic WISMO.

Seven key metrics

  • split_bot_resolution: resolved without agent / split bot sessions

  • split_wismo_deflection: deflected split tickets / bot sessions

  • false_missing_handoff_rate: handoff after OK bot sorting

  • split_true_missing_rate: true missing post-bot

  • split_bot_handoff_rate: escalations / sessions

  • reship_avoided_bot: reships avoided thanks to sorting

  • CSAT intent split_bot: post-response satisfaction

DTC Benchmark

Target split_bot_resolution > 70%, false_missing_handoff_rate < 15%, CSAT split bot > 4.5/5.

Correlation #356

Emails per fulfillment + multi-parcel tracking page must lower split_wismo volume. Bot handles residual chat.

Monthly Review

Top intent split, top SKU split, handoff reasons. Feed emails and checkout warning.

Operational Dashboard

Segment split_bot_resolution by fulfillment_count (2 vs 3+ parcels) and by dominant intent. A global rate of 72% can mask split_missing_rest at 45% and split_status_all at 88%. Prioritize weak flows before adding new intents. Correlate reship_avoided_bot with reship tickets tagged split_wismo: if reships go up despite active bot, the false missing sorting is poorly calibrated.

A/B Test manifest response

Compare CSAT between list of items per parcel response vs visual card response "Parcel 1 / Parcel 2" with color status. DTC home and furniture brands often gain 0.3 CSAT points when the customer explicitly sees which SKU is in which parcel, especially on split_missing_rest where anxiety is highest.

What edge cases and escalations should be anticipated?

Five edge cases split bot require a handoff.

Three or more packages

Same flow with fulfillment_count 3+. Full manifest mandatory.

Package 2 preorder

split_not_shipped_yet with pre-order ship date (#337). No invented carrier ETA.

Stale tracking package 2

split_stale_tracking > 72 h: logistics handoff #356.

Confirmed true missing

All fulfillments delivered, item missing: handoff split_missing_claim (#356 branch D).

Customer insists on immediate reship

Bot remains factual, supervisor handoff. No bot promises.

Marketplace or mixed dropship

If package 1 leaves the brand warehouse and package 2 is from a 3PL supplier, the bot must quote two distinct carriers without merging ETAs. Handoff if supplier status is missing from carrier API for more than 48 hours.

Partial return package 1

Customer returns an item from package 1 but package 2 is still on its way: bot explains that the return does not affect package 2's shipment, routes split_status_all, handoff if partial refund is requested.

Customer language and timezone

Delivery dates in store timezone, status labels localized in FR/EN. Avoid "delivered yesterday" for UTC+2 customer if the carrier scan was yesterday evening US.

How does Qstomy handle split shipment?

Qstomy routes split_* intents from Shopify fulfillments, carrier API, and SPLIT-SHIP policy.

Capabilities

  • split_status_lookup: N parcel status + manifest

  • split_false_missing_triage: item → parcel mapping

  • split_tracking_links: carrier URLs per parcel

  • split_partial_status: accurate partially delivered

  • Handoff #356: true missing or stale payload

Encrypted DTC Scenario

Home brand, 89 split_wismo tickets/month, generic WISMO bot.

After Qstomy split bot: 76% self-resolved, split_bot_resolution 80%, reship_avoided 23/month, split bot CSAT 4.7/5.

Explore AI support, Shopify, request a demo.

What checklist is needed to launch the split bot?

Checklist split bot (10 steps)

  1. Validate SPLIT-SHIP #356 policy and emails by fulfillment

  2. Audit split_wismo 90-day tickets

  3. Connect fulfillment APIs + carrier aggregator

  4. Document SPLIT-BOT-GATE flow section 4

  5. Configure fulfillment_count > 1 router

  6. Draft SPLIT-BOT-GUARD prompt section 6

  7. Test 25 regression scenarios

  8. Integrate split_missing_claim handoff #356

  9. Weekly split_bot_resolution dashboard

  10. Monthly review false missing vs true missing

In brief

  • #357 = multi-package bot, not mono WISMO (#184)

  • SPLIT-BOT-GATE: manifest + carrier per package

  • False missing triage: before handoff or alert

  • 10 split_* intents: status, missing, tracking, stale

  • split_bot_resolution KPI: target > 70%

FAQ

Difference with WISMO #184?
#184 = one tracking, one response. #357 = loop N fulfillments + item manifest.

Difference with support #356?
#356 = policy ops and human macros. #357 = automation lookup and bot triage.

Can the bot resend a package?
No. Agent handoff if true missing or stale tracking.

Single-package order?
wismo_status route #184. Split bot if fulfillment_count > 1 only.

Without carrier API?
Bot reads Shopify fulfillments alone. Less precise ETA, more frequent handoff.

Going further

Test staging: order 2 fulfillments, message "an item is missing", check package 2 manifest without premature handoff.

Share this guide #357 with ops and CRM: a well-calibrated split bot converts multi-package WISMO into a 30-second response.

Enzo

July 25, 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.