Watch our latest video available on Youtube.
Tutorials/Tutorial

Build a Voice AI Booking Agent with Airtable and Make

Service businesses lose bookings every time the phone rings after hours. In this tutorial you will build a conversational voice agent that answers the phone, captures booking details, and writes them straight into Airtable via Make.

YouTubeAdvanced12 min readApr 22, 2026
AirtableMakeElevenLabsOpenAI

Every service business faces the same problem: the phone rings while staff are with a customer, after hours, or on a busy Monday morning. Missed calls mean missed bookings. Hiring a dedicated receptionist costs $35,000–$50,000 per year. A voice AI agent changes that equation — it answers every call, collects the right details, and writes a confirmed appointment into Airtable automatically.

This tutorial walks through the system built in the video below: a health clinic booking agent powered by ElevenLabs Conversational AI, Airtable, and Make. The pattern adapts to any appointment-based business — beauty salons, trades contractors, restaurants, and wellness practices.

By the end you will have:

  • An ElevenLabs voice agent with a booking persona and guardrails
  • Three Make webhook scenarios that supply real-time data to the agent
  • An Airtable base that records every confirmed appointment

Before building, our guides on types of Airtable AI agents and business process automation examples give useful context.

Video Tutorial

How Conversational Voice Agents Work

Traditional IVR systems play pre-recorded menus and collect keypresses. Conversational voice agents are different: they listen to natural speech, reason about what the caller said, call external tools to retrieve or write data, and respond in a human voice — all in real time.

ElevenLabs Conversational AI handles the speech-to-text, language model reasoning, and text-to-speech layers in a single platform. You configure the agent with a system prompt, a voice, and a set of tools — each tool is a webhook URL that the agent can call mid-conversation to fetch information or take an action.

The key insight is that the agent is stateful within a call. It remembers that the caller asked for "next Tuesday", checked availability, and confirmed a slot. It does not need you to pass context manually between steps — the language model holds the conversation thread until the call ends.

This is what separates a voice agent from a simple chatbot: it operates in real time, over audio, with zero friction for the caller.

The Booking Workflow Architecture

The system has three layers working together:

LayerToolRole
Voice interfaceElevenLabsAnswers call, conducts conversation, calls tools
Data layerAirtableStores doctors, slots, patients, and bookings
Automation bridgeMakeWebhooks that translate agent requests into Airtable reads and writes

Airtable base structure

The base needs three linked tables:

  • Doctors — name, specialty, contact details
  • Slots — linked doctor, start time, availability status (Available / Booked)
  • Patients — name, email, year of birth, phone number, reason for appointment, linked slot

When the agent confirms a booking, Make flips the slot status to Booked and creates a Patient record linked to that slot. Airtable becomes the single source of truth — staff can view, edit, or export bookings without ever touching the AI configuration.

The three Make webhook scenarios

  1. Check current time — Returns the current date and time in ISO 8601 format. The agent calls this at the start of every conversation so it can calculate relative dates ("next Tuesday") without asking the caller.
  2. Check available appointments — Queries the Slots table for records with status = Available and returns a structured list of doctor names and times.
  3. Create booking — Accepts the slot ID and patient details, updates the slot to Booked, and creates a new Patient record.

Each webhook is registered as a tool inside ElevenLabs with a plain-language description so the model knows when to call it.

Step-by-Step Build

1. Set up the Airtable base

Create a new base with the three tables described above. In the Slots table, add a single-select field called Status with two options: Available and Booked. Link each slot to a record in the Doctors table.

Add a few test slots across different doctors and dates before building the agent — you will need real data to test the conversation flow.

2. Build the Make webhook scenarios

In Make, create a new scenario for each webhook. Use the Custom Webhook trigger module, then add Airtable modules to read or write data.

For Check available appointments: filter the Slots table where Status = Available, then format the response as JSON with doctor name, slot ID, and start time. Set the webhook to return this JSON to the caller.

For Create booking: accept slot_id, patient_name, email, year_of_birth, phone, and reason as input fields. Run two actions in sequence — update the slot record to Booked, then create a new Patient record linked to that slot.

For Check current time: skip the Airtable step entirely. Use a Make Set Variable module to capture {{now}} and return it as JSON. This single webhook saves dozens of awkward "what is today's date?" exchanges per day.

Copy the webhook URL from each Make scenario — you will paste these into ElevenLabs tool definitions.

3. Create the ElevenLabs agent

Log in to ElevenLabs and navigate to Conversational AI → Agents. Create a new agent from a blank template. Select a voice that matches your brand — a calm, professional tone works well for healthcare; something warmer suits beauty or hospitality.

Set the opening message to something direct: "Welcome to [Business Name]. When would you like to schedule your appointment?"

