E-commerce
July 1, 2026
Client opens the chat after a flash push. "I saw -30% but I can't find the offer anymore." "PUSH20 doesn't work." The bot quotes a generic promo. Ticket pushprom_code_fail.
A push promotional e-commerce AI chatbot reads the campaign registry, retrieves the offer seen code conditions deep link from PUSHPROM-MAP #927, deflects the tier 1 spike, and hands off to an agent if there is a massive pattern.
This guide #928 covers intents bot_pushprom_*, flow PUSHPROMBOT PPB-1 to PPB-8, and guardrails PUSH-REGISTRY-GATE. Bot pair of the playbook PUSHPROM (#927). Usecase: retrieve push offer code expiration widget.
Summary
Why botify the recovery of push offers?
The customer closes the push notification in 3 seconds. At checkout, they can no longer find the promo code or conditions. Without a campaign registry, the bot improvises and creates pushprom_* tickets. PUSH-REGISTRY-GATE aligns widget and agents #927.
What the tier 1 promo push bot resolves
Find offer: offer_copy as seen in the notification
Promo code: value, conditions, expiration
Flash offer: end time, active timezone, or expired
Deep link: corrected app or web URL
Promo opt-out: route #835 without cutting off transactional messages
DTC retail example
Food DTC, 8k push. Bot syncs with registry at D-1. pushprom_bot_deflect +46%, pushprom_code_fail_rate -42% over 4 weeks.
PUSHPROMBOT #928 vs PUSHPROM #927, PUSHNOTIF #836, SMSCAM #926 and NOFFER #924
Seven push bot contents, seven distinct roles.
Quick matrix
#928 PUSHPROMBOT: tier 1 bot find push offer code expiration widget
PUSHPROM #927: ops agents pic macros PP-4
PUSHNOTIF #836: opt-in troubleshooting distinct push flash promo
SMSCAM #926: distinct promo SMS bot push channel
NOFFER #924: distinct email newsletter bot push
STACK #870: stackable codes distinct push code
AGENTWAIT #919: agent waiting ETA spike push
Pipeline: post-push client → #928 offer code deep link tier 1 → handoff #927 if massive ops flag.
Which bot_pushprom_* intents should be configured?
Eight push promo intents mapped PUSHPROM-MAP #927.
Eight bot_pushprom intents
bot_pushprom_campaign_detect: detect active push campaign flash window
bot_pushprom_offer_recover: retrieve offer_copy notification view
bot_pushprom_code_answer: code value conditions expiration
bot_pushprom_expiry_answer: end time flash client timezone
bot_pushprom_deeplink_answer: deep link app web landing PDP
bot_pushprom_stack_check: stacking push code vs other
bot_pushprom_optout_route: opt-out promo route #835 #927
bot_pushprom_feed_loop: consume LOG #927 campaign_copy
Each response logs campaign_id intent pushprom_* deflect_or_handoff.
How to consume PUSHPROM-MAP #927?
The bot reads PUSHPROM-MAP #927 + bot fields: campaign_id, offer_copy, code_promo, exclusions, expiration_date, flash_end_time, timezone_ref, deep_link_app, deep_link_web, stack_rules, optout_promo_url, pic_window, agent_handoff_url.
Push promo bot guardrails
PUSH-REGISTRY-GATE: code link offer from push-only registry
OFFER-RECOVER-BOT: offer_copy map exact notification sent
CODE-GROUNDED-BOT: do not invent code without registry
EXPIRY-GROUNDED-BOT: flash end time map timezone
DEEPLINK-GROUNDED-BOT: app or web mobile tested
OPTOUT-REROUTE-BOT: promo only → #835 if device
OPS-ESCALATE-BOT: 3+ code fail session → handoff #927
PUSHPROM-FEED-LOOP-BOT: LOG #927 enriches campaign_copy widget
PUSHPROMBOT-SUP policy in six rules
Six responsible push promo rules on the widget side.
PUSH-REGISTRY-GATE: registry lookup before offer response
CAMPAIGN-DETECT-BOT: active flash window before tier 1
OFFER-RECOVER-BOT: recover offer_copy active campaign
EXPIRY-GROUNDED-BOT: end time mentioned if flash
OPTOUT-REROUTE-BOT: promo only never cut auto txn
PUSHPROM-FEED-LOOP-BOT: LOG #927 widget review within 48 hours
PUSHPROMBOT Flow PPB-1 to PPB-8
Eight-step flow: incoming message detect campaign recover offer answer expiry log handoff.
PPB-1 Ingest: message push offer code deep link expiration
PPB-2 Campaign detect: CAMPAIGN-DETECT active flash window
PPB-3 Classify: pushprom_* vs pushnotif #836 vs stack #870
PPB-4 Registry gate: PUSH-REGISTRY-GATE campaign lookup
PPB-5 Tier 1 answer: offer_recover code expiry deeplink
PPB-6 Ops escalate: massive pattern agent handoff #927
PPB-7 Feed loop: LOG #927 adjusts campaign_copy
PPB-8 Log: deflect offer_recover code_fail optout_route
Example TPL-PUSHPROM-OFFER
“Push offer: {{offer_copy}}. Code: {{code_promo}}. Valid until {{expiration_date}}.”
TPL-PUSHPROM templates and touchpoints
Four short push promo embed templates.
TPL-PUSHPROM-OFFER
[offer_copy map.] [exclusions map.] OFFER-RECOVER.
TPL-PUSHPROM-CODE
[code_promo map.] [offer_copy map.] [expiration_date.] CODE-GROUNDED.
TPL-PUSHPROM-EXPIRY
[flash_end_time map.] [timezone_ref.] Active or expired offer. EXPIRY-GROUNDED.
TPL-PUSHPROM-DEEPLINK
[deep_link_app web map.] Mobile link tested. DEEPLINK-GROUNDED.
Touchpoints
"I saw an offer": offer_recover + code_answer
"Code does not work": code_answer + stack_check
Deep link 404: deeplink_answer corrected url
LOG PUSHPROM #927: feed_loop campaign_copy
Edge cases: multiple offers, missing app, promo opt-out
Five cases outside the standard flow.
Two pushes on the same day: campaign_detect reads the most recent active campaign
App not installed: deeplink_answer proposes deep_link_web
Offer expired: EXPIRY-GROUNDED end time + next offer
Promo opt-out only: OPTOUT-REROUTE #927 macro, not #836 permission
pushprom_ ticket despite bot: feed_loop review campaign gaps
Essential pushprom_bot KPIs
Five PUSHPROMBOT monitoring metrics and correlation #927.
pushprom_bot_deflect: push offers resolved without a pushprom_ ticket
pushprom_bot_offer_recover_rate: % of sessions with offer_copy retrieved
pushprom_bot_code_accuracy: % of cited codes aligned with registry
pushprom_bot_expiry_cited: % of flash with cited end time
pushprom_bot_registry_stale: registry stale responses, target 0
Target: offer_recover_rate above 90% and registry_stale at zero.
PUSHPROMBOT anti-patterns
Five common promo push bot errors.
Generic promo: OFFER-RECOVER registry active campaign
Invented code: CODE-GROUNDED registry only
Ignoring expiration: EXPIRY-GROUNDED flash mandatory
Cutting all push: OPTOUT-REROUTE promo only txn retained
Duplicating #836: #928 offer code expiration only
PUSHPROMBOT with Qstomy
Qstomy on Shopify: PUSHPROM-MAP sync #927, OneSignal Klaviyo push registry, OFFER CODE DEEPLINK templates, ops escalate handoff agent, KPI pushprom_bot dashboard.
Scenario: DTC food, push 8k. Pre-send sync D-1, bot tier 1 offer. pushprom_bot_deflect +46%, pushprom_ tickets -37% in 4 weeks.
Explore AI support and request a demo.
Checklist, FAQ and going further
Checklist PUSHPROMBOT (8 steps)
Sync PUSHPROM-MAP #927: offer code deep link flash optout
Policy PUSHPROMBOT-SUP: 6 REGISTRY-GATE OFFER-RECOVER rules
8 intents bot_pushprom_*: flow PPB-1 to PPB-8
4 templates TPL-PUSHPROM-*: OFFER CODE EXPIRY DEEPLINK
campaign_detect: active pre-send flash window
deep_link_app web: fallback without app installed
Red team push: offer recover code expiry deeplink test
Dashboard KPI: pushprom_bot_* section 9 + pushprom_ delta
FAQ
Difference #927?
#927 = agents ops peak macros staffing. #928 = bot tier 1 retrieve push offer widget.
Difference #836?
#836 = opt-in troubleshooting push permission. #928 = post-send promo code offer.
Difference #926?
#926 = SMS promo bot. #928 = mobile push deep link bot.
Client does not mention the code?
offer_recover from the most recent CAMPAIGN-DETECT active campaign.
Going further
This week: sync PUSHPROM-MAP #927, offer_recover intent, CODE DEEPLINK templates, measure pushprom_bot_deflect.

Enzo
July 1, 2026





