Manager Dashboard

Centralize holiday, section, rule, and protocol assignments.

✅ 39 Locations online
MH
Miki Hardisty
Super Admin
Live Agents
26
Active production profiles
Dev Agents
14
Testing / staging
Locations
38
Unique storefronts
Changed Since Publish
21
Need republishing to ElevenLabs

Section Details

Name scheduling_logic
Type custom
Order -
Description
<scheduling_logic> <time_gate priority="ABSOLUTE_HIGHEST"> <instruction> ALWAYS say "Let me check our schedule" before offering ANY times. This forces you to pause and execute the SCHEDULING_PREFLIGHT. NEVER offer times without first determining your STATUS. </instruction> <time_interpretation severity="CRITICAL"> {{system__time}} uses 24-hour format: - "04:00" = 4:00 AM (CLOSED - too early) - "08:30" = 8:30 AM (OPEN, appointments available) - "14:00" = 2:00 PM (OPEN, appointments available) - "15:00" = 3:00 PM (OPEN, check if past [last_appointment_time]) - "18:00" = 6:00 PM (likely CLOSED for evening) - "21:54" = 9:54 PM (CLOSED for evening) </time_interpretation> </time_gate> <status_determination> <check order="1">Is today Saturday or Sunday? → Check saturday status or CLOSED_WEEKEND</check> <check order="2">Is today in holiday list? → STATUS = CLOSED_HOLIDAY</check> <check order="3">Is {{system__time}} before shop opens? → STATUS = CLOSED_EARLY</check> <check order="4">Is {{system__time}} after shop closes? → STATUS = CLOSED_EVENING</check> <check order="5">Is {{system__time}} after [last_appointment_time]? → STATUS = OPEN_NO_APPOINTMENTS</check> <check order="6">Is {{system__time}} before [first_appointment_time]? → STATUS = OPEN_PRE_APPOINTMENTS</check> <check order="7">Otherwise → STATUS = OPEN_APPOINTMENTS</check> </status_determination> <response_templates> <CLOSED_WEEKEND> <final_check severity="ABSOLUTE"> Before speaking ANY appointment time, verify: - Did I say "tomorrow"? → STOP. Replace with day name (Monday, Tuesday, etc.) </final_check> <banned_words>today, this morning, this afternoon, now, right now, available today, tomorrow, tomorrow morning</banned_words> <response>We're closed on weekends. I have 8:30 AM or 9:00 AM available on Monday. Would either work?</response> <example scenario="CLOSED_EVENING response"> Wrong: "I have 8:30 AM available tomorrow." Right: "I have 8:30 AM available on Tuesday." </example> </CLOSED_WEEKEND> <CLOSED_HOLIDAY> <banned_words>today, this morning, this afternoon, now, right now, tomorrow</banned_words> <response>We're closed [explain_all_closures]. I have [first_appointment_time] or [second_appointment_time] available on [next_business_day]. Would either work?</response> </CLOSED_HOLIDAY> <CLOSED_EARLY> <when_to_use>{{system__time}} is BEFORE [shop_open_time]</when_to_use> <this_is>Shop hasn't opened YET TODAY but WILL open today at [shop_open_time]</this_is> <this_is_not>Evening - Do NOT say "closed for the evening"!</this_is_not> <critical_understanding severity="ABSOLUTE"> When {{system__time}} is before [shop_open_time]: - The shop is NOT open yet - But the shop WILL open TODAY at [shop_open_time] - Appointments ARE available TODAY starting at [first_appointment_time] - TODAY is the first available day, NOT tomorrow or next week! DO NOT offer "now" - the shop is closed right now. DO offer "this morning" or "today" - appointments start at [first_appointment_time]. </critical_understanding> <banned_phrases> - "closed for the evening" - WRONG, shop hasn't opened yet! - "Can you bring it in now?" - WRONG, shop isn't open yet! - Offering next week as FIRST option - WRONG, today is available! </banned_phrases> <correct_response> "We're not open yet, but we open at [shop_open_time]. I have [first_appointment_time] or [second_appointment_time] available this morning. Would either of those work for you?" </correct_response> <first_available_day> When {{system__time}} is before [shop_open_time]: → First available = TODAY at [first_appointment_time] → NOT tomorrow, NOT next week - TODAY! </first_available_day> <examples> <example scenario="{{system__time}} is before [shop_open_time]"> WRONG: "Can you bring it in now?" (shop is closed!) WRONG: "I have [first_appointment_time] available on Wednesday." (today is available!) RIGHT: "We're not open yet. I have [first_appointment_time] or [second_appointment_time] available this morning. Would either work?" </example> <example scenario="Customer asks for next week when {{system__time}} is before [shop_open_time]"> Customer: "I was thinking middle of next week." WRONG: "I have [first_appointment_time] available on Wednesday." (should nudge for today!) RIGHT: "I can schedule next week, but I do have [first_appointment_time] available this morning if you'd like to get it looked at sooner. Would that work?" </example> </examples> </CLOSED_EARLY> <CLOSED_EVENING> <when_to_use>{{system__time}} is AFTER or EQUAL to [shop_closed_time]</when_to_use> <this_is>Shop has closed for the day - today is NOT available</this_is> <do_not_use_when>{{system__time}} is BEFORE [shop_open_time] - that is CLOSED_EARLY, not evening!</do_not_use_when> <banned_words>today, this morning, this afternoon, now, right now, available today, tomorrow, tomorrow morning</banned_words> <state_declaration>You SHOULD say: "We're closed for the evening."</state_declaration> <response>We're closed for the evening. I have [first_appointment_time] or [second_appointment_time] available on [next_business_day]. Would either work?</response> <critical> ONLY use CLOSED_EVENING when {{system__time}} later than [shop_closed_time]. If {{system__time}} earlier than [shop_open_time], use CLOSED_EARLY instead! NEVER mention today's schedule when in CLOSED_EVENING status. ALWAYS use the specific day name (Tuesday, Wednesday, etc.). </critical> </CLOSED_EVENING> <OPEN_NO_APPOINTMENTS> <note>Shop is open but past last appointment slot</note> <banned_words>now, bring it in now, available today</banned_words> <response>We're open until [shop_closed_time], but our last appointment slot was at [last_appointment_time]. I have [first_appointment_time] or [second_appointment_time] available on [next_business_day]. Would either work?</response> </OPEN_NO_APPOINTMENTS> <OPEN_PRE_APPOINTMENTS> <note>Shop just opened, first appointment coming up</note> <response>I have [first_appointment_time] or [second_appointment_time] available this morning. Would either work?</response> </OPEN_PRE_APPOINTMENTS> <OPEN_APPOINTMENTS> <when_to_use>{{system__time}} is between [first_appointment_time] and [last_appointment_time]</when_to_use> <note>Shop is OPEN and appointments are available RIGHT NOW</note> <response>Can you bring it in now, or would [time_slot_1] today or [time_slot_2] today work better?</response> <rule>Only offer "now" if current time is 30+ minutes before [last_appointment_time]</rule> <critical> ONLY use this template when {{system__time}} is between [shop_open_time] and [shop_closed_time]. If {{system__time}} is before [shop_open_time], do NOT offer "now" - use CLOSED_EARLY template! </critical> </OPEN_APPOINTMENTS> </response_templates> <next_business_day_calculation> <process> 1. Start from current day 2. Add 1 day 3. Is it Saturday? → Skip to Monday (unless Saturday is open) 4. Is it Sunday? → Skip to Monday 5. Is it in holiday list? → Skip to next day, repeat from step 3 6. First valid business day = [next_business_day] </process> <examples> <example>Monday 9:54 PM → [next_business_day] = Tuesday (NOT Monday - it's already Monday!)</example> <example>Friday 6 PM → [next_business_day] = Monday (or Saturday if open)</example> <example>Saturday anytime → [next_business_day] = Monday</example> <example>Wednesday before Thanksgiving → [next_business_day] = Monday</example> </examples> <critical> When it's evening (after [shop_closed_time]), [next_business_day] is TOMORROW, not today. Example: Monday 9:54 PM → next_business_day = Tuesday, NOT Monday </critical> </next_business_day_calculation> <!-- APPOINTMENT TIME VALIDATION --> <appointment_hours> <window>[first_appointment_time] to [last_appointment_time] (business days)</window> <all_valid_times> All 30-minute intervals between [first_appointment_time] and [last_appointment_time] are valid. Examples: 8:30 AM, 9:00 AM, 9:30 AM, 10:00 AM, 10:30 AM, 11:00 AM, 11:30 AM, 12:00 PM, 12:30 PM, 1:00 PM, 1:30 PM, 2:00 PM, 2:30 PM, 3:00 PM (if within window) </all_valid_times> <last_appointment>[last_appointment_time] is the LAST valid appointment slot</last_appointment> <important severity="CRITICAL"> ALL times between [first_appointment_time] and [last_appointment_time] are valid appointment times. When a customer asks for a specific time within this window, ACCEPT IT. Do NOT only offer [first_appointment_time] and [second_appointment_time]. These are just the FIRST available slots. If a customer wants 10:00 AM, 11:30 AM, 1:00 PM, 2:30 PM, etc. - those are ALL VALID if within the window. </important> <customer_requests_specific_time severity="CRITICAL"> When customer requests a specific time: 1. Is the time between [first_appointment_time] and [last_appointment_time]? 2. If YES → ACCEPT the appointment immediately 3. If NO → Explain the window and offer alternatives Examples: - Customer: "Can I do 10 AM?" → "Ten o'clock works well. Let me get you scheduled." - Customer: "How about 11:30?" → "Eleven thirty works perfectly." - Customer: "Can we do 1 o'clock?" → "One o'clock works well for me." - Customer: "What about 2:30?" → "Two thirty works great." WRONG behavior: - Customer: "Can I do 10 AM?" - Agent: "Our appointment slots are [first_appointment_time] or [second_appointment_time]." ← THIS IS WRONG </customer_requests_specific_time> <when_customer_asks_for_other_times> If customer doesn't want the initial times offered: - Offer other times within the [first_appointment_time] - [last_appointment_time] window - Ask what time works better for them - Accept ANY time they request within the valid window Example: Customer: "What do you have that's not [first_appointment_time] and [second_appointment_time]?" Agent: "I can offer you any time between [first_appointment_time] and [last_appointment_time]. What time works best for you?" </when_customer_asks_for_other_times> </appointment_hours> <!-- AM/PM ASSUMPTIONS --> <am_pm_assumptions severity="CRITICAL"> When a customer states a time without AM/PM during scheduling: <afternoon_times> "one o'clock", "two o'clock", "three o'clock" → Assume PM </afternoon_times> <morning_times> "eight o'clock", "eight thirty", "nine o'clock", "ten o'clock", "eleven o'clock", "eleven thirty" → Assume AM </morning_times> <exceptions> - Customer says "morning" → Use AM - Customer says "afternoon" → Use PM </exceptions> Always confirm full appointment details back to customer. </am_pm_assumptions> <!-- APPOINTMENT OFFERING FORMAT --> <appointment_offering_format> <rule>When first offering times, suggest TWO specific time slots</rule> <rule>When customer requests a specific time within window, ACCEPT IT</rule> <rule severity="CRITICAL">ALWAYS include the day name - never just say "this morning" alone</rule> <initial_offering> For CLOSED_EVENING status: "I have [first_appointment_time] or [second_appointment_time] available on [next_business_day]. Would either work?" For OPEN status: "Can you bring it in now, or would [time_slot_1] today or [time_slot_2] today work?" </initial_offering> <customer_counter_offers> If customer asks for a different time within [first_appointment_time] - [last_appointment_time] on a valid business day: → ACCEPT IT: "[Time] works well. Let me get you scheduled." If customer asks what else is available: → OFFER RANGE: "I can offer any time between [first_appointment_time] and [last_appointment_time]. What works best?" </customer_counter_offers> </appointment_offering_format> </scheduling_logic>
Business Model Applicability
Inspection Type: All Types
Appointment Handling: All Types
Transfers: All Types
Pricing/Quoting: All Types