E-commerce
July 1, 2026
"The story has disappeared, the bot can no longer find the -20% offer." "The AI doesn't know which story campaign I saw." "The chatbot invents a compensatory code for an expired story." Three failures where a badly calibrated expired story bot leaves the customer without an offer or a source.
An e-commerce expired story link AI chatbot does not replace STORYLINK agents (#955). It reads STORYLINK-MAP, identifies story_campaign_ref utm_params, cites equivalent_offer_expired destination_url, and hands off proof of attribution to humans.
This guide #956 covers intents bot_storylink_*, flow STORYLINKBOT, and KPI storylink_bot. Bot pair of the STORYLINK playbook (#955). Usecase: retrieve original source offer from a past 24-hour story.
Summary
Why botify the expired recovery story?
"I missed the story yesterday, is the offer still valid?" often arrives 24-48 hours post-publication. A calibrated bot looks up STORYLINK-MAP by campaign date or mentioned utm_campaign, and returns equivalent_offer_expired story_campaign_ref without inventing codes or confirming clicks without proof.
What the bot resolves tier 1
Expired story detect: story 24 hours past, offer requested
Source origin: story_campaign_ref utm_params map
Substitute offer: grounded equivalent_offer_expired
Live destination: destination_url still active
Attribution window: attribution_window_hours mentioned if order_ref
The bot intercepts bot_storylink_expired_detect before agent compensatory code or dead end without alternative.
STORYLINKBOT #956 vs STORYLINK #955, BROKLINKbot #946, EXPIADbot #930, FOLLEXbot #952 and HIGHLIGHT
Seven social bot story contents, seven distinct roles.
Quick Matrix
#956 STORYLINKBOT: tier 1 bot expired story offer source origin recovery
STORYLINK #955: agents proof attribution UTM ops execute
BROKLINKbot #946: 404 dead link distinct expired story live offer
EXPIADbot #930: expired Meta Google ad distinct organic story
FOLLEXbot #952: follow subscribers offer distinct sticker story UTM
INFLMISbot #950: creator promise collab story distinct brand offer
Archived Highlight: story still clickable → OFFER-01 #955 if active
Pipeline: bot expired source offer cite → #955 proof attribution handoff execute. URL 404 → BROKLINKbot #946.
Which bot_storylink_* intents should be configured?
Eight expired bot story intents mapped to typologies #955.
Eight bot_storylink intents
bot_storylink_expired_detect: detect past story for requested offer
bot_storylink_campaign_lookup: STORYLINK-MAP story_campaign_ref match
bot_storylink_source_recover: utm_params story_campaign_ref reference
bot_storylink_equivalent_offer: equivalent_offer_expired map grounded
bot_storylink_destination_link: destination_url live reference
bot_storylink_offer_window: attribution_window_hours story_offer status
bot_storylink_proof_collect: eligible_proof_fields if window active
bot_storylink_handoff: attribution dispute → #955
Tier 1 auto: expired_detect, campaign_lookup, source_recover, equivalent_offer, destination_link if campaign or date + STORYLINK-MAP + guardrails.
bot_storylink_handoff, proof dispute, bridge action → agents #955 payload storylink_id.
How should STORYLINK-MAP #955 be consumed?
The bot reads STORYLINK-MAP #955: storylink_id, story_campaign_ref, utm_params, destination_url, story_offer, attribution_window_hours, eligible_proof_fields, equivalent_offer_expired, expiry_date, agent_handoff_url.
Lookup grounded
Campaign lookup: flash_juin story date → STORYLINK-MAP row
UTM match: utm_campaign param → story row
OFFER-GROUNDED-BOT: equivalent_offer_expired map only
SOURCE-RECOVER-GATE: story_campaign_ref utm always cites
NO-ATTRIBUTION-GUESS-BOT: do not confirm click without proof of order UTM
Widget entry: “I missed the story” + optional date field or campaign name.
STORYLINKBOT-SUP policy in six rules
Six bot rules safe expired story.
STORY-REGISTRY-GATE: lookup STORYLINK-MAP before offer recovery
SOURCE-RECOVER-GATE: cite story_campaign_ref utm_params map
OFFER-GROUNDED-BOT: equivalent_offer_expired map only
NO-CODE-ISSUE-BOT: bot does not issue or replace story_offer
NO-ATTRIBUTION-GUESS-BOT: proof_collect before confirm click
BROKLINK-REROUTE-BOT: destination 404 → BROKLINKbot #946
Flow STORYLINKBOT SLB-1 to SLB-8
Eight-step flow: ingest detect lookup source offer reroute handoff log.
SLB-1 Ingest: expired story message missed offer yesterday flash
SLB-2 Expired detect: bot_storylink_expired_detect citation
SLB-3 Campaign lookup: STORY-REGISTRY-GATE date utm_campaign
SLB-4 Source recover: story_campaign_ref utm_params cite
SLB-5 Tier 1 answer: equivalent_offer destination_link offer_window
SLB-6 Reroute: BROKLINKbot #946 EXPIADbot #930 FOLLEXbot #952
SLB-7 Handoff: proof attribution dispute → agent #955
SLB-8 Log: deflect source_recover handoff KPI
TPL-STORYLINK-EXPIRED Example
“Story {{story_campaign_ref}} expired. Source: {{utm_params map}}. Current offer: {{equivalent_offer_expired}}. Access: {{destination_url}}.”
TPL-STORYLINK templates and touchpoints
Four short expired story embed mobile widget templates.
TPL-STORYLINK-EXPIRED
[story_campaign_ref map.] [equivalent_offer_expired map.] [destination_url.] OFFER-GROUNDED.
TPL-STORYLINK-SOURCE
[utm_params map.] Campaign: [story_campaign_ref.] SOURCE-RECOVER.
TPL-STORYLINK-WINDOW
[attribution_window_hours map.] [story_offer status.] [eligible_proof_fields if active.]
TPL-STORYLINK-HANDOFF
[agent_handoff_url.] Request [proof / attribution] transmitted. Story [storylink_id]. Delay [handoff_sla].
Touchpoints
“I missed the story”: expired_detect + campaign_lookup
&dots;Which offer yesterday?”: equivalent_offer + source_recover
Referral utm_medium=story: auto entry campaign_lookup
Order_ref + window: offer_window + proof_collect
Edge cases: active highlight, creator collab, dead link, ads boost
Five cases outside tier 1 standard expired bot story.
Highlight still live: active story_offer → OFFER-01 flow #955 not expired only
Creator collab story: lookup row collab INFLMIS reroute if promise ≠ file
404 Destination: reroute BROKLINKbot #946
Paid boosted story: reroute EXPIADbot #930 if UTM ads
Proof out of window: equivalent_offer only, handoff #955 if marketing bridge
Bot does not recreate story: handoff #955 storylink_ops_flag if destination UTMs are inconsistent.
Essential storylink_bot KPIs
Five STORYLINKBOT steering metrics and correlation #955.
storylink_bot_deflect: expired stories clarified without a storylink_ ticket
storylink_bot_source_recover_rate: % of identified story_campaign_ref sessions
storylink_bot_equivalent_offer_rate: % of substitute offer provided sessions
storylink_bot_handoff_rate: % of attribution proofs routed #955
storylink_bot_code_issue_violation: compensatory codes issued target 0
Target: code_issue_violation at zero and source_recover above 80% post sync STORYLINK-MAP D-0.
STORYLINKBOT anti-patterns
Five common expired story bot errors.
Compensatory code: NO-CODE-ISSUE-BOT mandatory
Confirming click without proof: NO-ATTRIBUTION-GUESS proof first
Invented offer: OFFER-GROUNDED equivalent_offer_expired only
Ignoring original source: SOURCE-RECOVER utm_campaign cite
Duplicating BROKLINKbot #946: #956 expired story offer recovery, not 404 alone
STORYLINKBOT with Qstomy
Qstomy on Shopify: detect bot_storylink intent, STORYLINK-MAP RAG grounded, templates EXPIRED SOURCE WINDOW, handoff #955 proof payload storylink_id.
Pipeline: #956 bot source offer recover → #955 proof attribution execute.
Scenario: DTC mode 2 stories/week. Registry D-0 sync. storylink_bot_deflect +51%, code_issue_violation 0.
Explore AI support and request a demo.
Checklist, FAQ and going further
STORYLINKBOT Checklist (8 steps)
Sync STORYLINK-MAP #955: RAG bot + equivalent_offer_expired
Policy STORYLINKBOT-SUP: 6 SOURCE-RECOVER OFFER-GROUNDED rules
8 intents bot_storylink_*: flow SLB-1 to SLB-8
4 templates TPL-STORYLINK-*: EXPIRED SOURCE WINDOW HANDOFF
Entry "missed story": expired_detect chip widget
attribution_window: documented sync go-live story
Red team 10 prompts: compensatory code invented attribution
Dashboard KPI: storylink_bot_* section 9
FAQ
Difference #955?
#955 = agents proof UTM ops attribution. #956 = bot tier 1 expired story recovery widget.
Does the bot issue a story code?
No. NO-CODE-ISSUE-BOT. equivalent_offer_expired map only.
Difference BROKLINKbot #946?
#946 = dead 404 URL. #956 = disappeared story source recovery offer.
Difference EXPIADbot #930?
#930 = expired paid ad. #956 = organic brand Instagram story.
Going further
This week: sync STORYLINK-MAP #955, missed story chip entry, EXPIRED SOURCE templates, measure storylink_bot_deflect.

Enzo
July 1, 2026





