A phone call becomes a structured spreadsheet row in about 16 seconds, with no human involved
A production system for donation-call intake. Every incoming call is recorded, transcribed, interpreted by an LLM and written to Google Sheets by the time the caller has put the phone down.
The problem
The client received donation pledges by phone. Every call meant someone listening and writing down the amount, the processing fee and the beneficiary charity. It was slow, error-prone and impossible to keep up outside business hours.
The constraint
No staffed call center, no CRM, and no appetite for new software. The output had to land where the team already worked: a Google Sheet. And the system had to run unattended, triggering on every incoming call, day or night.
The solution
A self-contained daemon on a Linux server, wired into Twilio’s webhook:
- Call in → Twilio records the voice message and fires a webhook to the server.
- Transcribe → the recording is downloaded and converted to text by an ASR engine.
- Extract → an LLM pulls out the structured fields: donation amount, processing fee, beneficiary organization.
- Deliver → a complete 8-column row (timestamp, caller, recording link, transcript, extracted fields, confidence) lands in Google Sheets.
End-to-end time from hang-up to spreadsheet row: ~16 seconds.
The part that makes it trustworthy: confidence scoring
LLM extraction is never trusted blindly. Every row carries a 0–100 confidence score computed from explicit rules, with deductions for an unstated amount, an unclear charity name, hesitation in the caller’s voice or poor audio:
| Score | What happens |
|---|---|
| ≥ 90 | Auto-committed, no review needed |
| 70–89 | Human spot-check |
| < 70 | Flagged for manual review |
The AI does the work; the score decides when a human needs to look. That’s the difference between a demo and a system you can run a business on.
Proof
Where else this applies
The same pipeline works wherever a phone call needs to become structured data: missed-call capture for contractors, after-hours intake for service businesses, order lines, appointment requests. If your business depends on someone writing down what callers say, this removes that step.