CAa9cc4db12f9c753daeddc7509fb51035
ModPod Podiatry · +61481222413 → +61468078235 · pracsuite
Started 29/05/2026, 12:41:06 pm · Duration 216s · Turns 15 · Outcome booked · End caller_hangup
Cost $1.3016 AUD (LLM $0.3574 · CR $0.1264 · TTS $0.7275 · STT $0.0272 · Twilio $0.0632)
Call recording · 217s
›Full Transcript · 42 messages
+0:15.8+0:16.4+0:28.7+0:29.2immediate_ack+0:31.3+0:53.3+0:53.8immediate_ack+0:55.5+1:06.0+1:06.5immediate_ack+1:12.3tool_lead_in+1:18.4+1:45.4+1:45.8immediate_ack+1:48.1+2:06.8+2:07.3immediate_ack+2:12.8+2:12.9+2:13.4immediate_ack+2:20.1+2:31.0+2:31.5immediate_ack+2:41.2+2:41.3+2:41.9+2:54.7+2:55.3+2:56.8+2:57.3immediate_ack+2:57.6+2:58.0+2:58.4immediate_ack+3:00.7+3:09.4+3:09.5tool_lead_in+3:16.7+3:16.8+3:17.2immediate_ack+3:19.2+3:32.7+3:32.8State Flow · 12 states · 42 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:
- 8b6e34cd-5c97-4997-bda3-982720be9554
- greeting· 4.7s 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.4Prefetched the caller’s record in 4.4s. 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.7s laterSTATE 03booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:16.1FSM 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:15.8I'd like to book an appointment, please.BOT+0:16.4No 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· 12.9s laterSTATE 04awaiting service lookup/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:29.0FSM routed to awaiting service lookup (elicit service). Because no specific rule matched the caller’s last turn — no FSM rule matched. Directive: awaiting service lookup. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezone, EscalateToHuman, TransferCall.USER+0:28.7I've got a really sore knee, and I'm also dealing with some lower back issues at the moment from a past surgery for me a few years ago.BOT+0:29.2immediate_ackMm-hmm.BOT+0:31.3I'm sorry to hear that. I want to let you know that ModPod specialises in foot and lower leg care, so while we can definitely help assess how your feet and walking might be contributing to knee and back pain, a podiatrist will need to examine you properly to see what we can do. Have you had any foot or ankle issues, or is it mainly the knee and back that's concerning you right now?USER+0:53.3Mainly been the impact that's concerning me. Yeah.BOT+0:53.8immediate_ackOkay.BOT+0:55.5Let me see what we offer for that. Which of our clinics works best for you — Deewhy, Mossmen, North Ryde, Rose Bay, or Sydney?USER+1:06.0Uh, probably Dee Why.BOT+1:06.5immediate_ackI'll check that now.BOT+1:12.3tool_lead_inLet me look into that for you.toolGetServicesAndPricing347ms · ok+1:12.8in:{}out:[{"name":"Home Visit Morning","price":"Contact for pricing","duration":"30 minutes","appointment_type_id":"50011"},{"name":"Strapping 20 mins","price":"Contact…BOT+1:18.4Based on your knee and lower back concerns, a Biomechanical Assessment would be the right fit — we put you on our special medical treadmill that maps how you walk and where the pressure is, and build a personalised treatment plan from there. It's 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, and it runs about forty to fifty minutes. Shall I check times at Dee Why for that?FSM internals
trigger:unknown/low · evidence=no_rule_matched · context=unknowndirective:awaiting_service_lookupallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, ConvertTimezone, EscalateToHuman, TransferCallraw:awaiting_service_lookup - booking in progress· 1m 17s laterSTATE 05booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+1:45.6FSM 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+1:45.4Let me come back to you just because it's a little bit pricey for me, expensive.BOT+1:45.8immediate_ackRight.BOT+1:48.1I hear you. Let me run through some other options that might suit your budget better — we have a General appointment at thirty minutes for less, or a Free Bio assessment where we can do an initial walk analysis at no cost to help you decide what's right for you. Would either of those help you get started?USER+2:06.8Is that in person?BOT+2:07.3immediate_ackGot you.BOT+2:12.8Yes, both are in person at Dee Why — the Free Bio is a good way to start if you'd like to see what we find before committing to the full assessment.USER+2:12.9Same kind of view.BOT+2:13.4immediate_ackI hear you.BOT+2:20.1Exactly, it gives you a proper look at how you're moving without the full cost upfront. Want me to check what's available for the Free Bio at Dee Why?USER+2:31.0Yes, please.BOT+2:31.5immediate_ackMm-hmm.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· 49.4s laterSTATE 06awaiting service lookup/ check_availabilityflow state
check_availabilityphaseLooking up available slots via CheckAvailability.
+2:35.0FSM 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· 5.7s 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.
+2:40.7FSM routed to offering slots (present slots). Directive: offering slots present slots inline. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCall.toolCheckAvailability5724ms · ok+2:40.8in:{"business_id":"37","appointment_type_id":"250025"}out:{"locations":[{"id":"37","name":"ModPod Podiatry - Dee Why"}],"total_slots":10,"location_name":"ModPod Podiatry - Dee Why","practitioners":[{"id":"27","name":"…BOT+2:41.2I can do a Free Bio appointment for Fri 5 Jun, 8:30am with Jake Murphy at Dee Why, or a Free Bio appointment for Fri 5 Jun, 9am with Jake Murphy at Dee Why. Which works better?FSM internals
directive:offering_slots / present_slots_inlineallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCallraw:offering_slots / present_slots_inline - offering slots· 827ms 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.
+2:41.6FSM routed to offering slots (present slots). Because ambiguous medium — unresolved two slot reply. Agent ran clarify two slot choice. No tools unlocked yet (still gathering info).USER+2:41.3let's do sometime this week.BOT+2:41.9Just to clarify, which one did you want: Fri 5 Jun, 8:30am, or Fri 5 Jun, 9am?BOT+2:55.3Just to clarify, which one did you want: Fri 5 Jun, 8:30am, or Fri 5 Jun, 9am?FSM internals
trigger:ambiguous/medium · evidence=unresolved_two_slot_reply · context=two_slot_choicedirective:offering_slots / unclear_replyaction:clarify_two_slot_choiceallowed tools:none (still gathering)raw:offering_slots / unclear_reply - awaiting final confirmation· 15.3s laterSTATE 09awaiting final confirmationflow state
awaiting_final_confirmationinsideappointment_settingFinal slot has been read back to the caller. Waiting for an explicit yes/no before committing the write.
- Enters when
- Caller picked a slot from offering_slots.
- Exits when
- Caller confirms → CreateAppointment fires, → post_booking_closing. Caller declines → offering_slots (re-pick) or resolving_service (re-discover).
- Allowed tools
- No tools allowed. Agent must wait for a verbal yes/no.
+2:56.9FSM routed to awaiting final confirmation. Because ambiguous medium — unresolved two slot reply. Agent ran final slot confirmation. No tools unlocked yet (still gathering info).USER+2:54.7It's pretty good.USER+2:56.8Nine thirty, please.BOT+2:57.3immediate_ackMm-hmm.BOT+2:57.6Just to confirm, Daniel, that's a Free Bio appointment for Fri 5 Jun, 9am with Jake Murphy at Dee Why. Should I book that in?USER+2:58.0sir. A Dee Why.BOT+2:58.4immediate_ackOne moment.BOT+3:00.7That's right, a Free Bio appointment for Fri 5 Jun, 9am. Should I book that in?FSM internals
trigger:ambiguous/medium · evidence=unresolved_two_slot_reply · context=two_slot_choicedirective:two_slot_choice_selectedaction:final_slot_confirmationallowed tools:none (still gathering)raw:two_slot_choice_selected - booking existing patient· 12.5s laterSTATE 10booking existing patientflow state
booking_existing_patientCaller is an existing patient (identity orthogonal to flow). Available within any flow branch.
- Enters when
- GetPatientDetails returned a match for the caller.
- Exits when
- Identity persists for the call lifetime. Flow dimension transitions independently.
- Allowed tools
- BASE_TOOLS — patient identity is known, no CreatePatient needed.
+3:09.4FSM routed to booking existing patient. Because confirmation high — final confirmation prompt. Agent ran book confirmed selected slot. No tools unlocked yet (still gathering info).USER+3:09.4Yes.BOT+3:09.5tool_lead_inPerfect, I'm booking that in now.toolCreateAppointment6906ms · ok+3:16.4in:{"starts_at":"2026-06-05T09:00:00","patient_id":"896058","business_id":"37","practitioner_id":"27","appointment_type_id":"250025"}out:{"spoken":"Wonderful, I've got you booked in for Fri 5 Jun, 9am. We look forward to seeing you, Daniel, and getting that sorted for you. I've sent the confirma…BOT+3:16.7Wonderful, I've got you booked in for Fri 5 Jun, 9am. We look forward to seeing you, Daniel, and getting that sorted for you. I've sent the confirmation to your phone.FSM internals
trigger:confirmation/high · evidence=final_confirmation_prompt · context=final_confirmationdirective:final_confirmation_received_for_loaded_slotaction:book_confirmed_selected_slotallowed tools:none (still gathering)raw:final_confirmation_received_for_loaded_slot - closing after booking· 7.4s laterSTATE 11closing after bookingflow state
+3:16.8FSM routed to closing after booking. Because no specific rule matched the caller’s last turn — no FSM rule matched. Directive: closing after booking. Tools available: EscalateToHuman, SendTextMessage.USER+3:16.8Yep.BOT+3:17.2immediate_ackMm-hmm.BOT+3:19.2Thanks for confirming, Daniel—you're all set, and we'll see you Friday morning at 9.USER+3:32.7No worries. Thank you.BOT+3:32.8No worries, have a great day.FSM internals
trigger:unknown/low · evidence=no_rule_matched · context=unknowndirective:closing_after_bookingallowed tools:EscalateToHuman, SendTextMessageraw:closing_after_booking - ended· 19.3s laterSTATE 12endedsynthetic
+3:36.1Call ended after 216s · 15 turns · reason: caller_hangup.
Tool calls · 3
GetServicesAndPricing 347ms · ok
{}[
{
"name": "Home Visit Morning",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50011"
},
{
"name": "Strapping 20 mins",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50012"
},
{
"name": "WART",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "150010"
},
{
"name": "Initial Tariq Visit",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250046"
},
{
"name": "Repeat Tariq Visit",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250047"
},
{
"name": "Comcare - WC Initial Consult",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250050"
},
{
"name": "Comcare - WC Standard ",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250051"
},
{
"name": "Sports Podiatry Follow Up",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250052"
},
{
"name": "K Laser 20min",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "250055"
},
{
"name": "Collection and KLaser",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250056"
},
{
"name": "Orthotic Assessment",
"price": "Contact for pricing",
"duration": "0 minutes",
"appointment_type_id": "250057"
},
{
"name": "Orth Assessment Existing",
"price": "Contact for pricing",
"duration": "40 minutes",
"appointment_type_id": "250058"
},
{
"name": "K Laser/Strapping",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "250060"
},
{
"name": "4 Week Orthotic Review",
"price": "Contact for pricing",
"duration": "0 minutes",
"appointment_type_id": "250054"
},
{
"name": "K Laser 10min",
"price": "Contact for pricing",
"duration": "10 minutes",
"appointment_type_id": "250059"
},
{
"name": "General 30 mins",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "1000"
},
{
"name": "New Podiatry Comprehensive",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "1001"
},
{
"name": "Biomechanical Existing Pt",
"price": "Contact for pricing",
"duration": "40 minutes",
"appointment_type_id": "50002"
},
{
"name": "General 20mins",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "50003"
},
{
"name": "Collection Appt ",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "50004"
},
{
"name": "Orth 6 week check",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "50005"
},
{
"name": "Free Laser Assessment",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50006"
},
{
"name": "Bio 12 mnth Comprehensive",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50007"
},
{
"name": "Nail Surgery 1 Toe",
"price": "Contact for pricing",
"duration": "60 minutes",
"appointment_type_id": "50009"
},
{
"name": "Nail Surgery 2 Toes",
"price": "Contact for pricing",
"duration": "50 minutes",
"appointment_type_id": "50010"
},
{
"name": "New Biomechanical",
"price": "Contact for pricing",
"duration": "40 minutes",
"appointment_type_id": "50014"
},
{
"name": "Re-dressing",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50015"
},
{
"name": "Diabetic Assessment",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50016"
},
{
"name": "Bio 6 Month Check",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50017"
},
{
"name": "Initial Laser 1 Foot",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50019"
},
{
"name": " Hot Laser follow up",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50020"
},
{
"name": "Shock Wave",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50021"
},
{
"name": "DVA Foot Health Check",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50023"
},
{
"name": "Cold Laser",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "50025"
},
{
"name": "Intial Laser 2 Feet",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "50026"
},
{
"name": "Free Bio",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250025"
},
{
"name": "3 Month Orthotic Review",
"price": "Contact for pricing",
"duration": "20 minutes",
"appointment_type_id": "250053"
},
{
"name": "Home Visit Afternoon",
"price": "Contact for pricing",
"duration": "30 minutes",
"appointment_type_id": "250061"
}
]CheckAvailability 5724ms · ok
{
"business_id": "37",
"appointment_type_id": "250025"
}{
"locations": [
{
"id": "37",
"name": "ModPod Podiatry - Dee Why"
}
],
"total_slots": 10,
"location_name": "ModPod Podiatry - Dee Why",
"practitioners": [
{
"id": "27",
"name": "Jake Murphy"
},
{
"id": "16",
"name": "Will Zalloua"
}
],
"available_slots": [
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "27",
"duration_minutes": 30,
"appointment_start": "2026-06-05T08:30:00",
"practitioner_name": "Jake Murphy",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Fri 5 Jun, 8:30am [2026-06-05T08:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "27",
"duration_minutes": 30,
"appointment_start": "2026-06-05T09:00:00",
"practitioner_name": "Jake Murphy",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Fri 5 Jun, 9am [2026-06-05T09:00:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "27",
"duration_minutes": 30,
"appointment_start": "2026-06-05T09:30:00",
"practitioner_name": "Jake Murphy",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Fri 5 Jun, 9:30am [2026-06-05T09:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "27",
"duration_minutes": 30,
"appointment_start": "2026-06-05T11:30:00",
"practitioner_name": "Jake Murphy",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Fri 5 Jun, 11:30am [2026-06-05T11:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-06T10:30:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Sat 6 Jun, 10:30am [2026-06-06T10:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-06T11:00:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Sat 6 Jun, 11am [2026-06-06T11:00:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-11T08:00:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Thu 11 Jun, 8am [2026-06-11T08:00:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-11T12:30:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Thu 11 Jun, 12:30pm [2026-06-11T12:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-11T14:30:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Thu 11 Jun, 2:30pm [2026-06-11T14:30:00]"
},
{
"business_id": "37",
"business_name": "ModPod Podiatry - Dee Why",
"practitioner_id": "16",
"duration_minutes": 30,
"appointment_start": "2026-06-11T15:00:00",
"practitioner_name": "Will Zalloua",
"appointment_type_id": "250025",
"appointment_type_name": "Free Bio",
"appointment_start_formatted": "Thu 11 Jun, 3pm [2026-06-11T15:00:00]"
}
],
"deposits_required": false,
"practitioner_name": "Jake Murphy",
"has_multiple_locations": false,
"has_multiple_practitioners": true
}CreateAppointment 6906ms · ok
{
"starts_at": "2026-06-05T09:00:00",
"patient_id": "896058",
"business_id": "37",
"practitioner_id": "27",
"appointment_type_id": "250025"
}{
"spoken": "Wonderful, I've got you booked in for Fri 5 Jun, 9am. We look forward to seeing you, Daniel, and getting that sorted for you. I've sent the confirmation to your phone.",
"status": "booked_and_sms_sent",
"appointment_id": "6413723"
}Call Notes
FSM Final State
| status | active |
| booking_result.status | created |
Flow Diagram · 12 states
- 01init4.7s later
- 02greeting11.7s later
- 03booking in progress12.9s later
- 04awaiting service lookup1m 17s later
- 05booking in progress49.4s later
- 06awaiting service lookup5.7s later
- 07offering slots827ms later
- 08offering slots15.3s later
- 09awaiting final confirmation12.5s later
- 10booking existing patient7.4s later
- 11closing after booking19.3s later
- 12endedinstant
Click a state to jump to its detail card above. Red border = FSM stalled at a tool inside that state.