Workflows/ After-hours booking
SHADOW · 12 RUNS

After-hours booking

v2.4 · LIVE· EDITED 24 MIN AGO· 478 RUNS · 30D
Flow
Tools
Guardrails
Test
Runs
Versions
/ 01 · TRIGGER
Inbound call
Number(312) 555-0140
Whenoutside_hours || busy
LanguageEN · ES auto-detect
ON RING
/ 02 · CONTEXT
Load caller context
Caller historylast 5 visits, LTV
Calendarnext 72h, holds, capacity
Business rulespricing, hours, scope
CONTEXT READY
/ 03 · AGENT
Qualify & book
Greet as Mike's Auto. Identify the service needed. Propose two open slots. Book on confirmation. Max 12 turns.
calendar.propose_slots calendar.book sms.send_confirmation crm.upsert_contact
ON COMPLETE
/ 04 · CONDITIONAL
Escalate if needed
Quote > $1,500→ on-call human
Anger score > 0.7→ on-call human
Outside scope→ on-call human
ELSE
/ 05 · COMPLETE
Log & report
Write transcript + audio to ops console. Append to morning digest. Tag outcome (booked / quoted / escalated / dropped).
ENABLED ON THIS WORKFLOW · 4
CAL
calendar.propose_slots
READ
ENABLED
Fetch available time slots from Google Calendar or the connected booking system for a given date range and party size.
CAL
calendar.book
WRITE
ENABLED
Create a confirmed booking event, hold the slot, and return a confirmation ID.
SMS
sms.send_confirmation
WRITE
ENABLED
Send a templated SMS confirmation to the caller's phone number via Twilio.
CRM
crm.upsert_contact
WRITE
ENABLED
Create or update a contact record in the connected CRM with name, phone, and last-interaction metadata.
VOICE & COMMUNICATIONS
TWI
twilio.call_transfer
WRITE
ADD
Transfer an active call to a phone number or SIP endpoint.
TWI
twilio.voicemail_drop
WRITE
ADD
Drop a pre-recorded voicemail without ringing the recipient.
SMS
sms.send_followup
WRITE
ADD
Send a freeform follow-up SMS after call completion with custom copy.
EML
email.send
WRITE
ADD
Send a transactional email via SendGrid or Postmark with a selected template.
CALENDARS & SCHEDULING
OT
opentable.book
WRITE
ADD
Book a reservation directly through the OpenTable API with party size, date, and seating preference.
MB
mindbody.book_class
WRITE
ADD
Book a class session in Mindbody for a given client and time slot.
CAL
calendly.schedule
WRITE
ADD
Create a Calendly scheduling link or book directly via the API.
DATA & CRM
CL
clio.create_matter
WRITE
ADD
Create a new matter in Clio legal practice management with intake data.
SF
salesforce.lead
WRITE
ADD
Create or update a Salesforce lead record from conversation data.
HS
hubspot.contact
WRITE
ADD
Create or update a HubSpot contact and associated deal pipeline entry.
SH
sheets.append_row
WRITE
ADD
Append a row to a connected Google Sheet — useful for lightweight logging.
HARD STOPS Agent halts immediately
Pricing authorityHARD
Prevent agent from committing to custom pricing or discounts outside the rate card.
Legal / medical adviceHARD
Blocks any regulated professional advice. Redirects to a licensed professional.
PII overreachHARD
Prevents collection of sensitive PII beyond name and phone number.
SOFT LIMITS Warn + log, continue if appropriate
Competitor mentionSOFT
Detects competitor names and steers the conversation back to Mike's Auto.
Anger detectionSOFT
Flags high-anger sentiment for escalation. Agent softens tone and offers callback.
Off-topic driftSOFT
Detects when conversation drifts from auto service. Allows one exchange then redirects.
COMPLIANCE Always-on disclosures
AI disclosureINFO
Mandatory disclosure that the caller is interacting with an AI at call start.
Recording noticeINFO
Required in IL, CA, and other two-party consent states. Always prepended to the greeting.
Pricing authority
HARD STOP
INSTRUCTION TO AGENT
TRIGGER PHRASES (comma-separated)
MATCHED PHRASES IN LAST 30 DAYS
"do it for $400" "special deal" "we can negotiate"
Live test runner SHADOW MODE · RUN #13
TEXT
VOICE
AGENT · 00:00
Mike's Auto, this is an AI assistant. This call may be recorded. How can I help you today?
CALLER · 00:04
Hey my check engine light came on. Can I get in tomorrow?
TOOL CALL · 00:05
→ calendar.propose_slots({ date: "2026-05-24", type: "diagnostics" })
← { slots: ["09:30", "14:15"], capacity: "open" }
AGENT · 00:06
Sounds like a diagnostics visit. I've got 9:30 AM or 2:15 PM tomorrow — which works better for you?
CALLER · 00:12
9:30 is perfect.
TOOL CALL · 00:13
→ calendar.book({ slot: "09:30", date: "2026-05-24", service: "diagnostics" })
← { id: "BK-8821", status: "confirmed" }
TOOL CALL · 00:13
→ sms.send_confirmation({ phone: "+13125559021", booking_id: "BK-8821" })
← { status: "sent" }
AGENT · 00:14
You're all set for tomorrow at 9:30 AM for diagnostics. I just texted you a confirmation. See you then!
RUN STATS
OUTCOME
BOOKED
TURNS
5 / 12
LATENCY (avg)
1.2s
TOOLS CALLED
3
GUARDRAIL HITS
0
EST. COST
$0.004
TRACE LOG
trigger → context_load → agent[1] → tool(propose) → agent[2] → user → agent[3] → tool(book) → tool(sms) → agent[4] → complete
All
Booked
Escalated
Dropped
478 runs · last 30 days
RUN IDTIMECALLERTURNSOUTCOMECOSTDURATION
BK-8821Today 9:14am+1 (312) 555-90215BOOKED$0.0041m 14s
BK-8820Today 8:02am+1 (773) 555-44128ESCALATED$0.0093m 41s
BK-8819Yesterday 11:47pm+1 (312) 555-00714BOOKED$0.00358s
BK-8818Yesterday 10:22pm+1 (630) 555-88303DROPPED$0.00242s
BK-8817Yesterday 9:05pm+1 (312) 555-22906QUOTED$0.0062m 10s
BK-8816Yesterday 7:48pm+1 (847) 555-66015BOOKED$0.0051m 32s
BK-8815Yesterday 6:12pm+1 (773) 555-33907BOOKED$0.0072m 28s
BK-8814Yesterday 4:55pm+1 (312) 555-771212ESCALATED$0.0145m 02s
BK-8813Yesterday 3:31pm+1 (630) 555-00414BOOKED$0.0041m 08s
BK-8812Yesterday 1:14pm+1 (847) 555-99205QUOTED$0.0051m 50s
v2.4 LIVE
DEPLOYED MAY 20 · BY BRANDON C.
Added Spanish auto-switch, increased max turns from 10 → 12, tightened pricing guardrail.
Runs: 478Booked: 84%Avg cost: $0.005
v2.3 PREV
DEPLOYED MAY 12 · BY BRANDON C.
Removed voicemail fallback. Added CRM upsert after booking confirmation.
Runs: 312Booked: 82%Errors: 2
v2.2 PREV
DEPLOYED APR 28 · BY BRANDON C.
Switched model to Claude Haiku 4.5. 40% cost reduction with same booking rate.
Runs: 204Booked: 79%Avg cost: $0.008
v2.1 PREV
DEPLOYED APR 10 · BY BRANDON C.
Initial production version. Base workflow: trigger → context → book → escalate → log.
Runs: 91Booked: 71%Errors: 1
v2.4 → v2.3 diff
Deployed May 20, 2026 · 478 runs · 0 critical errors
AVG LATENCY
4.2s
BOOK RATE
91%
INSTRUCTION CHANGES
Answer as Mike's Auto. Identify the service needed. Max 10 turns.
Answer as Mike's Auto. Be warm, efficient, never robotic. Identify the service needed. Propose two open slots. Book on confirmation. Send SMS confirmation. Max 12 turns.
Greet caller. Confirm service type. Use available tools.
GUARDRAIL CHANGES
pricing_authority: warn_only = true
pricing_authority: warn_only = false # hard stop
TOOLS ADDED
spanish_auto_switch: enabled
sms.send_confirmation: unchanged
calendar.book: unchanged
Added Spanish auto-switch, increased max turns from 10 to 12, tightened pricing guardrail to block all custom quotes.