E-commerce

AI Chatbot for Express Delivery: Check Eligibility Before Purchase

AI Chatbot for Express Delivery: Check Eligibility Before Purchase

July 7, 2026

"If I order in 20 minutes, will I receive it tomorrow?" "Does my postal code 20167 accept express delivery?" "Can this sofa ship within 24 hours?" These questions arrive on the product page, the cart, or the Instagram chat, often at 12:40 PM when the cut-off is at 1:00 PM.

Baymard points out that 23% of cart abandonments are due to delivery times perceived as too long (Baymard, checkout abandonment 2025). Promising an impossible express delivery is even more costly: customer service tickets, shipping surcharge refunds, and negative reviews.

This guide #339 formalizes the express eligibility AI chatbot: checking cut-off, zone, and SKU before payment. It complements express support customer service (#338) (post-purchase disputes) and shipping FAQ bot (#203) (general delivery) from the perspective of an AI anti-overpromising express pre-purchase use case.

Summary

Why verify express eligibility via bot before purchasing?

Express delivery is the riskiest promise in the shipping journey. A bot that replies "yes tomorrow" without live data turns a pre-purchase question into a post-purchase dispute.

Three costs of overpromising express delivery

  • Lost conversion: customer leaves if express delivery unavailability is only discovered at checkout

  • CS Ticket: "I paid for express, did not receive it the next day"

  • Extra cost refund: €8 to €15 per poorly promoted order

Shopify recommends aligning checkout promises with warehouse capacity (Shopify, delivery dates 2025).

Angle #339

The #338 covers express CS (macros, disputes). The #203 covers ship_express among 12 shipping intents. Here: dedicated express eligibility bot with go/no-go logic before payment.

Critical moment

Peak pre-purchase express tickets: 11 a.m. - 2 p.m. on weekdays, holiday eves. A live cut-off bot answers in 3 seconds what takes an agent 2 minutes to check across three tools.

DTC Example

Perfume brand: 24h express, 1 p.m. cut-off. Without eligibility bot: 18% of "tomorrow?" chats escalated, 12% agent overpromises. After express_eligible bot: 81% self-resolved, +6% conversion on carts with an express-related question.

Conversion impact

InsiderOne notes that shipping bots with personalized ETAs reduce cart abandonment by 10 to 15% on time-sensitive segments (InsiderOne, chatbots 2026).

How does it differ from other delivery and bot guides?

Six neighboring contents, six roles.

