Inspiration
Construction teams often discover too late that “available” did not establish the full quantity, delivery date, quote validity, excluded handling fees, or acceptable substitutions. Regional suppliers still resolve these exceptions fastest by phone, but an unstructured call is hard to review and easy to misinterpret.
What it does
Byggeklar Call Sheet turns one authorized supplier-readiness check into a bounded CALL-E phone task and a structured evidence packet. It asks for quantity, delivery date, quote validity, excluded fees, and substitutions; reads the captured facts back once; and keeps every commercial decision with a person. It never places an order, negotiates, accepts fees, or approves a substitute.
How we built it
The TypeScript CLI first generates an exact preview and SHA-256 approval receipt. Any edit invalidates that receipt. The live path imports the official @call-e/calle SDK, calls client.calls.create(...) once with a stable idempotency key, waits for that same call with waitForResult(...), and writes the private report with owner-only permissions. The repository includes schema validation, a supported-region guard, destination masking, consent and authorization metadata, task boundaries, retry protection, and six automated tests.
A clearly labelled fixture demo exercises the complete result contract without pretending a phone call occurred. The live workflow remains deliberately fail-closed when the destination is unsupported or consent evidence is missing.
Challenges we ran into
The hardest design problem was preventing a useful voice agent from quietly becoming a purchasing agent. We separated evidence collection from approval, made ambiguity explicit, rejected unsupported destinations, and preserved transcript evidence and provider confidence instead of converting an answer into a commitment.
Accomplishments that we're proud of
- A phone-native workflow for a real construction bottleneck
- CALL-E is invoked at runtime rather than mocked in the live path
- Exact approval receipts and idempotency protect against accidental or duplicate calls
- Partial answers, voicemail, refusals, fees, and substitutions all require human review
- Six automated tests pass locally
What we learned
Reliable voice automation needs more than a good prompt. It needs explicit authority, narrow scope, observable evidence, deterministic retries, and a clear boundary where a human decides.
What's next
Next we will run an authorized live demonstration with a recipient in a CALL-E-supported region and extend the same evidence contract to delivery-status and quote-expiry follow-ups.
Log in or sign up for Devpost to join the conversation.