Skip to main content

place_call

Places one outbound AI phone call for your firm.
string
required
Who is being called, as the agent should address them. 1–120 characters.
string
required
The recipient’s US phone number. Normalized to E.164 before dialing.
string
Who the person is to your firm: client, witness, adjuster, business_office or other. Required without agent_id; with it, defaults to the saved agent’s. Saved on the call record. witness is refused while witness calls are turned off (the default).
true means you confirmed this person gave your firm this number and agreed to be called. false is refused.
boolean
required
true if this person has their own lawyer for this matter. Lawtte doesn’t call represented people, so true is refused; contact their counsel instead.
string
What the call should accomplish, in plain language. Up to 1,000 characters. It can’t change the call’s opening line. Required without agent_id; not allowed with it.
string
A saved outbound agent’s ID (UUID) from list_outbound_agents. Its objective, recipient type, what-to-collect list and voicemail choice are used for this call. See saved outbound agents.
object
Values for the saved agent’s {{placeholders}}, such as {"claim_number": "88-123"}. Keys are lowercase letters, digits and underscores (up to 30 characters); values 1–200 characters. Only with agent_id.
string
Brief, non-sensitive background strictly needed for the call. Up to 1,000 characters. No Social Security, card or bank numbers, dates of birth, passwords, one-time codes or medical details.
Every call opens with a fixed line set by Lawtte’s server: “Hi, this is , a virtual assistant calling on behalf of . This call is recorded.” — or “Hi, this is a virtual assistant calling on behalf of …” when the receptionist’s name can’t be spoken. The agent gives no legal advice; a client who asks a legal question hears “Your attorney will call you about that.”
This tool is marked destructive: it dials a real person and consumes Studio minutes. Claude asks you to confirm the name, number, and objective first.
A blocked attempt returns a tool error that names the rule that failed and what would change it — consent not confirmed, a represented party, a witness, restricted or health information in the brief, a number on the Do Not Call list, a repeat within two hours, the daily cap, or a time outside 8:00 a.m.–9:00 p.m. in the recipient’s or your firm’s time zone (with the next allowed time) — and dials nothing. Unknown arguments are refused rather than ignored, so a client still sending the retired dry_run flag gets an error, never a call.

check_call

Checks whether Lawtte would place this exact call right now. It takes the same inputs as place_call and runs the same rules — consent, represented party, recipient type, call content, Do Not Call list, daily cap, two-hour repeat rule, calling hours — without dialing, reserving or recording anything. Use it to validate an integration before calling anyone. It replaces place_call’s old dry_run flag.
boolean
Whether place_call with the same arguments would dial now.
string
When allowed is false, why.

get_call

Reads one call belonging to your Studio — including calls your receptionist answered, not only calls the connector placed.
string
required
A call ID from place_call or list_calls.
string
outbound for a call the connector placed, inbound for one your receptionist answered.
string
One of blocked, dialing, in_progress, completed, or failed.
string
A plain-language readout of what happened on the call.
string
On outbound calls: yes, no, or partial, from post-call analysis.
string
A short summary of the conversation.
number
How long the call lasted.
boolean
Whether a word-for-word transcript can be read with get_transcript.
boolean
On inbound calls: whether a recording exists. Recordings are played in the Lawtte dashboard, behind sign-in; the connector never returns the audio or a link to the file.
string
Where the firm reviews this kind of call in the Lawtte dashboard.
On an inbound call you also get what the receptionist captured: caller_name, caller_phone, caller_email, and caller_type.
This returns a summary, never the transcript. Use get_transcript when the exact wording matters.

get_transcript

Reads what was actually said, word for word. Transcripts are long, so this returns one window at a time.
string
required
A call ID from place_call or list_calls.
number
Size of the window to return, 500–20,000. Defaults to 8,000.
number
Where to resume from. Pass the next_offset returned by the previous call to keep reading.

list_calls

