CA04d655b8f3198ddbc663f68afbddaeb7
ModPod Podiatry · +61481222413 → +61468078235 · pracsuite
Started 28/05/2026, 1:45:21 pm · Duration 127s · Turns 8 · Outcome booked · End caller_hangup
Cost $0.6519 AUD (LLM $0.1878 · CR $0.0948 · TTS $0.3015 · STT $0.0204 · Twilio $0.0474)
Call recording · 128s
›Full Transcript · 23 messages
+0:14.9+0:15.5+0:23.5+0:24.0immediate_ack+0:26.2+0:35.7+0:36.2immediate_ack+0:39.9tool_lead_in+0:43.4+0:50.6+0:51.1immediate_ack+0:52.5+1:03.4+1:03.9immediate_ack+1:11.7+1:33.4+1:33.8immediate_ack+1:34.4+1:44.6+1:44.7tool_lead_in+1:50.7+2:02.4+2:02.5State Flow · 10 states · 23 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:
- d9dab4f6-278e-4c04-bada-fa08e5b67568
- 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.5s laterSTATE 03booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:15.2FSM 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.9Can I book an appointment, please?BOT+0:15.5No 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· 8.6s laterSTATE 04awaiting service lookup/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:23.8FSM 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:23.5I have a really sore big toe.BOT+0:24.0immediate_ackMm-hmm.BOT+0:26.2I'm sorry to hear that. You've come to exactly the right place; we treat toe pain every day. How long has your big toe been sore?USER+0:35.7About a week.BOT+0:36.2immediate_ackOkay.BOT+0:39.9tool_lead_inLet me find the right appointment for you.toolGetServicesAndPricing372ms · ok+0:40.5in:{}out:[{"name":"Home Visit Morning","price":"Contact for pricing","duration":"30 minutes","appointment_type_id":"50011"},{"name":"Strapping 20 mins","price":"Contact…BOT+0:43.4Is it the nail that's digging in or causing the problem, or is it more the joint itself that's sore?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· 27.1s laterSTATE 05booking in progress/ elicit_serviceflow state
elicit_servicephaseDetermine which service / appointment type the caller wants.
+0:50.9FSM 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:50.6The joint.BOT+0:51.1immediate_ackRight.BOT+0:52.5Let's get you organised with one of our podiatrists. Which of our clinics works best for you — Deewhy, Mossmen, North Ryde, Rose Bay, or Sydney?USER+1:03.4North Ryde.BOT+1:03.9immediate_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· 19.0s laterSTATE 06awaiting service lookup/ check_availabilityflow state
check_availabilityphaseLooking up available slots via CheckAvailability.
+1:09.9FSM 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· 1.5s 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:11.4FSM routed to offering slots (present slots). Directive: offering slots present slots inline. Tools available: GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCall.toolCheckAvailability1468ms · ok+1:11.4in:{"business_id":"39","appointment_type_id":"1001"}out:{"locations":[{"id":"39","name":"ModPod Podiatry - North Ryde"}],"total_slots":19,"location_name":"ModPod Podiatry - North Ryde","practitioners":[{"id":"28","n…BOT+1:11.7I can do a General 30 mins appointment for Thu 28 May, 2:50pm with Carissa Lee at North Ryde, or a General 30 mins appointment for Thu 28 May, 4pm with Carissa Lee at North Ryde. Which works better?FSM internals
directive:offering_slots / present_slots_inlineallowed tools:GetServicesAndPricing, GetAppointmentTypes, GetPatientDetails, EscalateToHuman, TransferCallraw:offering_slots / present_slots_inline - awaiting final confirmation· 22.1s laterSTATE 08awaiting 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.
+1:33.4FSM 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+1:33.4Four PM with Carissa.BOT+1:33.8immediate_ackGot you.BOT+1:34.4Just to confirm, Daniel, that's a General 30 mins appointment for Thu 28 May, 4pm with Carissa Lee at North Ryde. 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· 11.2s laterSTATE 09booking 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.
+1:44.7FSM 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+1:44.6Yep.BOT+1:44.7tool_lead_inPerfect, I'm booking that in now.toolCreateAppointment5692ms · ok+1:50.4in:{"starts_at":"2026-05-28T16:00:00","patient_id":"896058","business_id":"39","practitioner_id":"28","appointment_type_id":"1000"}out:{"spoken":"Wonderful, I've got you booked in for Thu 28 May, 4pm. We look forward to seeing you, Daniel, and getting that sorted for you. I've sent the confirm…BOT+1:50.7Wonderful, I've got you booked in for Thu 28 May, 4pm. We look forward to seeing you, Daniel, and getting that sorted for you. I've sent the confirmation to your phone.USER+2:02.4Thank you.BOT+2:02.5No worries, have a great day.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 - ended· 21.6s laterSTATE 10endedsynthetic
+2:06.3Call ended after 127s · 8 turns · reason: caller_hangup.
Tool calls · 3
GetServicesAndPricing 372ms · 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 1468ms · ok
{
"business_id": "39",
"appointment_type_id": "1001"
}{
"locations": [
{
"id": "39",
"name": "ModPod Podiatry - North Ryde"
}
],
"total_slots": 19,
"location_name": "ModPod Podiatry - North Ryde",
"practitioners": [
{
"id": "28",
"name": "Carissa Lee"
},
{
"id": "19",
"name": "Jasem Waizani"
}
],
"available_slots": [
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-05-28T14:50:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Thu 28 May, 2:50pm [2026-05-28T14:50:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-05-28T16:00:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Thu 28 May, 4pm [2026-05-28T16:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T09:00:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 9am [2026-06-01T09:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T09:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 9:30am [2026-06-01T09:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T10:00:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 10am [2026-06-01T10:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T10:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 10:30am [2026-06-01T10:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T11:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 11:30am [2026-06-01T11:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T13:00:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 1pm [2026-06-01T13:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T13:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 1:30pm [2026-06-01T13:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-01T14:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Mon 1 Jun, 2:30pm [2026-06-01T14:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-02T13:00:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Tue 2 Jun, 1pm [2026-06-02T13:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-02T13:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Tue 2 Jun, 1:30pm [2026-06-02T13:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-02T14:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Tue 2 Jun, 2:30pm [2026-06-02T14:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-02T15:00:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Tue 2 Jun, 3pm [2026-06-02T15:00:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "19",
"duration_minutes": 30,
"appointment_start": "2026-06-02T15:30:00",
"practitioner_name": "Jasem Waizani",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Tue 2 Jun, 3:30pm [2026-06-02T15:30:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-06-03T13:40:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Wed 3 Jun, 1:40pm [2026-06-03T13:40:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-06-03T14:10:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Wed 3 Jun, 2:10pm [2026-06-03T14:10:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-06-03T14:40:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Wed 3 Jun, 2:40pm [2026-06-03T14:40:00]"
},
{
"business_id": "39",
"business_name": "ModPod Podiatry - North Ryde",
"practitioner_id": "28",
"duration_minutes": 30,
"appointment_start": "2026-06-03T15:10:00",
"practitioner_name": "Carissa Lee",
"appointment_type_id": "1000",
"appointment_type_name": "General 30 mins",
"appointment_start_formatted": "Wed 3 Jun, 3:10pm [2026-06-03T15:10:00]"
}
],
"deposits_required": false,
"practitioner_name": "Carissa Lee",
"has_multiple_locations": false,
"has_multiple_practitioners": true
}CreateAppointment 5692ms · ok
{
"starts_at": "2026-05-28T16:00:00",
"patient_id": "896058",
"business_id": "39",
"practitioner_id": "28",
"appointment_type_id": "1000"
}{
"spoken": "Wonderful, I've got you booked in for Thu 28 May, 4pm. 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": "6411399"
}Call Notes
FSM Final State
| status | active |
| booking_result.status | created |
Flow Diagram · 10 states
- 01init4.0s later
- 02greeting11.5s later
- 03booking in progress8.6s later
- 04awaiting service lookup27.1s later
- 05booking in progress19.0s later
- 06awaiting service lookup1.5s later
- 07offering slots22.1s later
- 08awaiting final confirmation11.2s later
- 09booking existing patient21.6s later
- 10endedinstant
Click a state to jump to its detail card above. Red border = FSM stalled at a tool inside that state.