Inspiration
A health insurer can deny a claim in seconds, but getting an explanation often means spending half an hour navigating menus, waiting on hold, and taking notes. For a busy medical billing team, that time adds up quickly. Many smaller claims are never investigated because the phone call costs more in staff time than the answer appears to be worth. We built Trunkline to take on the waiting and information gathering while keeping people responsible for every meaningful decision.
What Trunkline Does
Trunkline is an AI phone agent for the administrative work behind unpaid medical claims. It calls a health plan, navigates the phone menu, waits through multiple hold periods, speaks with a representative, and returns a structured answer. It can gather claim status, denial reasons, prior authorization status, and eligibility information. Each result includes the representative’s own words as supporting evidence, along with the call reference number and measured hold time. Trunkline does not file appeals, change claims, accept financial terms, or close cases independently. A person reviews and approves every result before it can move forward.
How We Built It
Trunkline is a Python application built with the CALL E Developer API. The workflow begins by grouping claims for the same payer so several questions can be handled during one conversation. Before a call begins, Trunkline checks the authorized destination, calling window, claim priority, disclosure rules, and call budget. It then creates a focused task for the phone agent using only the information required for that workflow. When the call ends, Trunkline validates the response against a closed schema. It also checks every evidence quote against the transcript. If a quote cannot be found, the related answer is cleared and sent to human review instead of being treated as fact. Patient identifiers are stored separately from the operational ledger. Transcripts are scrubbed before they are saved, and an audit chain records what happened without storing the disclosed values. We also built a local operations console where users can review claims, inspect call history, read supporting evidence, measure time spent on hold, and approve completed results.
Challenges We Faced
The hardest part was designing for the uncertainty of real phone calls. Representatives transfer callers, phone menus change, conversations contain long pauses, and one call can produce both complete and incomplete answers. We had to distinguish hold time from speaking time, prevent duplicate calls after an interrupted process, verify that extracted answers were actually spoken, and preserve useful claim numbers while removing patient information from stored transcripts. Another challenge was defining what the agent must never do. A phone agent can gather information, but appeals, financial agreements, clinical discussions, and changes to a claim require human judgment. Those boundaries are enforced in the application rather than left only as instructions in a prompt.
What We Learned
We learned that a trustworthy phone agent needs more than a convincing conversation. It needs authorization, narrow data access, structured outputs, evidence checks, clear failure states, and a reliable path back to a person. We also learned that the most useful result is not simply a call summary. Billing teams need an answer they can inspect, trace to the transcript, and confidently act on.
What Is Next
The next step is testing Trunkline with a wider range of payer phone systems and administrative workflows. We also want to improve menu path learning, expand regional phone validation, and add more integrations for billing teams while preserving human approval and privacy boundaries.
Log in or sign up for Devpost to join the conversation.