E-commerce

How to set up an AI chatbot for perishable products: preservation, delivery, and freshness?

How to set up an AI chatbot for perishable products: preservation, delivery, and freshness?

July 1, 2026

"What shelf life (DLC) will I have upon receipt?" "My refrigerated parcel is 24 hours late, can I eat it?" "How should I store this product once opened?" On a fresh food or meal kit shop, these questions arrive at 11:00 PM on a Sunday, when no agent is available and every hour counts.

Certainly describes the grocery agent capable of managing delivery slots, allergen substitutions, and product recalls within the same conversational thread, without redirecting to a form (Certainly, food & grocery 2026). Carti estimates that clarifying the cold chain and delivery windows reduces pre-purchase anxiety around sensitive goods (Carti, food & beverage 2026).

This guide #314 covers the perishable goods AI chatbot: storage, delivery, dates, and freshness claims. It complements perishables support (#313) with a focus on bot automation, PERISH-BOT intents, and food safety guardrails, which are absent from general chatbot articles.

Summary

Why can't a perishable bot respond like a fashion or electronic bot?

A generic bot quotes the 30-day return policy. A perishable goods bot must distinguish between use-by and best-before dates, estimate a freshness buffer after carrier delay, and refuse to guarantee that a lukewarm yogurt is "probably fine".

Three risks of a poorly configured bot

  • Health hallucination: inventing a use-by date, playing down a warmed-up package

  • Pre-purchase over-promising: exact date of unknown batch before FEFO picking

  • Post-purchase under-reaction: directing to email when the complaint window is 24 hours

2026 Agent Opportunity

