Related Articles
Voice Agent Booking Configuration
Overview
Voice agent booking configuration is identical to text agent booking configuration. Voice agents can book appointments during phone calls using the same calendar selection logic, scripts, and modes.
For complete booking configuration details, see: AI Agent Booking Configuration
This guide covers voice-specific considerations only.
Voice Agents 3.0: In addition to booking new appointments, v3 agents can look up a caller's existing appointments and reschedule them. These are separate toggles in the Booking tab's Existing Appointments section - see the Existing Appointments: Lookup & Rescheduling section below.
Booking Configuration
Voice agents support all the same booking modes:
- No Booking - Agent cannot book appointments
- Account Default Calendar - Uses your default calendar
- Specific Calendar - Books into designated calendar
- AI Calendar Selection - Intelligently selects calendar (and user) based on rules
Configuration process is identical to text agents.
Voice-Specific Considerations
Verbal Confirmation
In phone conversations:
- Agent should verbally confirm appointment details
- Repeat date, time, and location
- Confirm contact information
- Get verbal agreement
Recommended in Instructions:
When booking an appointment:
1. Present available time slots
2. Confirm their selection
3. Repeat the full appointment details:
- Date and time
- Location
- What to expect
4. Get their confirmation
Real-Time Availability
Voice booking happens during the call:
- AI checks availability in real-time
- Presents options to caller
- Books immediately upon agreement
- No delay or "I'll text you slots" needed
After Booking
Automatic Actions:
- Appointment created in brayv.ai
- Confirmation sent via SMS (if configured in calendar)
- Syncs to team member's Google/Outlook calendar
- Journey stage transitions (if calendar trigger configured)
Voice Agent Should:
- Confirm booking verbally
- Mention they'll receive text confirmation
- Provide any pre-appointment instructions
- Offer reschedule/cancel information
Example Voice Agent Booking Instructions
Simple Booking Instructions
## Goal
After gathering their service needs and address, offer to book an appointment.
## Booking Process
1. First call get_available_slots, then say "Next step is to schedule a time for your on-site estimate. I see these two times available (insert two slots). Do either of these work for you, or is there a time that works better?"
2. When they choose, confirm the full details before booking:
- "Sounds like you'd like to book an appointment for..."
3. Only after the user confirms you understood the appointment selection correctly, call book_appointment
Note: for a lot of AI models, simply saying in your instructions, "First check available times, then say..." Is sufficient, but you will aid the models that may struggle with this by specifying the exact tool names:
get_available_slots(retrieves availability)book_appointment(schedules a specific time)
Agents can book without this double confirmation logic, but it's recommended to have in there for clarity and ensuring that the appointment gets booked correctly on the first go. In voice conversations, customers will often say, "Yeah, 9:00 works," and then pause for a second and say, "Actually, let me think about that." If you let the AI agent book as soon as they say a particular time is okay, you will likely end up with multiple booked appointments, because the person will come back and say, "Actually, I want to do 10:00 a.m. or 12:00 p.m." or something like that. Adding in the double confirmation step, meaning the AI repeats back to them what they selected and asks them to confirm before actually booking, virtually always removes this potential hang-up. This is a key difference from text AI agents because text conversations are asynchronous by nature and double confirmation is not recommended in text conversations.
Booking with Territory Logic
If using AI Calendar Selection based on zip code:
## Booking Process
After gathering their service description and address:
1. First call get_available_slots, then say "Next step is to schedule a time for your service appointment. I see these two times available (insert two slots). Do either of these work for you, or is there a time that works better?"
2. When they choose, confirm the full details before booking:
- "Sounds like you'd like to book an appointment for..."
3. Only after the user confirms you understood the appointment selection correctly, call book_appointment
*Note: conversationally, this flow is no different than the flow described in the booking process for simple booking instructions. All the routing happens based on your rules in the booking configuration. The AI Agent simply calls the get_available_slots tool or the book_appointment tool, and those tools are configured to follow your logic for who to assign the lead to and what calendar to book into, based on contact variables like zip code, etc.
Configuration Steps
Voice agent booking configuration uses the exact same interface and workflow as text agents:
Step 1: Enable booking in Booking tab
Step 2: Select booking mode
Step 3: Configure based on mode selected
Step 4: If using AI Selection:
- Write selection instructions
- Generate script
- Test script
- Save script
Step 5: Save agent
For detailed instructions: AI Agent Booking Configuration - All steps apply identically to voice agents.
Load Distribution Variables
Voice agent booking uses the same calendar selection variables as text agents. When using AI Calendar Selection with Calendar and User scope, you can include appointment count variables in your booking rules:
{users.appointment_counts}: Each user's appointment count over a rolling 30-day period. Use this for general appointment load balancing.{users.appointment_counts_by_zip}: Each user's rolling 30-day appointment counts broken down by the booked contact's zip code. Use this when territories or zones should have separate load balancing.
For example, if the caller's zip code is in a North Territory zip list and you want to book with the least-loaded North Territory user, use {contact.zip_code} together with {users.appointment_counts_by_zip}. If you only need the least-loaded user overall, use {users.appointment_counts}.
Important Reminders
Data Collection First
If booking decision depends on contact data:
- Agent must ask for it in conversation
- Field extractor must save it
- Then AI can use it for booking decision
Example:
- Booking uses zip_code for territory
- Agent must ask: "What's your zip code?"
- Extractor must save zip_code
- Then script can route by territory
Calendar Triggers Required
If voice agent books into multiple calendars:
- Add calendar trigger to journey's Appointment Scheduled stage
- One trigger per calendar
- Event: Appointment Created
Without triggers: Opportunity won't progress when appointment booked (and AI agent may continue follow up outreach, leading to customer frustration)
Script Generation
AI Selection mode requires:
- Writing selection instructions
- Generating Python script (Ava does this for you!)
- Testing the script
- Saving the script
Script executes during calls to determine correct calendar/user.
Existing Appointments: Lookup & Rescheduling (Voice Agents 3.0)
Voice Agents 3.0: Appointment lookup and rescheduling are only available on v3. They are configured in the Booking tab under Existing Appointments, separately from new-appointment booking.
These two abilities let an agent help a caller with appointments they already have - not just book new ones.
Enable Appointment Lookup
When enabled, the agent can look up the calling contact's appointments: their most recent past appointments, any appointment happening now, and upcoming appointments. The agent can reference these naturally ("I see you have an estimate booked for Thursday at 2pm").
- Lookup is strictly scoped to the contact on the call - an agent can never see other contacts' appointments.
- Useful on its own (e.g., "When is my appointment?") even without rescheduling.
Enable Appointment Rescheduling
Rescheduling requires Appointment Lookup to be enabled first. You'll see the rescheduling toggle appear once lookup is on.
When enabled, the agent can move one of the caller's existing appointments to another available time. Key behavior:
- The agent first looks up the appointment, then offers other open times.
- Rescheduling keeps the same calendar and the same team member - only the time changes.
- Only appointments the lookup marks as reschedulable can be moved (generally, appointments that haven't already ended and aren't cancelled or completed).
- Availability is validated just like new bookings, and the standard updates run (confirmations, calendar sync, integrations).
Recommended instructions:
## Existing Appointments
- If the user asks about an existing appointment, look it up before discussing details.
- To reschedule, confirm which appointment they mean, offer the available times returned, and only reschedule after they confirm the new time.
- Never mention appointment IDs to the user.
Conversational Flow Tips
- As with booking, use a double confirmation before rescheduling - repeat the new time back and get a clear "yes" before committing.
- Only offer the times the system returns. Don't let the agent invent times.
Voice vs Text Booking
Same:
- All booking modes available
- AI Calendar Selection works identically
- Script generation process same
- Calendar/user selection logic same
- Variables and rules same
Different:
- Verbal confirmation of selected slot recommended before actually booking
- Appointment lookup and rescheduling (v3) are voice-agent features
Related Features
- Booking Configuration - Complete booking guide (applies to voice)
- Voice Field Extractors - Save caller data for booking decisions
- Calendars and Appointments - Calendar setup
- AI Voice Agents Overview - Main voice agent guide