E-commerce
July 1, 2026
"Are you open on Sundays?" "I wrote at 10 PM, why is no one replying?" "Monday is a public holiday, is support working?" Three simple questions where the customer is looking for an immediate answer regarding support hours and availability, not about their order.
An e-commerce support hours AI chatbot does not replace the RESP-COMM policy or the weekend #403 organization. It reads business hours, holiday calendars, and agent queue status, explains 24/7 bot vs. human, calculates the next open slot, and collects offline messages if needed.
This guide #402 covers bot_hours_* intents, the HOURS-BOT flow, AI guardrails, and hours_bot KPIs. It differs from RESP-COMM agents (#401) (response time communication, macros) and the upcoming weekend #403: here, AI use cases for hours, holidays, and agent availability in 24/7 chat.
Summary
Why deploy an AI bot/virtual assistant during support hours?
Support hours questions via chat often arrive outside of business hours, when no agent is online. Without a calibrated bot, four failures commonly occur.
Four failures without an hours bot
Offline silence: chat open with no message, customer leaves
24/7 human promise: bot says "agent available" at midnight
Holiday ignored: LLM mentions working Monday even though it is a French public holiday
Incomplete offline ticket: message left without email/order_id
HubSpot estimates that 90% of customers expect an immediate response to chat (HubSpot, customer service 2026). Zendesk reminds us that 69% of customers prefer to resolve issues on their own if self-service is clear (Zendesk, customer service stats 2026).
Angle #402 vs related content
#401 RESP-COMM agents: RESP-OFF macros, touchpoints. #402 automates bot hours 24/7.
#101 Internal SLA: FRT grid, Gorgias business hours. #402 = grounded calendar customer explanation.
#403 Weekend ops: future organization of out-of-hours coverage. #402 = bot informs and collects offline.
#184 WISMO bot: 24/7 tracking. #402 = support availability meta, not order.
Handoff #handoff: agent queue. #402 upstream: human open or closed?
DTC Example
Cosmetics brand, support Mon-Fri 9am-6pm, 62 hours tickets/month including 71% out of hours. After HOURS-BOT: hours_bot_resolution 88%, offline_abandon_rate -54%, resp_wait_off_hours -41%.
Responsible AI Principle
The bot reads grounded calendar, distinguishes bot vs human. It does not promise live agent if queue is closed, nor does it make up business hours.
Hours intent volume
4% to 9% of chat sessions include an hours question or arrive outside of business hours. T2 proactive greeting captures 50%+ before abandonment.
How does HOURS-BOT differ from RESP-COMM #401 and weekend #403?
The business hours bot and the RESP-COMM agents process complement each other in a pipeline.
#402 bot: upstream (seconds 0-30)
Detect intent bot_hours_* vs business request
Lookup calendar: business hours, holidays, timezone
Classify: open | closed | holiday | peak reduced
Calculate next_open_at grounded in store timezone
Explain bot 24/7 vs human, offer WISMO/bot recovery
Collect offline message + email if closed
#401 agents: resp_wait tickets post-contact
RESP-OFF-01: agent macro if offline ticket is poorly routed
RESP-MISS: confirmed sla_miss
Escalation: supervisor if chargeback threat
#403 ops: coverage organization
Weekend staffing, BPO, bot-only at night. The #402 executes business hours policy in chat, #403 defines who covers when.
Structured offline handoff
Ticket: email, order_id optional, intent detected, transcript, next_open_at, bot_hours_type, offline_message. Agent resumes next day in priority queue.
What the bot does not do
Does not open human queue API. Does not promise immediate human response if closed. Does not modify business hours.
Which bot_hours_* intents should the chatbot detect?
Twelve support hours bot intents cover availability questions.
Twelve bot_hours intents
bot_hours_open_now: "are you open?" now
bot_hours_schedule: general weekly hours
bot_hours_weekend: Saturday, Sunday open?
bot_hours_holiday: specific holiday (Christmas, May 1st)
bot_hours_closed_message: customer writes outside of hours, what to do
bot_hours_agent_available: human agent now?
bot_hours_response_time_off_hours: response delay if messaging now
bot_hours_timezone: reference timezone
bot_hours_peak_reduced: reduced hours BFCM/Christmas
bot_hours_phone_vs_chat: phone vs chat hours
bot_hours_leave_offline: leave a message, callback
bot_hours_bot_vs_human: bot 24/7 vs human team
Trigger Signals
open, hours, available, agent, closed, weekend, holiday, midnight
Widget offline trigger: chat opened outside business hours
Proactive greeting if closed: bot_hours_closed_message auto
Conversation Tags
hours_bot_detected, hours_bot_open, hours_bot_closed, hours_bot_holiday, hours_bot_offline_collected, hours_bot_reroute_wismo, hours_bot_handoff_open.
Reroute Business Requests
WISMO/return intent detected after hours answer → bot #184/#returns 24/7. Do not force waiting for a human if the bot solves it.
Which HOURS-BOT conversational flow should be configured?
The HOURS-BOT flow guides availability in 8 steps HB-1 to HB-8.
Sequence bot_hours_open_now
HB-1 Welcome: "AI Assistant [Brand]. I am checking our hours."
HB-2 Lookup calendar: now, timezone, business_hours, holiday_flag
HB-3 Classifier: open | closed | holiday | peak_reduced
HB-4 Calculate next_open: timestamp of the next agent slot
HB-5 Explain: template HOURS grounded HB-2 data
HB-6 Offer bot: WISMO, return, FAQ if business request
HB-7 Offline collect: email + message if closed + human need
HB-8 Close or handoff: offline ticket or live agent if open + queue OK
Branch bot_hours_closed_message
"Human team returning {{next_open}} (Paris time). I am available 24/7 for order tracking and returns. Would you like me to help you now or leave a message?"
Branch bot_hours_holiday
Read holiday_calendar: "Monday, May 1st: support closed. Reopening Tuesday at 9 AM. Bot active for order tracking."
Branch bot_hours_agent_available open
Check queue agents_online > 0: live handoff or queue ETA. If open but queue is full: ETA + bot continues tier 0.
Flow Forbidden
Never "an agent is answering you now" if closed. Never invented hours. Never ignore calendar holiday.
Template HB-5 open
"Yes, our team is available until 6 PM (Paris). Bot active 24/7. An agent can join you now if needed."
What can and cannot the schedule bot do?
The authorized vs prohibited hours bot matrix protects customer expectations.
Bot authorized actions
Read grounded business_hours + holiday_calendar
Calculate next_open_at in store timezone
Explain bot 24/7 vs human Mon-Fri 9am-6pm
Communicate peak_reduced hours if banner is active
Collect offline message + email + optional order_id
Reroute WISMO #184, return, shipping FAQ bot 24/7
Handoff to live agent if open + agents_online
Cite "Paris time" timezone explicitly
Bot prohibited actions
Promise immediate human agent if closed
Invent hours or holidays
Modify business hours settings
Open human queue with forced API
Promise phone callback without policy
Ignore client timezone without specifying reference
Gray zone: open but zero agents
Calendar open + agents_online 0: "Team temporarily unavailable. Bot active. Offline message or retry 15 min." Do not say "agents available".
System prompt
"Source of truth = business_hours JSON + holiday_calendar. Never promise human if closed. Bot available 24/7 for tier 0 intents."
How to connect the calendar, Gorgias, and time zone to the bot?
The support hours bot integration requires deterministic calendar data.
Calendar sources
Gorgias business_hours: Mon-Fri 9-18, sync HB-2
Metafield shop holiday_calendar: JSON of closed dates FR/EU
Metafield shop support_timezone: Europe/Paris default
Metafield shop peak_hours_override: BFCM reduced
Agents online count: Gorgias API or helpdesk webhook
Gorgias business hours documentation (Gorgias, business hours 2026).
Algorithm next_open HB-4
Deterministic: now + timezone → check today hours → if closed skip to next business day → skip holidays in calendar → return timestamp + formatted string "Tuesday 9 a.m.".
Holiday calendar maintenance
Ops updates holiday_calendar 1×/year (FR) + US/UK Markets if international. November review for Christmas/New Year.
Widget offline mode
Chat widget: if HB-3 closed → proactive HB-5 greeting before client types. Reduces offline_abandon by 40-55%.
Multilingual Markets
HB-5 templates EN/FR according to market. Distinct US team hours if 3PL US support.
Calendar JSON example
holiday_calendar: ["2026-01-01","2026-05-01","2026-12-25"]. HB-4 skip these dates in next_open calc.
How to collect offline messages and agent handoff?
The offline message bot transforms closed hours into a qualified D+1 ticket.
Flow HB-7 offline collect
Ask for email (mandatory)
Ask for order_id (optional, speeds up processing)
Summarize detected intent from transcript
Confirm next_open_at + ticket # created
Send confirmation email RESP-ACK style #401
Handoff live HB-8 if open
agents_online > 0: transfer to Gorgias live chat
queue ETA > 5 min: bot continues + notify when agent joins
VIP tag: priority queue even if ETA
Minimum offline ticket
email, message, order_id, bot_hours_type, next_open_at, transcript, intent_summary, channel chat, created_at_off_hours.
SLA offline ticket
First agent response first business hour + 2h. Tag offline_priority. Align RESP-COMM #401 FRT email.
Anti-spam offline
Rate limit 1 offline ticket/email/24h. Duplicate detect same session.
Which triggers and widget placements for HOURS-BOT?
The operating hours bot deployment maximizes offline capture and wait time clarity.
Five HOURS-BOT triggers
T1 Incoming message: open, hours, available, closed
T2 Widget open closed hours: proactive greeting HB-5
T3 Page /contact visit: "Check if support open"
T4 Handoff blocked: agent unavailable → hours explain
T5 Holiday banner site: "Support closed today?"
Widget copy closed
Header: "Bot available · Team back {{next_open}}". Not "Chat with us" without specifying human.
Router upstream
Every chat session: HB-2 check before human handoff offer. Closed → HOURS-BOT before generic bot. Open → normal intent router.
Email footer
"Support Mon-Fri 9am-6pm Paris · Bot chat 24/7" widget link.
A/B test
T2 proactive closed greeting vs passive. Measure offline_collect_rate and abandonment.
Contact page integration
Live badge "Open now" / "Closed · Bot available" sync HB-2 API. Consistency between widget and page.
Which hours_bot KPIs should be measured?
Support hours bot KPIs link offline automation and resp_wait.
Eight key metrics
hours_bot_resolution_rate: resolved without human handoff / hours sessions
offline_collect_rate: % of closed sessions with offline ticket created
offline_abandon_rate: closed sessions without message / total closed
hours_false_agent_promise: closed human promise incidents (target 0)
resp_wait_off_hours_delta: decrease in resp_wait tickets off-hours
hours_bot_reroute_wismo: % tier 0 reroute vs human wait
offline_first_response_sla: FRT offline tickets D+1
hours_bot_csat: satisfaction post HB-5
DTC Benchmark
hours_bot_resolution 85-92 %, offline_collect 45-60 %, false_agent_promise 0, offline_abandon < 25 %, resp_wait_off_hours -35-50 %.
Weekly Dashboard
Sessions by HB-3 status open/closed/holiday, top intents bot_hours_*, offline ticket volume vs business hour tickets.
Incident alert
hours_false_agent_promise > 0: pause LLM HB-5, review calendar sync 24 h.
Hours bot ROI
62 hours sessions/month x 3 min agent if poorly routed = 3 h/month saved. Offline collect prevents silent customer loss.
Which edge cases and anti-patterns should be avoided?
Ten bot schedule edge cases and playbook responses.
1. Bot promises agent at midnight
Critical incident. Hard block if HB-3 is closed.
2. Public holiday missing from calendar
Customer quotes "you said open". Review quarterly calendar.
3. Open calendar but team in a meeting
agents_online 0: gray zone message section 5.
4. US time zone customer, Paris store
Always display "Paris time" + optional conversion.
5. Business request ignored for hours only
HB-6 reroutes WISMO before offline if bot resolves.
6. Offline without email
HB-7 email mandatory. No anonymous tickets.
7. Peak BFCM reduced hours forgotten
Read peak_hours_override metafield.
8. Phone hours ≠ chat hours
bot_hours_phone_vs_chat distinct intent. Two calendars if needed.
9. LLM invents "open Saturday"
Guardrail: only calendar JSON in HB-5.
10. Double offline ticket + customer email
Merge rules Gorgias same email 24 h.
Anti-patterns
"Chat with us" widget without closed status
Holiday calendar not maintained
No proactive greeting T2 closed
How does Qstomy inform about support hours?
Qstomy on Shopify: HOURS-BOT with Gorgias calendar sync, next_open calc, proactive offline greeting, offline ticket collect, 24/7 WISMO reroute, live handoff if agents are online.
Qstomy HOURS-BOT Capabilities
hours_calendar_sync: business_hours + holidays
hours_next_open_calc: deterministic HB-4
hours_proactive_greeting: T2 closed widget
hours_offline_collect: HB-7 ticket D+1
hours_no_agent_promise: hard block closed
hours_reroute_tier0: WISMO/bot return 24/7
hours_live_handoff: agents_online check
Complement #401 and Future #403
RESP-COMM #401 offline agent macros. Qstomy HOURS-BOT automates HB-1 to HB-7. Roadmap #403 weekend staffing informs peak_hours_override.
Quantified DTC Scenario
Cosmetics, Mon-Fri 9am-6pm, 62 hours intents/month, 71% off-hours.
After Qstomy HOURS-BOT: hours_bot_resolution 90%, offline_collect 58%, hours_false_agent_promise 0, resp_wait_off_hours -44%, hours_bot_csat 4.4/5.
Explore customer support and request a demo.
What is the checklist for deploying HOURS-BOT?
HOURS-BOT Checklist (12 steps)
Document Gorgias business_hours + shop timezone
Create FR holiday_calendar metafield (+ Markets if needed)
Configure 12 intents bot_hours_* section 3
Draft templates HB-1 to HB-8 open/closed/holiday
Implement deterministic HB-4 next_open algorithm
Activate guardrails no_agent_promise closed
Configure proactive greeting T2 widget closed
Flow HB-7 offline collect + email confirmation
Integrate reroute WISMO #184, bot back 24/7
Align RESP-COMM #401 offline SLA D+1
Staging tests: open, closed 10 pm, holiday, peak reduced
Weekly hours_bot KPI HTML dashboard
In brief
#402 = business hours and availability bot, not RESP-COMM agents (#401)
HOURS-BOT: calendar → next_open → explain → offline or live
Bot 24/7 vs human: explicit distinction HB-5
Offline collect: qualified ticket D+1 priority
KPI hours_bot_resolution: target 85-92%
FAQ
Difference with #401?
#401 communications regarding response times and agent macros resp_wait. #402 bot automation hours HB-1 to HB-7.
Difference with #403 weekend?
#403 ops coverage organization. #402 executes business hours policy in chat.
Does the bot replace agents at night?
Bot tier 0 WISMO/FAQ yes. Disputes, refund, exceptions: offline ticket D+1.
How to handle holidays?
holiday_calendar metafield + HB-3 classifier. Annual ops review.
Relationship SLA #101?
#101 defines ops business hours. #402 communicates them to customers based on the calendar.
Go further
Test on staging: open the chat on a Sunday at 10 pm, verify HB-5 next_open is mentioned, zero live agent promise, and offline collect is working.
Share this #402 guide with support and ops: a well-calibrated business hours bot turns closed hours into self-service, not into silence.

Enzo
July 1, 2026





