Voiceflow named a 2026 Best Software Award winner by G2
Read now
If you run a law firm, missing after-hours calls is an expensive problem. Prospects research lawyers at 9 PM, hit voicemail, and call the next firm on the list. This guide shows how to build a multi-agent AI receptionist that picks up the call, qualifies the lead, books a consultation, and hands urgent matters to a human, all without you being there. We use a fictional sports law firm ("Goal Line Legal") as the running example, but the architecture works for any practice area. For a wider look at where AI fits in legal workflows, see our overview of AI tools for law firms.
The system you'll build is closer to an AI virtual receptionist than a chatbot:
The build uses three components, but the heaviest lifting happens in Voiceflow.

Templates and Make.com blueprints are linked at the end.
In Voiceflow, open the Knowledge Base section and load:
The Sitemap option ingests your full website at once. PDFs upload individually for practice-specific material. Voiceflow chunks the content into searchable units automatically.

{{blue-cta}}
The Coach agent (Step 5) needs real-time context to handle phrases like "tomorrow" or "next Monday." Add this custom function to your Voiceflow project:
export default async function main(args) {
const { timezone } = args.inputVars;
if (!timezone) {
return {
next: { path: 'error' },
trace: [{ type: "debug", payload: { message: "Please provide a timezone." } }]
};
}
try {
const now = new Date();
const dayFormatter = new Intl.DateTimeFormat('en-US', {
weekday: 'long', timeZone: timezone
});
const dayOfWeek = dayFormatter.format(now);
const currentDate = new Date(now.toLocaleString('en-US', { timeZone: timezone })).toISOString();
return {
outputVars: { current_date: currentDate, day_of_week: dayOfWeek, timezone },
next: { path: "success" }
};
} catch (error) {
return {
next: { path: "error" },
trace: [{ type: "debug", payload: { message: "Error: " + error.message } }]
};
}
}
Wire timezone as an input variable on the function block, and the Coach agent will read current_date and day_of_week from the output.
The system uses four agents. Each has a narrow role; together they cover the full call. The Referee routes; the others execute. Full prompts ship in the downloadable template; what follows is the role and the configuration each agent needs.
The Referee is the first agent the caller hits. It does one job: classify the request and send it elsewhere. It answers nothing, schedules nothing, gives no advice.
Three exit paths:
If the request is ambiguous, the Referee asks one clarifying question, then routes. Set its tone instructions to "professional phone receptionist" and it will sound right out of the gate.

The Archivist sits behind a KB Search block. It receives originalUserQuestion (mapped to {last_utterance}) and kbRelevantChunks (mapped to {chunks}), and answers strictly from the chunks.
Critical rules in its prompt:
Three exit paths: EscalateToHuman, ReturnToReferee (intent changed mid-conversation), ScheduleAppointment (caller wants to book).

The Coach is where prospects become qualified leads and booked consultations. For deeper coverage of the scheduling piece specifically, see our guide on AI answering services with appointment scheduling.
The Coach owns two functions:
initiateNewCaseIntake: captures fullName, contactPhone, and legalChallengeSummary. Triggered when the caller wants to become a new client.scheduleStrategicHuddle: captures preferredDate (converted to YYYY-MM-DD using current_date from Step 2) and preferredTime (24-hour format). Triggered when the caller wants to book a consultation.The prompt instructs the Coach to stay in its lane (no firm-info questions, no legal advice), keep responses under 30 seconds, and confirm details aloud before triggering each function. Three exit paths: ConversationComplete, EscalateToHuman, ReturnToReferee.

