CA78686ae3004fe1db2db76b353efc25bc
ModPod Podiatry · +61481222413 → +61468078235 · pracsuite
Started 27/05/2026, 3:48:33 pm · Duration 125s · Turns 10 · Outcome aborted · End caller_hangup
Call recording · 125s
›Full Transcript · 27 messages
+0:14.5+0:15.2+0:22.6+0:23.1immediate_ack+0:24.4+0:34.7+0:35.2immediate_ack+0:36.1+0:42.3+0:42.7immediate_ack+0:43.9+0:48.3+0:48.7immediate_ack+0:54.8tool_lead_in+1:08.5+1:08.5+1:21.1+1:21.5+1:29.2+1:29.7immediate_ack+1:31.0+1:44.8+1:45.4+1:56.6+1:56.7+2:00.3+2:00.6State Flow · 8 states · 27 utterances
- STATE 01initsynthetic
initWebSocket opened and prefetch (patient lookup, current bookings, recent thread, preferences) is in flight. No agent utterance yet.
- Enters when
- Twilio ConversationRelay opens the WebSocket.
- Exits when
- Prefetch completes → greeting.
- Allowed tools
- No tools — the route layer is fetching DB state in parallel.
+0:00.0Call answered. Agent is initializing the session for ModPod Podiatry.- Tenant:
- ModPod Podiatry
- PMS:
- pracsuite
- Direction:
- +61481222413 → +61468078235
- Conversation:
- 51c3dbb2-8c5d-48fc-b4ac-3ff60c56808a
- greeting· 4.4s laterSTATE 02greetingsynthetic
greetingDeterministic agent greeting plays once prefetch resolves and before the caller speaks for the first time.
- Enters when
- Prefetch resolves; route layer emits the greeting TTS.
- Exits when
- Caller responds → first buildVoiceBookingFlow pass routes to booking_discovery / rescheduling / cancelling / answering_query / verifying_identity.
- Allowed tools
- No tools — single deterministic utterance.
+0:04.1Prefetched the caller’s record in 4.1s. Agent is now greeting the caller.Data prefetched for this callerMatched patientName:Daniel WelshMobile:+61481222413DOB:—First seen:—Last seen:—Outreach status:noneRecent past appointments (showing 5 of 27)6/6/26, 10:30 amNew Biomechanical· Will Zalloua· ModPod Podiatry - Dee Whycancelled5/6/26, 9:00 amFree Bio· Jake Murphy· ModPod Podiatry - Dee Whycancelled4/6/26, 12:00 pmNew Biomechanical· Alison Pasut· ModPod Podiatry - Mosmancancelled3/6/26, 2:50 pmNew Biomechanical· Trent Baker· ModPod Podiatry - Mosmancancelled1/6/26, 3:00 pmNew Biomechanical· Alison Pasut· ModPod Podiatry - Mosmancancelled
27 total appointments on file · 0 pre-call messages in this conversation - booking discovery· 10.7s laterSTATE 03booking discovery/ elicit_serviceflow state
booking_discoveryRouter state. Identifies caller intent and dispatches to a super-state branch (appointment_setting / appointment_adjustment / qa / handoff).
- Enters when
- Call starts after greeting, OR a sub-flow returns to the router (e.g. qa side-loop completes).
- Exits when
- Routes into appointment_setting (new booking), appointment_adjustment (touch existing), qa (side question), or handoff (callback/transfer/escalation).
- Allowed tools
- BASE_TOOLS minus CreatePatient. Read-only lookups while still gathering intent.
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:14.8FSM routed to booking discovery (elicit service). Because booking request medium — said booking-related words. Agent asked the caller what their visit is about. No tools unlocked yet (still gathering info).USER+0:14.5Can I book an appointment, please?BOT+0:15.2No problem. What's the main concern you'd like the podiatrist to help with, and how long has it been going on?FSM internals
trigger:booking_request/medium · evidence=booking_terms · context=unknowndirective:visit_reason_requiredaction:ask_visit_reasonallowed tools:none (still gathering)raw:visit_reason_required - booking discovery· 7.8s laterSTATE 04booking discoveryflow state
booking_discoveryRouter state. Identifies caller intent and dispatches to a super-state branch (appointment_setting / appointment_adjustment / qa / handoff).
- Enters when
- Call starts after greeting, OR a sub-flow returns to the router (e.g. qa side-loop completes).
- Exits when
- Routes into appointment_setting (new booking), appointment_adjustment (touch existing), qa (side question), or handoff (callback/transfer/escalation).
- Allowed tools
- BASE_TOOLS minus CreatePatient. Read-only lookups while still gathering intent.
+0:22.7FSM routed to booking discovery. Because no specific rule matched the caller’s last turn — no FSM rule matched. Directive: still gathering booking details. Tools available: GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:22.6I have a really sore heel.BOT+0:23.1immediate_ackMm-hmm.BOT+0:24.4I'm sorry to hear that. You've come to exactly the right place; we treat heel pain every day. How long have you had the sore heel?USER+0:34.7Two weeks.BOT+0:35.2immediate_ackOkay.BOT+0:36.1Which area are you in so I can find the most convenient clinic for you?USER+0:42.3Mustman.BOT+0:42.7immediate_ackRight.BOT+0:43.9I'm not sure I caught that. Did you say Mosman, or a different area?USER+0:48.3Yep.BOT+0:48.7immediate_ackGot you.BOT+0:54.8tool_lead_inLet me check what's available at Mosman for you.toolCheckAvailability4049ms · ok+0:59.2in:{"business_id":"36","appointment_type_id":"50014"}out:{"locations":[{"id":"36","name":"ModPod Podiatry - Mosman"}],"total_slots":5,"location_name":"ModPod Podiatry - Mosman","practitioners":[{"id":"23","name":"Tre…BOT+1:08.5Let me check what's available at Mosman for you.BOT+1:08.5Great news, I have two options tomorrow at Mosman. Thursday the twenty-eighth of May at two twenty PM with Trent Baker, or at four thirty PM with Alison Pasut. Which works better for you?FSM internals
trigger:unknown/low · evidence=no_rule_matched · context=unknowndirective:booking_discoveryallowed tools:GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCallraw:booking_discovery - booking discovery· 58.5s laterSTATE 05booking discoveryflow state
booking_discoveryRouter state. Identifies caller intent and dispatches to a super-state branch (appointment_setting / appointment_adjustment / qa / handoff).
- Enters when
- Call starts after greeting, OR a sub-flow returns to the router (e.g. qa side-loop completes).
- Exits when
- Routes into appointment_setting (new booking), appointment_adjustment (touch existing), qa (side question), or handoff (callback/transfer/escalation).
- Allowed tools
- BASE_TOOLS minus CreatePatient. Read-only lookups while still gathering intent.
+1:21.2FSM routed to booking discovery. Because practitioner seniority question high — seniority terms. Agent ran answer practitioner experience question. Tools available: GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCall.USER+1:21.1Uh, who's more senior?BOT+1:21.5Of those two, Trent Baker is the more experienced podiatrist. Which appointment would you prefer?USER+1:29.2Would it be the same price?BOT+1:29.7immediate_ackI'll look at that with you.BOT+1:31.0Yes, they're the same price for this appointment type. So would the two twenty PM with Trent work better for you, or the four thirty PM?FSM internals
trigger:practitioner_seniority_question/high · evidence=seniority_terms · context=two_slot_choicedirective:practitioner_experience_question_during_slot_choiceaction:answer_practitioner_experience_questionallowed tools:GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCallraw:practitioner_experience_question_during_slot_choice - booking discovery· 23.9s laterSTATE 06booking discovery/ confirm_intentflow state
booking_discoveryRouter state. Identifies caller intent and dispatches to a super-state branch (appointment_setting / appointment_adjustment / qa / handoff).
- Enters when
- Call starts after greeting, OR a sub-flow returns to the router (e.g. qa side-loop completes).
- Exits when
- Routes into appointment_setting (new booking), appointment_adjustment (touch existing), qa (side question), or handoff (callback/transfer/escalation).
- Allowed tools
- BASE_TOOLS minus CreatePatient. Read-only lookups while still gathering intent.
confirm_intentphaseConfirm we understood what the caller wants before doing anything destructive.
+1:45.1FSM routed to booking discovery (confirm intent). Because no specific rule matched the caller’s last turn — no FSM rule matched. Agent ran hesitation recovery. No tools unlocked yet (still gathering info).USER+1:44.8I'm gonna need to call you back to it to double check.BOT+1:45.4Of course, no pressure. Can I just ask, is it mainly the cost you're thinking about, or is there something else on your mind?USER+1:56.6Oh, no. I just gotta double check some things. Thank you.BOT+1:56.7No worries, have a great day.FSM internals
trigger:unknown/low · evidence=no_rule_matched · context=unknowndirective:hesitation_recoveryaction:hesitation_recoveryallowed tools:none (still gathering)raw:hesitation_recovery - closing· 15.2s laterSTATE 07closingflow state
closinginsidehandoffCall wrapping up without a booking write — caller hung up, refused, redirected, transferred, or escalated.
- Enters when
- End-reason rule fires (emergency, sales, handoff, caller indicates done), OR caller hangs up from any flow state.
- Exits when
- Synthetic ended state follows when the websocket closes.
- Allowed tools
- No tools. One short polite closing sentence.
+2:00.3FSM routed to closing. Because closing high — caller closing. Directive: The caller is ending the call Do not call tools Close politely in one short se. No tools unlocked yet (still gathering info).USER+2:00.3Bye.BOT+2:00.6Bye, take care!FSM internals
trigger:closing/high · evidence=caller_closing · context=closingdirective:The caller is ending the call. Do not call tools. Close politely in one short seallowed tools:none (still gathering)raw:The caller is ending the call. Do not call tools. Close politely in one short se - ended· 4.0s laterSTATE 08endedsynthetic
+2:04.3Call ended after 125s · 10 turns · reason: caller_hangup.
Tool calls · 1
CheckAvailability 4049ms · ok
{
"business_id": "36",
"appointment_type_id": "50014"
}{
"locations": [
{
"id": "36",
"name": "ModPod Podiatry - Mosman"
}
],
"total_slots": 5,
"location_name": "ModPod Podiatry - Mosman",
"practitioners": [
{
"id": "23",
"name": "Trent Baker"
},
{
"id": "22",
"name": "Alison Pasut"
},
{
"id": "16",
"name": "Will Zalloua"
}
],
"available_slots": [
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "23",
"duration_minutes": 40,
"appointment_start": "2026-05-28T14:20:00",
"practitioner_name": "Trent Baker",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Thu 28 May, 2:20pm [2026-05-28T14:20:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "22",
"duration_minutes": 40,
"appointment_start": "2026-05-28T16:30:00",
"practitioner_name": "Alison Pasut",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Thu 28 May, 4:30pm [2026-05-28T16:30:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "23",
"duration_minutes": 40,
"appointment_start": "2026-06-03T14:20:00",
"practitioner_name": "Trent Baker",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Wed 3 Jun, 2:20pm [2026-06-03T14:20:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "22",
"duration_minutes": 40,
"appointment_start": "2026-06-04T12:00:00",
"practitioner_name": "Alison Pasut",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Thu 4 Jun, 12pm [2026-06-04T12:00:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "16",
"duration_minutes": 40,
"appointment_start": "2026-06-09T17:10:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Tue 9 Jun, 5:10pm [2026-06-09T17:10:00]"
}
],
"deposits_required": false,
"practitioner_name": "Trent Baker",
"has_multiple_locations": false,
"has_multiple_practitioners": true
}Call Notes
FSM Final State
| status | active |
Flow Diagram · 8 states
- 01init4.4s later
- 02greeting10.7s later
- 03booking discovery7.8s later
- 04booking discovery58.5s later
- 05booking discovery23.9s later
- 06booking discovery15.2s later
- 07closing4.0s later
- 08endedinstant
Click a state to jump to its detail card above. Red border = FSM stalled at a tool inside that state.