Inspiration

Small law firms lose clients in the intake form. Older clients, people on a phone at work, anyone reading in a second language — they don't finish it. Nota Intake makes the form three steps and lets the phone do the intake.

What it does

The client picks a topic (real estate, will, trust, lawsuit, or something else), leaves a name and number, and CALL-E calls them back within a minute. The topic plans the call: each type has its own questions and its own recipient_result_schema on top of the common intake (summary, other parties for the conflict check, urgency, deadline, best time, email confirmed letter by letter, consent). A lawsuit intake learns which side they're on, whether court papers arrived and the deadline printed on them; a will intake learns about family, an existing will and an executor; real estate gets the property, their role and a closing date; a trust gets its purpose and beneficiaries by relationship only. The assistant states on every call that this is intake, not legal advice, and that no attorney-client relationship exists until an attorney confirms in writing. It never quotes fees, never asks about health or asset values.

A token-gated staff console lets the firm call a client from the desk (walk-ins, voicemails), watch the call land, filter records by topic and status, search by name or other party, and place a consultation reminder call from a date picker — the reminder's outcome (confirmed, can't make it, reschedule request) syncs back onto the record.

How we built it

Everything runs on Cloudflare Pages, Functions and KV — no framework, no build step. Every intake and reminder is a real POST /v1/calls with a task and result schema planned per matter type, a webhook_url, and an Idempotency-Key; GET /v1/calls/{id} supplies the authoritative state, transcript turns, confidence and evidence. Scripts exist in English, Spanish and Bahasa Indonesia.

Tested with real calls

On a US number: English and Bahasa Indonesia interviews completed. The demo video's call scene is a real lawsuit intake recorded on the client's phone (CALL-E returns transcript turns, not audio). When the form said "received court papers" and the client said no lawsuit existed yet, the assistant corrected course and recorded him as the plaintiff-to-be — exactly what the per-type schema is for.

Challenges and what we learned

Spanish is not carried on US (+1) lines today. We tested it three ways — REST locale: "es", Spanish task text with locale: "en-US", and MCP plan_call --language Spanish — and all three declined before dialing, while Bahasa (locale: "id") completed a real call on the same number. The README documents this rather than hiding it; when CALL-E enables Spanish for US, the change is one row in a JSON file. Language is also locked per call: the bot offered to switch to English mid-call and could not.

What's next

Spanish (and French) interviews the day CALL-E carries them on US lines; SMS confirmations once the firm's A2P registration clears; calendar booking from the console.

Live: https://nota-intake.pages.dev · Repo: https://github.com/banksythequantLab/nota-intake · PR: https://github.com/CALLE-AI/awesome-phone-call-agents/pull/393 · CALL-E account: dj@soltis.info

Built With

Share this project:

Updates

Submission history