A phone call becomes a structured spreadsheet row in about 16 seconds, with no human involved 一通电话,约 16 秒后自动变成一行结构化表格数据,全程无人工
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. 处理捐赠来电的生产系统。每通来电都会被录音、转写,由 LLM 理解后写入 Google Sheets,来电者刚挂电话,数据就已经在表里了。
2026-07-07 · updated 2026-08-08 · first published on boheastill.com最初发表于 boheastill.com
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.
问题
客户通过电话接收捐赠承诺。每通电话都得有人听着,记下金额、手续费和受益机构。又慢又容易出错,下班之后就没人处理了。
约束
没有客服团队,没有 CRM,也不想学新软件。结果必须落在团队本来就在用的地方:一张 Google 表格。系统还得无人值守,不论白天黑夜,每通来电都自动触发。
方案
Linux 服务器上一个自足的守护进程,接入 Twilio 的 Webhook:
- 来电 → Twilio 录下语音留言,并向服务器发出 Webhook。
- 转写 → 录音被下载,并由 ASR 引擎转成文字。
- 提取 → LLM 抽取结构化字段:捐赠金额、手续费、受益机构。
- 入表 → 完整的 8 列数据(时间戳、来电号码、录音链接、逐字稿、提取字段、置信度)写入 Google Sheets。
从挂断电话到数据入表,端到端耗时:约 16 秒。
让它值得信赖的关键:置信度评分
LLM 提取的结果从不盲目采信。每行数据都带一个按明确规则算出的 0–100 置信度分数,金额没说清、机构名称含糊、来电者语气犹豫、音质差,都会扣分:
| 分数 | 处理方式 |
|---|---|
| ≥ 90 | 自动入库,无需复核 |
| 70–89 | 人工抽查 |
| < 70 | 标记,转人工复核 |
AI 负责干活,分数决定什么时候需要人看一眼。这就是“演示品”和“能拿来跑生意的系统”之间的差别。
证明
还能用在哪
同样的流程适用于任何需要把电话变成结构化数据的场景:承包商的漏接来电记录、服务型企业的下班后登记、订货热线、预约请求。如果你的生意离不开有人边听电话边做记录,这套系统可以把记录这一步省掉。