Tour Booking
Overview
Handle the call execution layer for property showing bookings:
- Build a consistent call prompt from listing and client data.
- Send outbound call request to ElevenLabs (or dry-run).
- Normalize call outcome into structured status fields.
Inputs
Each call job should include:
job_idclient_namelisting.addresslisting.office_phonepreferred_windows_texttimezone
Runbook
1) Build payload
python3 scripts/prepare_call_payload.py \
--job /tmp/job.json \
--output /tmp/call-payload.json
2) Place call
Dry-run (default safe mode):
python3 scripts/place_outbound_call.py \
--payload /tmp/call-payload.json \
--output /tmp/call-result.json \
--dry-run
Live mode:
python3 scripts/place_outbound_call.py \
--payload /tmp/call-payload.json \
--output /tmp/call-result.json \
--live
3) Parse outcome
python3 scripts/parse_call_result.py \
--input /tmp/call-result.json \
--output /tmp/booking-outcome.json
Call Guardrails
- State clearly that the caller is an AI assistant calling on behalf of the realtor.
- Ask for available slots inside the requested window first; request alternatives if unavailable.
- Confirm final slot with exact date and local time before ending the call.
- If the office cannot confirm, mark as
pending_callbackand capture callback requirements.