Digiqt describes food supply chain agents capable of proposing substitutions with real-time shelf life and allergen data (Digiqt, food supply chain 2026). In DTC, the bot reads PERISH-POLICY (#313), Shopify metafields, and carrier tracking: it acts, not just informs.

Principle #314

FRESH-DISPLAY Matrix: each freshness data point = public PDP tier, authenticated post-purchase, or never customer-facing. The bot quotes the corpus, never its intuition.

How does it differ from After-Sales Service #313, traceability #312, and generic post-purchase?

Five neighboring pieces of content, five levels of automation.

Perishables support (#313)

Perishables support (#313): PERISH-INTENT, PERISH macros, human PERISH-CLAIM workflow. The #314 orchestrates the bot: routing intents, auto refund, contextualized delay notifications.

Bot traceability (#312)

Traceability (#312): batch lookup, recall, DPP. The #314 consumes trace_batch_order and trace_recall_check for freshness intents.

Automated post-purchase

Post-purchase: generic WISMO. The #314 replaces "in transit" with "refrigerated box, estimated freshness margin X h" (WISMOlabs 2026).

Returns bot (#10)

Returns bot: return label. The #314: refund without return spoilage via PERISH-CLAIM photo upload.

Product questions (#3)

Product questions: pre-purchase objections. The #314 adds cold classes, shelf life range, post-opening preservation.

Promise #314

PERISH-BOT-INTENT, FRESH-DISPLAY, prompt PERISH-BOT-01, delay/spoilage flows, guardrails, freshness bot KPI.

What PERISH-BOT-INTENT mapping should be used to route the freshness chatbot?

The PERISH-BOT-INTENT taxonomy maps the 16 #313 intents to executable bot actions.

12 high-priority bot intents

  • bot_perish_pre_fresh: shelf-life window upon receipt, PDP cold class

  • bot_perish_storage: storage, freezing, duration once opened

  • bot_perish_ddm_educate: explain best before date vs use-by date without medical advice

  • bot_perish_shipping_window: slots, zones, weekend restriction

  • bot_perish_delay_status: delay + freshness margin + next update

  • bot_perish_temp_alert: warm package reported → proof flow + refund/reship

  • bot_perish_dlc_order: auth → actual batch use-by date of the order

  • bot_perish_spoilage_claim: photoupload → PERISH-CLAIM auto

  • bot_perish_partial_refund: one damaged item in a multi-SKU cart

  • bot_perish_recall: delegates trace_recall_check #312

  • bot_perish_sub_fresh: delivery quality for recurring subscriptions

  • bot_perish_handoff: food poisoning, press, amount > threshold, 3rd claim in 90 days

Routing priority

bot_perish_recall and bot_perish_temp_alert > bot_perish_spoilage_claim > bot_perish_delay_status > bot_perish_pre_fresh. An active dispute intent blocks any proactive product suggestions.

Mapping chips → intent

"How fresh is it?" → bot_perish_pre_fresh. "Delayed package" → bot_perish_delay_status. "Damaged product" → bot_perish_spoilage_claim. "How to store it?" → bot_perish_storage. "Is my batch recalled?" → bot_perish_recall.

How to build the FRESH-DISPLAY matrix: public, auth, internal?

The FRESH-DISPLAY matrix defines what the bot displays depending on the session context, modeled after TRACE-DISPLAY (#312).

Tier A: public (PDP, anonymous visitor)

  • Product class: ambient / refrigerated / frozen / heat-sensitive

  • Shelflife (DLC) range upon receipt (e.g. minimum 5 days before DLC)

  • Closed storage instructions (temperature, consume within X days after opening)

  • Promised delivery window (D+1-D+2, no Sunday delivery)

  • Summary of complaints policy (24 hours, photo, no physical return)

Tier B: post-purchase auth (OTP or logged-in)

  • DLC/DDM of the batch shipped on order #{order}

  • Tracking status + calculated freshness margin in case of delay

  • Upload link for PERISH-CLAIM

  • Batch recall status if applicable (#312)

Tier C: never customer

  • Warehouse stock by batch, FEFO cost, internal QA notes

  • Raw IoT temperature without policy interpretation

INCO Regulation: DLC can be communicated at the latest upon delivery; the Tier A bot announces the range, Tier B the actual batch date (Economie.gouv, labeling 2026).

Which Shopify metafields and corpus feed the perishable bot?

The freshness bot corpus combines PERISH-POLICY (#313) and Shopify structured data.

Product Metafields

  • perish_class: ambient | refrigerated | frozen | ultra_fresh | heat_sensitive

  • min_dlc_days_ship: minimum days at reception

  • storage_closed_json: temp, duration, freezing yes/no

  • storage_open_json: duration after opening, container

  • shipping_zones_perish: authorized zip codes or regions

  • allergens_structured: 14 INCO allergens

Order Metafields

  • batch_dlc, batch_code per line item

  • packed_at, cold_pack_count

  • carrier_eta sync webhook

Corpus Pages

PERISH-POLICY Notion export, /pages/fraicheur-livraison, macros PERISH-001 to 010. Index via Shopify bot training. StoreAgent: bot reads catalog + policies for contextual F&B answers (StoreAgent 2026).

Weekly Corpus Sync Workflow

  1. Export perish_* metafields from Shopify

  2. Diff vs PERISH-POLICY Notion (DLC thresholds, claim windows)

  3. Re-index bot if > 5 SKU modified

  4. Test 5 bot_perish_storage questions on modified SKU

How to configure pre-purchase retention and delivery bot flows?

The pre-purchase bot flows resolve objections blocking the fresh shopping cart.

Flow bot_perish_pre_fresh

  1. PDP Context: SKU + perish_class

  2. Display min_dlc_days_ship + "exact date known after order preparation"

  3. Propose time slot or zone: bot_perish_shipping_window

  4. Allergen pill if cross-referenced with composition question

Flow bot_perish_storage

Read storage_closed_json + storage_open_json. Copy style: "Store between 0 and 4 °C. After opening, consume within 48 hours. Freezing not recommended." Never "safe" if outside the corpus.

Flow bot_perish_ddm_educate

Public Service: Use-by date (DLC) = health risk if exceeded; Best-before date (DDM) = indicative quality (Service Public, DLC/DDM 2026). Bot cites policy definition, handoff if customer describes symptoms.

PDP Chips

"What freshness upon receipt?", "How to store?", "Refrigerated delivery?", "What to do if package is delayed?". Carti: perishable shipping answers reduce pre-purchase abandonment (Carti 2026).

How to manage delivery delays and temperature alerts in conversation?

The delay flow bot replaces the generic WISMO with a product-oriented response.

flow bot_perish_delay_status

  1. Lookup order auth → line items perish_class

  2. Carrier API → delay hours vs packed_at

  3. Margin calculation: refrigerated +24 h = "estimated margin 12 h, monitor receipt before tomorrow 6 p.m."

  4. Offer reship or refund if delay > PERISH-POLICY threshold (#313)

  5. Schedule proactive update if carrier scan changes

flow bot_perish_temp_alert

Packaging + product + thermometer photos if provided. If frozen and ice melted → auto refund if < policy threshold. Otherwise handoff to QA. Wonderchat: immediate escalation if active excursion (Wonderchat, cold chain 2026).

Proactive trigger

Webhook carrier delay > 24 h on refrigerated order → bot message before customer ticket. WISMOlabs: clear communication reduces fear-based refunds (WISMOlabs 2026).

Example of bot freshness margin calculation

Refrigerated meal kit order, packed_at Monday 8 a.m., batch expiry date Thursday, carrier delay +26 h. Bot calculates: "Remaining margin approximately 22 h after estimated delivery Tuesday 10 a.m. If received after Tuesday 6 p.m., contact us for replacement." PERISH-POLICY thresholds (#313) trigger automatic reship if margin < 6 h.

How to structure PERISH-BOT-01, guardrails, and automated PERISH-CLAIM?

System block PERISH-BOT-01 350-450 words, extension bot instructions (#163).

Prompt blocks

  1. Role: freshness and delivery guide, not a dietitian or doctor

  2. FRESH-DISPLAY: Tier A/B/C section 4

  3. Corpus: PERISH-POLICY + metafields perish_* + macros PERISH

  4. Use-by date/Best-before date: French Public Service definitions, no edible claims outside the policy

  5. Delay: freshness margin + action, never vague reassurance

  6. Recall: redirect bot_perish_recall → #312 immediate

  7. Handoff: health symptoms, amount > threshold, 3 claims in 90 days

Bot prohibitions

Medical advice. Guaranteeing safety of lukewarm product without policy. Promising exact use-by date pre-purchase. Requesting physical return of spoiled food. Inventing allergen absent from INCO corpus.

Flow bot_perish_spoilage_claim

  1. Auth order + postal code

  2. Check PERISH-POLICY window

  3. Upload 3 photos (product, packaging, use-by date label)

  4. Lookup batch_dlc + carrier timeline

  5. Refund Shopify API if < auto threshold, otherwise handoff

  6. Macro PERISH-007: no physical return

Flow bot_perish_dlc_order post-auth: "Order #{order}, {product}: Best before {batch_dlc}." Integration traceability (#312) for recall.

Typical bot copy by intent

  • bot_perish_pre_fresh: "We ship this cheese with a minimum of 7 days before the 'Use-by' date. The exact date of your batch will be visible on the label received."

  • bot_perish_delay_status: "Your refrigerated package is delayed by 18 hours. Estimated freshness margin: 14 hours after delivery. Next update tomorrow at 9 AM."

  • bot_perish_spoilage_claim: "Send 3 photos within 24 hours. No need to return the product. Refund within 4 hours if eligible."

What bot settings by vertical: meal kits, cheese, pet food and chocolate?

The perishable bot adapts chips, thresholds, and copy according to the vertical.

Refrigerated meal kits

Intents: bot_perish_storage (D+0/D+1), bot_perish_partial_damage (punctured bag). Delay > 24 h: auto reship menu. Chips: "Can I eat it tomorrow?"

Cheese shop / delicatessen

bot_perish_dlc_order critical. ultra_fresh: handoff if DLC < min_dlc_days_ship. Cross-reference provenance (#311).

Fresh pet food

bot_perish_sub_fresh on subscription: compare batch quality 1 vs batch 3. Link subscription support.

Heat-sensitive chocolate

Summer: bot_perish_shipping_window blocks hot zones. bloom = standard partial refund via bot_perish_temp_alert.

Live flowers

bot_perish_delay_status SLA 12 h. storage_open = vase, water, room temperature. No food expiry date.

Certainly: grocery agent handles slots and allergen substitutions without a ticket (Certainly 2026).

Which KPIs should be measured for the perishable products bot?

Measure bot deflection and resolution quality, not message volume alone.

Monthly KPIs

  • perish_bot_deflection: PERISH-BOT intents resolved without human / total perishable intents

  • pre_purchase_fresh_cvr: post bot_perish_pre_fresh orders / freshness chip sessions

  • delay_proactive_rate: delays > 24 h contacted by bot before customer ticket

  • spoilage_auto_refund_rate: PERISH-CLAIM bot / spoilage claims

  • perish_handoff_rate: escalations / conversations (target < 15% if full corpus)

  • fresh_csat_bot: CSAT post perishable intents resolution

  • hallucination_audit_fail: sample QA review, out-of-corpus responses

Weekly Review

If perish_handoff_rate goes up on bot_perish_storage: enrich storage metafields. If delay_proactive_rate is low: activate carrier webhooks. Align KPIs with Chatbot KPIs (#11).

How does Qstomy deploy preservation, delivery, and PERISH-CLAIM in a bot?

Qstomy executes PERISH-BOT-INTENT, reads Shopify freshness metafields, and triggers refunds without returns when PERISH-POLICY allows it.

Capabilities

  • PDP freshness chips + bot_perish_pre_fresh routing

  • Contextualized carrier delay + calculated freshness margin

  • Spoilage upload + auto-refund configurable threshold

  • Batch shelf-life lookup post-auth + lien #312 recall

  • Batch case handoff + timeline for QA

  • Sync PERISH macros (#313) word-for-word

DTC Case Study in Numbers

DTC online cheese shop, 1,800 refrigerated orders/month. Before Qstomy: 420 freshness tickets/month, perish_bot_deflection 19%, pre_purchase_fresh_cvr chip 12%. After PERISH-BOT-01 + FRESH-DISPLAY + PERISH-CLAIM bot: tickets 240/month, deflection 68%, fresh_cvr chip 21%, mean_time_perish_resolution 2.1 h (vs 9 h human).

See AI support, sales agent, Shopify, demo.

Which playbooks to use to deploy the ephemeral bot in four weeks?

Playbook 1: freshness chat intents audit (4 h)

Export "DLC" (expiry date), "fresh", "lukewarm", "storage", "delay" conversations over 90 days. Map PERISH-BOT-INTENT section 3. Top 6 intents = priority flows.

Playbook 2: FRESH-DISPLAY + metafields (1 day)

Fill in Tier A/B/C section 4. Sync perish_class, min_dlc_days_ship, storage_* on fresh SKUs. Publish PERISH-POLICY corpus (#313).

Playbook 3: prompt PERISH-BOT-01 + guardrails (4 h)

Draft 7 blocks section 8. Test 30 questions including 10 trick questions (lukewarm parcel, expired DLC, symptoms). Zero hallucination_audit_fail.

Playbook 4: delay flows + PERISH-CLAIM (1 day)

Carrier webhook → bot_perish_delay_status. Photo upload + auto Shopify refund. Mystery shop spoilage: resolution < 5 min bot.

Playbook 5: PDP chips + vertical QA (3 h)

Activate 4 chips section 6 by vertical. Mobile test meal kit, cheese, summer chocolate.

Useful links

This week: open your chat and ask "What DLC upon receipt?" on a refrigerated SKU. If the response is generic, playbook 1 confirms that #314 is your bot priority.

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.