In the Tools section, add each of your three Make webhooks. For each tool, provide:

  • A short name (e.g. check_time, get_available_slots, create_booking)
  • A plain-English description that tells the model exactly when to call it
  • The input parameters the webhook expects, with types and descriptions

The tool descriptions are part of the model context, so be specific. For get_available_slots, write something like: "Call this to retrieve available appointment slots. Pass a date in YYYY-MM-DD format. Always call check_time first to determine the correct date."

4. Write the system prompt

The system prompt is the most important configuration decision. It controls the agent''s persona, the order of questions, and guardrails that prevent the agent from going off-script.

You are a friendly receptionist at [Business Name]. Your only job is to book appointments.

Rules:
- Always call check_time before discussing dates. Never ask the caller what today''s date is.
- When the caller mentions a relative date ("next Tuesday"), calculate the exact date yourself using the result from check_time.
- Speak dates and times in AM/PM format (e.g. "Tuesday the 25th at 5 PM"), never in ISO format.
- Collect name, email, year of birth, phone number, and reason for visit before confirming a booking.
- If the caller declines to share their year of birth, proceed without it.
- Read back all booking details for confirmation before calling create_booking.
- Do not discuss medical advice, pricing disputes, or refunds. Offer to have a team member call back.
- End the call politely once the booking is confirmed.

Iterate on this prompt during testing. Edge cases you will likely encounter: callers who give relative dates, callers who spell out emails letter by letter, and callers who change their mind mid-booking.

5. Embed or connect the agent

ElevenLabs provides a JavaScript widget you can embed on your website as a floating button. For phone calls, connect the agent to a Twilio number via the ElevenLabs phone integration — any call to that number routes directly to the agent.

Tuning Persona and Guardrails

A voice agent that works technically but sounds robotic will drive callers away. Three tuning areas matter most:

Pacing and interruption handling. ElevenLabs allows you to adjust how long the agent waits before responding and whether it allows barge-in (the caller speaking while the agent is still talking). For booking conversations, a short pause (300–500ms) with barge-in enabled produces the most natural feel.

Confirmation before writing. Always instruct the agent to read back the full booking details — doctor, date, time, name, and contact — before calling create_booking. This single guardrail dramatically reduces incorrect records in Airtable and gives callers confidence that they have been heard.

Graceful failures. If the get_available_slots webhook returns no results, the agent should not say "I found nothing." Prompt it to respond: "We don''t have any openings on that date — would you like to try a different day?" Test the empty-result case explicitly before going live.

Business Use Cases

Health and wellness clinics. The demo in the video uses a clinic with three doctors and time-based slots. The patient record lands in Airtable automatically, ready for staff to review or import into an EMR.

Beauty and personal care. Add a Services table and a fourth webhook that returns service durations, so the agent can check slot availability for the right block of time.

Trades and home services. Capture job type, address, and preferred window. The agent writes a structured lead into Airtable so your dispatcher starts the day with a clean list instead of a voicemail inbox.

Restaurants and events. Collect party size and dietary requirements, then trigger a confirmation SMS via a Make Twilio step after create_booking completes.

The same pattern serves any business where service and field sales teams need to capture intent before a human follows up. See our broader overview of AI automation for business for systems that pair well with voice agents.

When to Hire Help

The first working version takes 4–6 hours. Production quality — reliable webhooks, tested edge cases, phone integration, and staff training — typically adds 2–3 days.

Consider working with an Airtable consultant or a Make automation agency when:

  • You need the system live within days, not weeks
  • Booking logic is complex (multiple services, location routing, staff schedules)
  • The agent must integrate with an existing CRM, EMR, or POS system
  • You operate in a regulated industry and need a compliance review before launch

We build and maintain voice AI booking systems for service businesses across healthcare, trades, and hospitality. If you want this built to your exact workflow, see how we work.

Next Steps

Once your voice agent is live and handling calls:

  • Review the first 50 Airtable records manually and refine the system prompt based on what you find
  • Add a Make SMS step so callers receive a written booking confirmation
  • Build an Airtable automation that sends reminder emails 24 hours before each appointment
  • Explore AI automation for business — invoice processing and lead qualification follow the same webhook-and-prompt pattern
  • If your base grows complex, revisit types of Airtable AI agents to decide when to add a dedicated scheduling layer

Voice AI is no longer a feature reserved for enterprise contact centres. With ElevenLabs, Make, and Airtable, a single-location service business can deploy a 24/7 booking agent in a weekend — and recover every call that would otherwise have gone to voicemail.

Frequently Asked Questions

Common questions about this tutorial.

Ready to Transform Your Business Operations?

Join 100+ companies that have automated their way to success. Get started today and see the difference.