A B2B SaaS shipped an AI document tool to enterprise customers. The product asked end-users to confirm every extracted field. The AI was accurate. The UX was a disaster. Users abandoned. Renewals stalled. Nobody at the company knew that the verification modal was the reason — until they cut it.
They built an extraction product that read invoices and receipts. The AI handled 92% of fields perfectly. For the rest, they shipped what every responsible team ships: a verification UI that asked the end-user to confirm a handful of low-confidence fields per document.
The UI looked clean in QA. In production it was an adoption killer.
Enterprise customers buy AI products to get time back. Asking the user to verify "Is this total $12,340 or $12,840?" on every fifth document gives them a new job they didn't sign up for. They stopped opening the product after week three. Renewal calls went south. Nobody at the SaaS company knew why — they were watching extraction accuracy, not abandonment.
Their AI dashboard showed 99% extraction accuracy week over week. Their NPS was crashing. The team was confused because the metric they were optimizing — model quality — wasn't the metric customers cared about. Customers were measuring something simpler: how much time does this thing actually save me? When the answer was "not enough to bother," they stopped logging in.
“We thought we were shipping an AI product. We were shipping a checklist for users to fill out. Once we saw it that way, the renewal data made perfect sense.”— VP Product, B2B SaaS · post-mortem
They ripped out the in-product verification modal. Anywhere their extractor returned a field with confidence below 0.95, they called verify() with the document and the AI's draft.
An AwaitVerify reviewer confirmed the field in the background, typically within 30 seconds. The end-user never saw the verification step. The product surfaced one final, correct answer per document. The "please confirm" modal disappeared from their UI completely.
# before — UX killer for field in extracted: if field.confidence < 0.95: ui.ask_user_to_confirm(field) # <- they abandon # after — invisible from awaithumans import verify_document for field in extracted: if field.confidence < 0.95: field = await verify_document( task_description="Confirm this field", response_schema=type(field), document_path=doc, prior_extraction=field, ) # user sees one answer. trusts the product.
“The cheapest renewal we ever bought was deleting a confirmation modal. AwaitVerify made deleting it actually safe.”— CEO, B2B SaaS