Express After-Sales Support (#338)

Guide #338: cut-offs, EXPRESS macros, post-order disputes. The #339 intervenes before payment to avoid reaching after-sales.

Bot shipping FAQ (#203)

Bot shipping (#203): fees, zones, standard ETA. The #339 delves into express_eligible with go/no-go rules and countdown.

Bot checkout (#292)

Bot checkout (#292): chk_ship_eta in the tunnel. The #339 also covers PDP and cart, not just checkout.

Dynamic estimation

Dynamic ETA Widget: passive display. The #339 answers in natural language and handles multi-criteria questions (zip code + SKU + time).

Last minute gifts (#129)

Last minute (#129): gift urgency on the after-sales side. The #339 automates the express verification for any buyer in a hurry.

Promise #339

Express_eligible intents, data sources, decision tree, PDP/cart/checkout flows, anti-hallucination, express conversion KPIs.

Which express intents should the bot cover?

Mapping express eligibility intents avoids a catch-all shipping bot.

Ten pre-purchase express intents

  • express_available: do you offer express delivery?

  • express_cutoff_now: can I receive it tomorrow if I order now?

  • express_zip_eligible: is my zip code [XXXXX] covered?

  • express_sku_eligible: can this product be shipped express?

  • express_cart_eligible: is my entire cart eligible?

  • express_cost: express rate to [zone]?

  • express_weekend: Saturday or Sunday delivery?

  • express_preorder: is express possible for pre-orders?

  • express_alternative: express unavailable, what is the alternative?

  • express_countdown: how much time left before cut-off?

Mining tickets and chats

Export Gorgias/Zendesk for 90 days, filter by express, tomorrow, urgent, cut-off. Group verbatims. Prioritize the top 5 covering 80% of pre-purchase express volume.

Analytics tags

express_bot_eligible_yes, express_bot_eligible_no, express_bot_cutoff_missed, express_bot_escalated. See taxonomy (#135).

Verbatims to cover as a priority

"Delivered tomorrow?", "Express available in 69001?", "Cut-off today?", "Can my cart be shipped urgently?", "Why is there no express option at checkout?". Five formulations cover 70% of typical DTC express chats.

What data should be connected to make decisions in real time?

An express bot without live data hallucinates delays. The response must be deterministic, not generated by the LLM alone.

Required Shopify Sources

  • Express shipping profile: ZIP code zones, rates, conditions

  • Inventory location: express warehouse inventory, not dropship

  • Metafield express_eligible: true/false per SKU

  • Product tags: oversize, preorder, fragile

Additional Ops Sources

  • Cut-off table: limit time per business day (JSON or shop metafield)

  • Holiday calendar: days without express or advanced cut-off

  • Warehouse capacity: express_suspended flag if peak exceeded

  • Carrier cutoff: last Chronopost pickup (ShippyPro, Sendcloud)

Shopify Plus Delivery Customization can hide express if cut-off is passed (Shopify, delivery customization).

Session Context

Europe/Paris time, cart or entered ZIP code, PDP SKU, total weight, stock status. The bot reads the storefront cart if the cart/checkout widget is active.

Cut-off Refresh

Cache cut-off table 5 min max. Webhook invalidation if ops sets express_suspended=true. Server time synchronized via NTP Europe/Paris.

How do I build the express eligibility decision tree?

The express eligibility tree returns eligible: true/false + reason + ETA if yes.

Five sequential gates

  1. Zone gate: Postal code in express shipping profile?

  2. SKU gate: all items express_eligible and in warehouse stock?

  3. Cut-off gate: current time < today's cut-off?

  4. Calendar gate: business day, not a holiday, express not suspended?

  5. Carrier gate: carrier pickup available for zone?

Structured output

Internal JSON: {eligible: false, reason: 'cutoff_passed', next_cutoff: 'tomorrow 8am', alt_eta: 'Thursday'}. The LLM formulates the response from this JSON, never the other way around.

Anti-hallucination rule

If a gate lacks data: reply "let me check" + escalation or "express unavailable, standard delivery [X days]". Never invent a cut-off. See anti-hallucination bot.

Multi-SKU cart

A single non-eligible SKU = non-express cart. Bot lists the blocking item and offers removal or standard delivery.

Which conversational flows per page of the journey?

The express flow bot varies depending on the page context.

PDP Flow (product sheet)

  1. Customer: "is delivery tomorrow possible?"

  2. Bot reads SKU + stock + express_eligible metafield

  3. Asks for postal code if missing (or reads approximate geo IP + confirms)

  4. Executes section 5 tree

  5. Replies: "Yes, ordered before 1 p.m. (Paris), delivered tomorrow working day in 75011. Express: €9.90."

Cart Flow

Postal code and articles are known. Bot checks the entire cart. If an item blocks: "Remove the 45 cm vase or switch to standard (3 working days)." CTA: cart link or express checkout.

Checkout Flow

Triggered if the customer changes the carrier or is idle for 30s on the delivery step. Completes checkout bot (#292) intent chk_ship_express.

Proactive countdown

Chat banner: "Only 47 mins left to receive tomorrow via express delivery." Based on live cut-off. Disable if eligible=false.

Instagram and WhatsApp

Same tree on social channels. Customer sends postal code + product link. Bot parses PDP URL, extracts SKU, executes gates. See WhatsApp bot.

How to respond when express delivery is not possible?

An honest express refusal converts better than a false promise.

Four rejection templates by reason

  • cutoff_passed: "1 p.m. cut-off passed. Next express dispatch: tomorrow if ordered before 1 p.m. Estimated delivery: [date]."

  • zone_excluded: "Express not available in [zone]. Standard: [X days] at [rate]."

  • sku_excluded: "[Product] not eligible (format). Standard: [X days]."

  • express_suspended: "Express suspended today (volume peak). Resumes tomorrow 8 a.m."

Proposed alternative

Always provide a plan B: standard date, faster pick-up point, digital gift card if gift emergency. Link #129 if gift context.

Human escalation

If customer insists after documented refusal (D0 event, high-value cart): tag express_bot_escalated, agent SLA 5 min. Agent does not overpromise without ops validation.

Tone of refusal

Empathetic but factual: "I understand the urgency. Here is what we can guarantee: [standard date]. Express resumes tomorrow at 8 a.m. if ordered before [cut-off]."

How do I configure Shopify and bot integrations?

The Shopify express bot reads the storefront API and shop metafields.

Minimum technical setup

  • Product metafield: custom.express_eligible (boolean)

  • Shop metafield: custom.express_cutoff (JSON per day)

  • Shipping rate: handle express_24h linked to the zone profile

  • Storefront API: cart, product, deliveryGroups

Cut-off sync

Shop metafield is updated by Flow or cron if the cut-off changes (Christmas peak: 11 AM instead of 1 PM). The bot always reads the metafield, never a hardcoded config.

Widget placement

PDP below add-to-cart, cart drawer, checkout extension Plus. See pre-checkout questions for UX placement.

Automated test

20 scenarios: eligible/ineligible postal code, before/after cut-off, oversize SKU, mixed cart. Bot CI: assert eligible matches section 5 tree.

Webhook order/create

Log express_bot_session_id on express orders. Allows measuring the express_false_promise_rate: bot said eligible=true vs actual fulfillment.

Which KPIs should be measured for the pre-purchase express bot?

Measure express bot conversion, not just the response rate.

Six key metrics

  • express_bot_resolution_rate: resolved without agent / total express chats

  • express_false_promise_rate: express orders where the bot said eligible and ops missed it (should tend towards 0)

  • express_cart_conversion: conversion of carts with express intent vs without

  • express_ticket_prevented: post-purchase express tickets avoided (proxy: decrease in tickets / express orders)

  • express_no_to_standard: rejected express customers who buy via standard

  • CSAT intent express_eligible: post-bot response satisfaction

DTC Benchmark

Target resolution_rate > 75%, false_promise_rate < 0.5%, express_no_to_standard > 40% (honest refusal that still converts).

Weekly review

Cross-reference express_bot_eligible_no by reason. If cutoff_passed > 50%: strengthen PDP countdown. If sku_excluded: "not express eligible" PDP badge.

Cohort analysis

Compare 7-day post-chat conversion express_eligible_yes vs express_eligible_no. Objective: "no" cohort converts > 35% in standard despite express refusal.

What mistakes should you avoid with an express bot?

Five express bot anti-patterns to ban.

Error 1: LLM invents the cut-off

The model says "before 4 PM" because it is common. Fix: deterministic tree section 5, LLM only reformulates.

Error 2: ignoring the timezone

Customer from French overseas territories or mainland: always display "Paris time" explicitly.

Error 3: express without checking stock

SKU on pre-order or out of stock in express warehouse: eligible=false even if zone OK.

Error 4: promising weekend without Chrono Saturday offer

Standard express = business days. Distinct express_weekend macro if explicit offer.

Error 5: no plan B

Flat refusal = abandonment. Always offer standard + date + cart CTA. Example: "Standard delivery Thursday €9.90 included. Add to cart?" Align policy #338 for pre- and post-purchase consistency.

How does Qstomy verify express eligibility before purchase?

Qstomy runs the express_eligible tree from Shopify metafields, shipping profiles, and cut-off tables, without overpromising.

Capabilities

  • Intent express_cutoff_now: live countdown Europe/Paris

  • Postal Code Lookup: shipping profile zone eligibility

  • Cart Scan: all SKUs express_eligible + stock

  • Structured Denial: reason + alternative + CTA

  • Escalation: D0 urgency after documented denial

Quantified DTC Scenario

Accessories brand, 24h express at €9.90, 12:00 PM cut-off, 420 express chats/month during peak times.

After Qstomy express_eligible: 83% auto-resolved, response time 4 s, express_false_promise_rate 0.2%, +7% cart conversion with express question, -38% pre-shipment express tickets vs month N-1.

Explore AI support, Shopify, request a demo.

What is the checklist for launching the express eligibility bot?

Checklist bot express (10 étapes)

  1. Documenter cut-offs et zones express (aligner #338)

  2. Créer metafields express_eligible + express_cutoff shop

  3. Tagger SKU exclus (oversize, preorder, fragile)

  4. Implémenter arbre 5 gates section 5

  5. Configurer 10 intents section 3

  6. Rédiger 4 templates refus section 7

  7. Placer widget PDP, panier, checkout

  8. Tester 20 scénarios CI bot

  9. Activer tags analytics express_bot_*

  10. Dashboard express_false_promise_rate hebdo

En bref

  • #339 = éligibilité express pré-achat, pas SAV post-commande

  • Arbre déterministe : LLM reformule, ne décide pas

  • 5 gates : zone, SKU, cut-off, calendrier, transporteur

  • Refus honnête + plan B : convertit mieux que surpromesse

  • KPI clé : express_false_promise_rate vers 0

FAQ

Bot express ou widget countdown suffit ?
Countdown affiche le cut-off. Le bot répond aux questions multi-critères (CP, SKU, panier). Les deux se complètent.

Différence avec ship_express du bot #203 ?
#203 mentionne ship_express parmi 12 intents. #339 approfondit la logique go/no-go et les flows dédiés express.

Que faire si cut-off change en pic Noël ?
Metafield shop express_cutoff mis à jour. Bot lit live, pas de redeploy code.

Bot peut-il garantir livraison demain ?
Non. Il indique éligibilité expédition express selon règles ops. Retard transporteur = hors scope bot pré-achat.

Faut-il un bot séparé ou étendre le bot shipping ?
Étendre le bot existant avec module express_eligible suffit. Intents et arbre dédiés, même widget.

Comment lier bot et support #338 ?
Bot pré-achat = arbre eligible. Support post-achat = macros EXPRESS et litiges. Même cut-off table, deux moments du parcours.

Aller plus loin

Avant le pic, simulez 10 conversations bot à 12 h 50 et 13 h 10 : c'est le test le plus fiable pour valider cut-off live et refus honnête.

Partagez ce guide #339 avec ops et dev bot : une seule source de vérité sur éligibilité express évite que le chatbot compense des promesses que la logistique ne peut pas tenir.

En pic Noël, prévoir staffing bot + revue cut-off quotidienne : un cut-off avancé mal synchronisé génère plus de express_false_promise que pas de bot du tout.

Testez le module express_eligible en staging avant chaque pic saisonnier majeur.

Enzo

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