The Dispatcher's only job is packaging a clean handoff. It confirms the caller's name, phone, and reason, then triggers the notifyColleagueOfHandoff function (which captures handoffFullName, handoffPhoneNumber, handoffQuerySummary). It tells the caller when they'll hear back, and exits.
It does not answer questions. It does not give advice. It packages and ends the call.
Each Voiceflow function fires a webhook into a Make.com scenario. The scenario logs the data to a Google Sheet and sends a notification email. Three scenarios total, one per function.
Create a sheet named "Legal Answering Service" with three tabs:
initiateNewCaseIntake · Columns: Full Name, Phone, Legal Challenge SummaryscheduleStrategicHuddle · Columns: Start time, DatenotifyColleagueOfHandoff · Columns: Full name, Phone number{{blue-cta}}
In Make.com, create a scenario with three modules:
fullname, contactPhone, legalChallengeSummary from the Coach)initiateNewCaseIntake tabThe blueprint JSON is in the download package; if you'd rather build manually, the three modules above are the whole scenario.
Identical structure: webhook → Sheets → email. The webhook receives preferredDate and preferredTime. The email subject is "New Strategy Session Booked," and the body uses an HTML template that surfaces the date and time prominently. Send it to whoever owns the calendar.
Same shape, urgent flavour. Webhook → Sheets → email. Subject: "Urgent: Human Handoff Request." Style the email with a high-attention background colour so it stands out in the inbox. Send to the on-call attorney or paralegal.
In each Voiceflow function block, set:
POSTapplication/jsonThe Coach has two function blocks (intake + scheduling); the Dispatcher has one (handoff).
Run six checks before going live:
For ongoing rigor, swap the manual checks for Voiceflow Evaluations against a regression set. Multi-agent flows have combinatorial paths and manual testing doesn't scale once you start iterating.
If you're using Voiceflow's native voice channel (recommended), you're already done. It ships with a phone number you can route to. Skip ahead to Step 14.
If you have specific carrier requirements:
Replace Google Sheets with a real CRM once volume grows: HubSpot, Pipedrive, or Salesforce for general sales pipeline; Clio or MyCase for legal practice management. Make.com has connectors to all of them. Swap the Sheets module for the relevant CRM module and you're done.
This is the step most legal builds skip and regret later. Once the system is live, you need answers to three questions every week:
Skip this and you'll find out about your bot's worst answer when a client mentions it three months later.
For firms serving multilingual communities, duplicate the agent flows for each target language. Voiceflow handles language detection at the start of the call; you can either route to a language-specific flow or use a single flow with translated KB chunks.
Based on similar Voiceflow deployments:
The dollar value is firm-specific, but the pattern is consistent: the calls were never going to convert at voicemail. Anything you capture is incremental.
Skip the from-scratch build with the prebuilt assets:
A legal answering service is a phone-handling system that picks up calls to a law firm when staff are unavailable: after hours, during conflicts, or simply when the line is busy. Traditional services use human operators following a script. AI legal answering services use conversational AI to answer questions, qualify leads, and book appointments without human intervention.
Managed human services run roughly $1–$3 per minute or $200–$1,500/month depending on call volume and after-hours coverage. AI-based systems trade those per-minute fees for platform costs (typically $50–$500/month for the AI platform) plus integration time. The build above runs on Voiceflow's standard pricing plus Make.com's free or paid tier. Total platform cost lands well under most managed services for firms with steady call volume.
For lead intake, FAQ answering, and appointment booking, yes. For complex client conversations, judgment calls, and anything resembling legal advice, no. The pattern that works is AI for triage and capture, humans for substance. That's exactly what the Dispatcher agent in this build encodes.
A solo practitioner or small firm taking even one missed lead a week to a competitor is losing five-figure annual revenue. The build cost (a few days of setup) and platform cost (under $200/month) recovers in the first booked consultation. The math is harder for very low-volume practices, but the payback is generally fast.
Pre-engagement intake (caller's name, phone, brief description of the legal issue) is not yet attorney-client privileged information. Standard PII handling applies. Once engaged, route conversations through human channels. AI intake is for the front door, not the case file. Voiceflow's SOC 2 Type 2 attestation and PII masking handle the platform-side security; your firm's policies govern what the AI is allowed to discuss and how data flows after intake.
The combination of Voiceflow's multi-agent voice capabilities, Make.com's integration layer, and a simple Sheets-and-Gmail backend is enough to ship a real 24/7 receptionist in days, not months. The build is small. The discipline is in monitoring it (Step 15) and in keeping the agents narrow: the Referee routes, the Archivist informs, the Coach converts, the Dispatcher hands off. None of them try to be everything.
For a wider view of where this kind of system fits in the broader contact-center shift, see our agentic AI in the contact center 2026 landscape write-up.
The future of legal client acquisition doesn't sleep, doesn't miss calls, and doesn't lose a qualified prospect to voicemail. Build it.