Lists up to 20 recent calls for your Studio, newest first — both calls the connector placed and calls your receptionist answered.
string
ISO 8601 timestamp with an offset. Only calls after this time are returned.
string
Filter by blocked, dialing, in_progress, completed, or failed.
string
inbound for calls your receptionist answered, outbound for calls the connector placed. Omit for both.
JSON schemas and error semantics for these tools are in the MCP server reference.
The read tools (get_call, get_transcript, list_calls) are scoped to the Studio account you approved. They never return calls from another firm, or calls placed outside the connector.

Saved outbound agents

A saved outbound agent is a call you set up once and run many times: a name, an objective with {{placeholders}}, who it calls, what it should find out, and what to do at voicemail. Run one with place_call by passing its agent_id and the placeholder values in fields, instead of an objective. Every saved agent runs with your firm’s own details — practice areas, office hours, address, website, attorneys, area served, fee policy and notes — read from your receptionist on each call. Change them in your receptionist’s settings and every saved agent uses the new details on its next call. {{name}} (the person called) and {{firm}} (your firm’s name) are filled in automatically. Any other placeholder must be given in fields, or the call is refused before dialing with the missing field named. Field values follow the same content rules as an objective: no Social Security, card or bank numbers, dates of birth, passwords, codes or medical details.
With agent_id, recipient_type defaults to the agent’s own. get_call on a call made by a saved agent also returns the agent’s name, who the call reached and what it found out (collected).
Starter templates: adjuster-demand-received (for the demand-letter skill), client-case-update and client-documents-needed. Family-law firms also get family-law starters in their list.

Agent Builder tools

The Agent Builder is where your firm’s email, text and call agents are built and managed in the Lawtte dashboard (Agents). These tools let Claude, Grok Bot or any MCP client run that same builder, with the same control as the dashboard. Every agent they start is tagged with the app that built it, so the dashboard shows via Claude or via Grok Bot next to it. Anything that sends or changes a live agent is marked destructive, so the client asks you before running it. How to use them: for people and for AI agents.

Calling setup tools

A firm that signs in from Claude with no Lawtte number can place its first call after two answers: the firm’s name, and what happens when someone calls the firm’s Lawtte number back.

get_calling_setup_status

Read-only. Returns whether the signed-in account can place calls and, as data, what is missing first. Takes no inputs.

set_up_calling

Saves the firm’s settings and makes the account able to place calls.
string
required
The firm’s name. Every call opens by saying it is calling on behalf of this firm.
object
required
What happens when someone calls the firm’s Lawtte number back: { "mode": "forward", "callback_number": "(415) 555-0134" } transfers the call to that number; { "mode": "take_message", "notify_email": "intake@firm.com" } has the AI receptionist take a message and email it.
string
One of America/New_York, America/Chicago, America/Denver, America/Phoenix, America/Los_Angeles, America/Anchorage, Pacific/Honolulu. Used for calling hours. Defaults to the zone of the callback number or the state.
string
Two-letter US state. Picks a local area code for the calling number.
On an account without a card, it starts a trial: a dedicated calling number (its area code from the callback number, else the state, else the time zone) and 3 trial calls, each capped at a few minutes. Calls back to that number follow callback_handling. Running it again updates the settings; it never adds a second number and never resets the trial. Trial rules:
  • The account’s email address must be confirmed.
  • One trial per firm email domain. On personal mailboxes (gmail.com, outlook.com, icloud.com and the like) it’s one per address.
  • The usual place_call rules still apply, including 50 calls a day and one call per number every two hours.
  • When the trial calls are used up, place_call and check_call refuse with an error that names create_activation_link. Activation keeps the same number.
  • A trial number is released if the account isn’t activated within 14 days.
  • Trial calls are not billed.
Until set_up_calling has run, place_call and check_call refuse with an error that names set_up_calling. Where Lawtte requires a card before the first call, set_up_calling saves the settings without a number, and place_call’s error names create_activation_link. No tool charges, picks a plan or accepts terms. That only happens on the activation page.

Receptionist setup tools

These let a firm set up a new Lawtte receptionist from Claude. The first two work before signing in. No tool takes payment details, accepts terms or turns a receptionist on. That only happens on the activation page.