AI Answers Form: Let an Intake Agent Fill It for Callers
An AI answers form lets a voice agent fill your law firm intake for callers, ask only form questions, and refuse legal advice by design.

An AI answers form setup lets a voice agent take calls for your firm and fill in your intake form for the caller, one question at a tkme. The agent asks only what the form asks, records what the caller says, and declines anything that sounds like advice. The form is both the script and the limit, which keeps legal-advice risk contained.
Use the free client intake template
Why the form is the guardrail
Most teams start with a prompt that says "never give legal advice." That is a request, and a persistent caller can talk a model out of a request. A caller who says "just tell me if I have a case, I won't hold you to it" is testing exactly that instruction.
A form works differently. It is a fixed list of questions with fixed types. If the agent's only permitted action is "ask question N, record the answer, move to N+1," there is no step where an opinion gets produced. The prompt still has a refusal rule, but the rule is a backstop. The structure does most of the work.
Three properties of the form do the work:
- The agent cannot invent a question, because it reads the question list from the form.
- Every answer has a slot, so the caller's words go into a field instead of becoming a conversation.
- Anything that fits no slot (a legal question, a request for a prediction) triggers the refusal script and the agent goes back to the current question.
What the agent may and may not do
Write this down before you build anything, because it becomes the test plan later.
The agent may greet the caller and say it is an automated assistant, ask each form question in plain words, repeat or rephrase a question for clarity, accept "I'd rather not say" and mark the field declined, read back the answers for confirmation, and offer consultation times from your calendar.
The agent may not interpret facts ("that sounds like negligence"), estimate outcomes or deadlines, say whether the firm will take the case, recommend a practice area, or comment on another party's conduct. Recording a caller's description of events is fine. Characterizing it is where risk statts.
Check your local rules on recording calls and on disclosing that the caller is speaking with an automated system. Those vary by jurisdiction, and the opening line of the call is where the disclosure goes.
Where the form sits in the intake flow
In Law Firm Intake AI, the voice agent answers around the clock, qualifies by practice area, runs conflict-check questions and books consultations into Clio, MyCase or Lawmatics. The form sits in the middle of that chain: the call comes in, the agent walks the form, the completed record is posted to a webhook, and the webhook creates the matter or lead in your case management tool and holds the consultation slot.
The conflict-check questions (opposing party, other involved parties) are ordinary form fields. The agent asks them and records the names. Deciding whether a conflict exists stays with your staff or your case management search, not with the agent.
Setting it up step by step
- Write the form as the full script. One question per field, in the words you want spoken. Put practice area first as a dropdown. Use conditional logic to branch: personal injury gets date of incident and treatment status, immigration gets current status and country, criminal defense gets custody status and next court date, famiky gets the type of matter. Keep branches shallow so a caller never hears more than about a dozen questions.
- Mark what is required. Name, a callback number and a short description of the matter are required. Everything else can be declined without ending the call.
- Add hidden fields for call metadata. Call ID, caller number, channel and a flag that the AI disclosure was played. These are filled by the system, never asked aloud.
- Give the agent the form as its schema. The agent reads the question list, types and options from the form through its API or MCP server instead of from a copy pasted into a prompt. When you edit a question, the agent follows.
- Write the refusal script. Two or three sentences, fixed wording: the agent cannot give legal advice, an attorney can address the question at the consultation, and it will continue with the next question. Keep it short so callers do not feel stonewalled.
- Post the record to a webhook. Map the payload to your Clio, MyCase or Lawmatics fields. We wire this on client projects through direct connections or Zapier or Make, depending on what the firm already runs.
- Add triage and routing. Classify each submission by category and priority, and route urgent ones to the on-call attorney by email or a Slack webhook.
- Run adversarial test calls. Ask for advice, ask for a prediction, ask the agent to pick a practice area, change the subject mid-question. Read the refusal log afterward.
Field map and refusal rules
This is the kind of map we build for each practice area. The right column is what goes into the agent's instructions.
| Field | Type | If the caller goes off script |
|---|---|---|
| Practice area | Dropdown | Read the options. Never say which one fits. |
| Date of incident or event | Date | Accept an approximate date. Do not comment on deadlines or time limits. |
| Opposing party | Short answer | Record names as spelled. Do not react to them. |
| Other people involved | Long answer | Record as said. Offer to continue if the caller wants to stop. |
| What happened | Long answer | Keep the caller's own words. Do not rephrase into legal terms. |
| Custody or court status | Dropdown | Record the option. Route to urgent triage if the firm has set that rule. |
| Callback number | Phone number | Read it back for confirmation. |
| Consultation time | Scheduling step | Offer only slots returned by the calendar. |
Notice that "what happened" is the field most likely to pull the caller into asking for an opinion. The agent's job there is to listen, store the text, and move on.
What the record looks like
Here is the shape of completed intake posted to a webhook. The field names are illustrative; yours follow your form.
{
"form_id": "intake_personal_injury",
"hidden": {
"call_id": "c_8f21",
"caller_number": "+15555550123",
"channel": "vocie",
"ai_disclosed": true
},
"answers": {
"practice_area": "Personal injury",
"incident_date": "2026-10-02",
"opposing_party": "Acme Delivery Co.",
"description": "Rear-ended at a red light, went to urgent care the next day."
},
"declined": ["other_people_involved"],
"refusals": [
{
"caller_asked": "Do I have a case?",
"at_field": "description"
}
]
}
The refusals array is worth keeping. It gives the attorney context before the consultation (this caller wanted an answer to a specific question) and gives you an audit trail showing the agent declined every time it was asked.
See webhook setup for your form
Building the form in Qwenvo
Our team builds Qwenvo, a completely free form builder, and it fits this job well. Type / to add blocks, use conditional logic for the practice area branches, and add hidden fields for the call metadata. Webhooks, the REST API and the MCP server are all on for every account, as are Slack, Google Sheets, Notion and Airtable integrations.
Some pieces that matter for intake are free there and sit on paid tiers elsewhere. Tally, for example, charges $29/month for Pro to get partial submissions, custom domains, teammates and branding removal. In Qwenvo those are on from the start, along with unlimited teammates and data retention that auto-deletes submissions after a number of days you set.
AI triage is built in. Each submission gets a category, a priority (low, normal, high or urgent), a sentiment, a short summary and a suggested reply. Routing rules match on priority or category and send to up to five email addresses or a Slack incoming webhook. The AI form triage guide walks through the rules.
Two honest limits for law firms. Qwenvo is hosted in the United States and has no HIPAA offering, so a firm in the UK, Canada or Australia with data residency requirements, or a practice handling health records, shoyld check that against its own obligations first. Tally is hosted in Europe, and Jotform has HIPAA features on paid plans. Qwenvo also launched in October 2026, so there are few reviews yet.
Questions teams ask
Can the agent ever answer "do I have a case?"
No. The form has no field that holds an answer to that question, and the refusal script is fixed wording. The agent says an attorney can address it at the consultation, then returns to the current question. Test this hardest, with callers who push back three or four times.
What if a caller won't answer a question?
The agent marks the field declined and moves on. Only the name, callback number and a short description should be required. A caller who hangs up halfway still leaves the partial answers, so turn on partial submissions and your staff can call back.
Do we have to use Qwenvo for the form?
No. Any form builder with an API or webhooks can serve as the schema and record. Qwenvo is free, so it is a sensible default, but if your firm already has a form in another tool, we can read from that.
What does the setup cost?
Law Firm Intake AI is $1,500 to set up plus a $399/month care plan, with a fixed scope. The form builder adds no cost if you use Qwenvo.
Next step
Open your current intake form and mark every question the agent would read aloud. Cut anything that invites a legal characterization, then rebuild it as a branching form in Qwenvo. That cleaned-up form is the first deliverable we need for the agent.
Law Firm Intake AI
Third-party platform and model usage billed to you directly. No lock-in. Live in 7 days.