CAca2dd7180d3f94f3f1e1444e9dd5f121
ModPod Podiatry · +61481222413 → +61468078235 · pracsuite
Started 28/05/2026, 12:06:56 pm · Duration 115s · Turns 6 · Outcome aborted · End caller_hangup
Cost $0.6946 AUD (LLM $0.3024 · CR $0.0632 · TTS $0.2838 · STT $0.0136 · Twilio $0.0316)
Call recording · 116s
›Full Transcript · 17 messages
+0:14.6+0:15.3+0:25.6+0:26.1immediate_ack+0:30.8+0:38.2+0:38.7immediate_ack+0:43.7tool_lead_in+0:49.4+0:49.5+0:50.0immediate_ack+0:52.3+1:16.8+1:17.2immediate_ack+1:24.9+1:45.0+1:45.6State Flow · 9 states · 17 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:
- 115385f9-03b4-4510-8bf2-4a79d790a504
- greeting· 4.0s 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:03.7Prefetched the caller’s record in 3.7s. 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 in progress· 11.2s laterSTATE 03booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:14.9FSM routed to booking in progress (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.6I need to book an appointment, please.BOT+0:15.3No 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 - awaiting service lookup· 11.0s laterSTATE 04awaiting service lookup/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:25.9FSM routed to awaiting service lookup (elicit service). Because booking request medium — said booking-related words. Directive: awaiting service lookup. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:25.6I need to book in a... sorry. I have orthotics that I need to get.BOT+0:26.1immediate_ackOne moment.BOT+0:30.8Are you looking to get your first pair of custom orthotics, or are you reordering a pair you've had before?USER+0:38.2Customer orthotics.BOT+0:38.7immediate_ackMm-hmm.BOT+0:43.7tool_lead_inLet me see what we have for that.toolGetAppointmentTypes340ms · ok+0:44.0in:{}out:[{"name":"Home Visit Morning","duration_minutes":30,"appointment_type_id":"50011"},{"name":"Strapping 20 mins","duration_minutes":30,"appointment_type_id":"500…BOT+0:49.4For custom orthotics as a new patient, we'd do a New Biomechanical assessment — that's a 40-50 minute appointment at two hundred and fifty-five dollars total, made up of a one hundred and forty-five dollar initial assessment and a one hundred and ten dollar biomechanical exam. Which of our clinics works best for you — Dee Why, Mosman, North Ryde, Rose Bay, or Sydney?FSM internals
trigger:booking_request/medium · evidence=booking_terms · context=unknowndirective:awaiting_service_lookupallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezone, EscalateToHuman, TransferCallraw:awaiting_service_lookup - booking in progress· 23.9s laterSTATE 05booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:49.8FSM routed to booking in progress (elicit service). Because no specific rule matched the caller’s last turn — no FSM rule matched. Directive: booking in progress. Tools available: GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:49.5First,BOT+0:50.0immediate_ackOkay.BOT+0:52.3I'm sorry, I didn't quite catch that — could you let me know which clinic works best for you?USER+1:16.8Mosman.BOT+1:17.2immediate_ackI'll check that now.FSM internals
trigger:unknown/low · evidence=no_rule_matched · context=unknowndirective:booking_in_progressallowed tools:GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCallraw:booking_in_progress - awaiting service lookup· 31.0s laterSTATE 06awaiting service lookup/ check_availabilityflow state
check_availabilityphaseLooking up available slots via CheckAvailability.
+1:20.8FSM routed to awaiting service lookup (check availability). Directive: awaiting service lookup check availability. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezone.FSM internals
directive:awaiting_service_lookup / check_availabilityallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezoneraw:awaiting_service_lookup / check_availability - offering slots· 3.8s laterSTATE 07offering slots/ present_slotsflow state
offering_slotsinsideappointment_settingCheckAvailability returned candidate slots and the agent has read them back. The caller has not yet picked one or confirmed. Tools restricted to lookups so the agent can answer questions about the offered service without re-calling CheckAvailability or writing.
- Enters when
- Prior assistant turn offered two concrete slots AND session has fresh candidate_slots AND the caller has NOT yet picked one or confirmed.
- Exits when
- Caller picks a slot → awaiting_final_confirmation. Caller asks for different times/service → resolving_service / resolving_location. Caller asks a question about the offered service → stay in offering_slots; LLM answers via lookups. Caller hangs up → closing.
- Allowed tools
- GetServicesAndPricing, GetAppointmentTypes, EscalateToHuman, TransferCall. NO CheckAvailability (slots already loaded). NO write tools.
present_slotsphaseReading the available times back to the caller.
+1:24.6FSM routed to offering slots (present slots). Directive: offering slots present slots inline. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCall.toolCheckAvailability3842ms · ok+1:24.7in:{"business_id":"36","appointment_type_id":"50014"}out:{"locations":[{"id":"36","name":"ModPod Podiatry - Mosman"}],"total_slots":4,"location_name":"ModPod Podiatry - Mosman","practitioners":[{"id":"22","name":"Ali…BOT+1:24.9I can do a Biomechanical Existing Pt appointment for Mon 1 Jun, 4pm with Alison Pasut at Mossmen, or a Biomechanical Existing Pt appointment for Thu 4 Jun, 12pm with Alison Pasut at Mossmen. Which works better?FSM internals
directive:offering_slots / present_slots_inlineallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCallraw:offering_slots / present_slots_inline - offering slots· 20.6s laterSTATE 08offering slots/ present_slotsflow state
offering_slotsinsideappointment_settingCheckAvailability returned candidate slots and the agent has read them back. The caller has not yet picked one or confirmed. Tools restricted to lookups so the agent can answer questions about the offered service without re-calling CheckAvailability or writing.
- Enters when
- Prior assistant turn offered two concrete slots AND session has fresh candidate_slots AND the caller has NOT yet picked one or confirmed.
- Exits when
- Caller picks a slot → awaiting_final_confirmation. Caller asks for different times/service → resolving_service / resolving_location. Caller asks a question about the offered service → stay in offering_slots; LLM answers via lookups. Caller hangs up → closing.
- Allowed tools
- GetServicesAndPricing, GetAppointmentTypes, EscalateToHuman, TransferCall. NO CheckAvailability (slots already loaded). NO write tools.
present_slotsphaseReading the available times back to the caller.
+1:45.3FSM routed to offering slots (present slots). Because price question high — pricing terms. Agent ran clarify two slot choice. No tools unlocked yet (still gathering info).USER+1:45.0Wait. How much is it again?BOT+1:45.6Just to clarify, which one did you want: Mon 1 Jun, 4pm, or Thu 4 Jun, 12pm?FSM internals
trigger:price_question/high · evidence=pricing_terms · context=two_slot_choicedirective:offering_slots / unclear_replyaction:clarify_two_slot_choiceallowed tools:none (still gathering)raw:offering_slots / unclear_reply - ended· 9.1s laterSTATE 09endedsynthetic
+1:54.3Call ended after 115s · 6 turns · reason: caller_hangup.
Tool calls · 2
GetAppointmentTypes 340ms · ok
{}[
{
"name": "Home Visit Morning",
"duration_minutes": 30,
"appointment_type_id": "50011"
},
{
"name": "Strapping 20 mins",
"duration_minutes": 30,
"appointment_type_id": "50012"
},
{
"name": "WART",
"duration_minutes": 30,
"appointment_type_id": "150010"
},
{
"name": "Initial Tariq Visit",
"duration_minutes": 30,
"appointment_type_id": "250046"
},
{
"name": "Repeat Tariq Visit",
"duration_minutes": 30,
"appointment_type_id": "250047"
},
{
"name": "Comcare - WC Initial Consult",
"duration_minutes": 30,
"appointment_type_id": "250050"
},
{
"name": "Comcare - WC Standard ",
"duration_minutes": 30,
"appointment_type_id": "250051"
},
{
"name": "Sports Podiatry Follow Up",
"duration_minutes": 30,
"appointment_type_id": "250052"
},
{
"name": "K Laser 20min",
"duration_minutes": 20,
"appointment_type_id": "250055"
},
{
"name": "Collection and KLaser",
"duration_minutes": 30,
"appointment_type_id": "250056"
},
{
"name": "Orthotic Assessment",
"duration_minutes": 0,
"appointment_type_id": "250057"
},
{
"name": "Orth Assessment Existing",
"duration_minutes": 40,
"appointment_type_id": "250058"
},
{
"name": "K Laser/Strapping",
"duration_minutes": 20,
"appointment_type_id": "250060"
},
{
"name": "4 Week Orthotic Review",
"duration_minutes": 0,
"appointment_type_id": "250054"
},
{
"name": "K Laser 10min",
"duration_minutes": 10,
"appointment_type_id": "250059"
},
{
"name": "General 30 mins",
"duration_minutes": 30,
"appointment_type_id": "1000"
},
{
"name": "New Podiatry Comprehensive",
"duration_minutes": 30,
"appointment_type_id": "1001"
},
{
"name": "Biomechanical Existing Pt",
"duration_minutes": 40,
"appointment_type_id": "50002"
},
{
"name": "General 20mins",
"duration_minutes": 20,
"appointment_type_id": "50003"
},
{
"name": "Collection Appt ",
"duration_minutes": 20,
"appointment_type_id": "50004"
},
{
"name": "Orth 6 week check",
"duration_minutes": 20,
"appointment_type_id": "50005"
},
{
"name": "Free Laser Assessment",
"duration_minutes": 30,
"appointment_type_id": "50006"
},
{
"name": "Bio 12 mnth Comprehensive",
"duration_minutes": 30,
"appointment_type_id": "50007"
},
{
"name": "Nail Surgery 1 Toe",
"duration_minutes": 60,
"appointment_type_id": "50009"
},
{
"name": "Nail Surgery 2 Toes",
"duration_minutes": 50,
"appointment_type_id": "50010"
},
{
"name": "New Biomechanical",
"duration_minutes": 40,
"appointment_type_id": "50014"
},
{
"name": "Re-dressing",
"duration_minutes": 30,
"appointment_type_id": "50015"
},
{
"name": "Diabetic Assessment",
"duration_minutes": 30,
"appointment_type_id": "50016"
},
{
"name": "Bio 6 Month Check",
"duration_minutes": 30,
"appointment_type_id": "50017"
},
{
"name": "Initial Laser 1 Foot",
"duration_minutes": 30,
"appointment_type_id": "50019"
},
{
"name": " Hot Laser follow up",
"duration_minutes": 30,
"appointment_type_id": "50020"
},
{
"name": "Shock Wave",
"duration_minutes": 30,
"appointment_type_id": "50021"
},
{
"name": "DVA Foot Health Check",
"duration_minutes": 30,
"appointment_type_id": "50023"
},
{
"name": "Cold Laser",
"duration_minutes": 20,
"appointment_type_id": "50025"
},
{
"name": "Intial Laser 2 Feet",
"duration_minutes": 30,
"appointment_type_id": "50026"
},
{
"name": "Free Bio",
"duration_minutes": 30,
"appointment_type_id": "250025"
},
{
"name": "3 Month Orthotic Review",
"duration_minutes": 20,
"appointment_type_id": "250053"
},
{
"name": "Home Visit Afternoon",
"duration_minutes": 30,
"appointment_type_id": "250061"
}
]CheckAvailability 3842ms · ok
{
"business_id": "36",
"appointment_type_id": "50014"
}{
"locations": [
{
"id": "36",
"name": "ModPod Podiatry - Mosman"
}
],
"total_slots": 4,
"location_name": "ModPod Podiatry - Mosman",
"practitioners": [
{
"id": "22",
"name": "Alison Pasut"
},
{
"id": "16",
"name": "Will Zalloua"
},
{
"id": "23",
"name": "Trent Baker"
}
],
"available_slots": [
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "22",
"duration_minutes": 40,
"appointment_start": "2026-06-01T16:00:00",
"practitioner_name": "Alison Pasut",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Mon 1 Jun, 4pm [2026-06-01T16:00: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]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "23",
"duration_minutes": 40,
"appointment_start": "2026-06-10T16:30:00",
"practitioner_name": "Trent Baker",
"appointment_type_id": "50002",
"appointment_type_name": "Biomechanical Existing Pt",
"appointment_start_formatted": "Wed 10 Jun, 4:30pm [2026-06-10T16:30:00]"
}
],
"deposits_required": false,
"practitioner_name": "Alison Pasut",
"has_multiple_locations": false,
"has_multiple_practitioners": true
}Call Notes
FSM Final State
| status | active |
Flow Diagram · 9 states
- 01init4.0s later
- 02greeting11.2s later
- 03booking in progress11.0s later
- 04awaiting service lookup23.9s later
- 05booking in progress31.0s later
- 06awaiting service lookup3.8s later
- 07offering slots20.6s later
- 08offering slots9.1s later
- 09endedinstant
Click a state to jump to its detail card above. Red border = FSM stalled at a tool inside that state.