CAc97c693644d2f048a224cb9ce4d4e6e0
ModPod Podiatry · +61481222413 → +61468078235 · pracsuite
Started 27/05/2026, 7:21:36 pm · Duration 62s · Turns 2 · Outcome completed · End caller_hangup
Call recording · 64s
›Full Transcript · 8 messages
+0:17.0+0:17.5immediate_ack+0:21.5tool_lead_in+0:25.5+0:25.5+0:33.1+0:33.6immediate_ack+0:51.4State Flow · 5 states · 8 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:
- d3b854ff-65f7-4c52-86b4-dc0c751c90d8
- greeting· 4.3s 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.0Prefetched 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· 13.0s laterSTATE 03booking 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:17.1FSM routed to booking discovery. Because availability request medium — availability terms. Directive: still gathering booking details. Tools available: GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:17.0Can I confirm it with Lance that he's next available slot?BOT+0:17.5immediate_ackI'll check that now.BOT+0:21.5tool_lead_inLet me check Lance's availability for you.toolCheckAvailability1ms · returned_error+0:21.6in:{}out:{"error":"Preferred clinic required before checking availability. Ask which clinic suits them best, then call CheckAvailability with that business_id. Only omi…⚠ tool error: Preferred clinic required before checking availability. Ask which clinic suits them best, then call CheckAvailability with that business_id. Only omit business_id if the caller explicitly says any clinic or location is fine.BOT+0:25.5Let me check Lance's availability for you.BOT+0:25.5Which clinic would suit you best, Daniel — Sydney, Mosman, North Ryde, Deewhy, Rose Bay, or Morisset?FSM internals
trigger:availability_request/medium · evidence=availability_terms · context=unknowndirective:booking_discoveryallowed tools:GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCallraw:booking_discovery - booking discovery· 16.1s 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:33.2FSM routed to booking discovery. Because caller mentioned a non-default clinic location (high confidence) — location prompt. Directive: still gathering booking details. Tools available: GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:33.1Moss... Mosman.BOT+0:33.6immediate_ackOne moment.toolCheckAvailability3270ms · ok+0:45.1in:{"business_id":"36"}out:{"locations":[{"id":"36","name":"ModPod Podiatry - Mosman"}],"total_slots":5,"location_name":"ModPod Podiatry - Mosman","practitioners":[{"id":"22","name":"Ali…BOT+0:51.4I can do an Initial Laser 1 Foot appointment for Thu 28 May, 4:30pm with Alison Pasut at Mossmen, or an Initial Laser 1 Foot appointment for Thu 28 May, 5pm with Alison Pasut at Mossmen. Which works better?FSM internals
trigger:alternate_location/high · evidence=location_prompt · context=location_preferencedirective:booking_discoveryallowed tools:GetPatientDetails, CheckAvailability, GetServicesAndPricing, GetAppointmentTypes, ConvertTimezone, EscalateToHuman, TransferCallraw:booking_discovery - ended· 28.3s laterSTATE 05endedsynthetic
+1:01.5Call ended after 62s · 2 turns · reason: caller_hangup.
Tool calls · 2
CheckAvailability 1ms · returned_error
{}{
"error": "Preferred clinic required before checking availability. Ask which clinic suits them best, then call CheckAvailability with that business_id. Only omit business_id if the caller explicitly says any clinic or location is fine.",
"missing": "business_id",
"requires_clinic_preference": true
}CheckAvailability 3270ms · ok
{
"business_id": "36"
}{
"locations": [
{
"id": "36",
"name": "ModPod Podiatry - Mosman"
}
],
"total_slots": 5,
"location_name": "ModPod Podiatry - Mosman",
"practitioners": [
{
"id": "22",
"name": "Alison Pasut"
},
{
"id": "20",
"name": "Lovelyn Felipe"
}
],
"available_slots": [
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "22",
"duration_minutes": 30,
"appointment_start": "2026-05-28T16:30:00",
"practitioner_name": "Alison Pasut",
"appointment_type_id": "50019",
"appointment_type_name": "Initial Laser 1 Foot",
"appointment_start_formatted": "Thu 28 May, 4:30pm [2026-05-28T16:30:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "22",
"duration_minutes": 30,
"appointment_start": "2026-05-28T17:00:00",
"practitioner_name": "Alison Pasut",
"appointment_type_id": "50019",
"appointment_type_name": "Initial Laser 1 Foot",
"appointment_start_formatted": "Thu 28 May, 5pm [2026-05-28T17:00:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "20",
"duration_minutes": 20,
"appointment_start": "2026-05-29T08:20:00",
"practitioner_name": "Lovelyn Felipe",
"appointment_type_id": "50025",
"appointment_type_name": "Cold Laser",
"appointment_start_formatted": "Fri 29 May, 8:20am [2026-05-29T08:20:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "20",
"duration_minutes": 20,
"appointment_start": "2026-05-29T08:40:00",
"practitioner_name": "Lovelyn Felipe",
"appointment_type_id": "50025",
"appointment_type_name": "Cold Laser",
"appointment_start_formatted": "Fri 29 May, 8:40am [2026-05-29T08:40:00]"
},
{
"business_id": "36",
"business_name": "ModPod Podiatry - Mosman",
"practitioner_id": "20",
"duration_minutes": 20,
"appointment_start": "2026-05-29T09:30:00",
"practitioner_name": "Lovelyn Felipe",
"appointment_type_id": "50025",
"appointment_type_name": "Cold Laser",
"appointment_start_formatted": "Fri 29 May, 9:30am [2026-05-29T09: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 · 5 states
- 01init4.3s later
- 02greeting13.0s later
- 03booking discovery16.1s later
- 04booking discovery28.3s later
- 05endedinstant
Click a state to jump to its detail card above. Red border = FSM stalled at a tool inside that state.