A property manager shouldn't have to listen to every voicemail to find the one that's flooding.
Call Triage Pipeline turns raw GoTo Connect call recordings into categorized, urgency-ranked summaries delivered straight to a property manager's inbox, so an active leak gets seen in minutes, not whenever someone gets around to the voicemail box.
Problem
A property management client was fielding tenant calls through GoTo Connect, maintenance emergencies, rent questions, leasing inquiries, complaints, all landing in the same undifferentiated pile of recordings. Nothing distinguished "my kitchen is flooding right now" from a routine lease renewal question until a human sat down and listened to each one.
"We do not want a fragile workflow that breaks every time a file name changes." (client's top concern going in)
Approach
Every recording GoTo Connect drops into S3 triggers a Lambda that transcribes the call with OpenAI's Whisper API, then hands the transcript to GPT-4o-mini for classification: category, urgency flags, a plain-language summary, and concrete action items. The result is logged to DynamoDB as the single source of truth for that call, and a triage email goes out over Amazon SES immediately.
- Urgency-first triage: active flooding or no-heat calls are flagged distinctly from routine leasing questions, right in the subject line of the email.
- Never-fail parsing: filename and metadata extraction degrades to "unknown" instead of throwing, so one malformed recording can't stall the whole pipeline.
- DynamoDB as source of truth: one
CallLogitem per call keyed bycall_idandprocessed_at, so the weekly digest is a fast query, not an S3 prefix scan. - A weekly digest, not just per-call noise: an EventBridge-scheduled Lambda rolls up the past 7 days into a single Monday-morning summary email.
Outcome
A missed call about active flooding now reaches a property manager as a flagged, urgent email within minutes of the recording landing in S3, no one has to triage voicemails by ear. Routine questions still get logged and summarized, just without waking anyone up over them.
The interactive demo above walks through three real scenarios end-to-end: an emergency, an "in-between" case, and a routine call, using the same transcription and triage logic, so you can see how the categorization actually reads on real audio.