Our changelog looks, from the outside, like a tidy list of things we decided to build and then built. It wasn't tidy. At least five things on it almost didn't happen. Some were killed in a planning meeting and revived a week later. Others shipped in a form nobody originally proposed.
We've started keeping a private note of the genuine close calls. The official changelog records what we shipped. It doesn't record what we almost didn't, or how differently some of it could have turned out if one argument had gone the other way.
This matters beyond our own history. If you're evaluating an AI receptionist, the features that look most ordinary are often the ones that took the hardest arguments: letting callers interrupt, handing off to a person at the right moment, speaking a caller's language properly from day one. The simple version of each one was cheaper and nearly won.
If you're setting up Aiva Chat, the close calls also double as a checklist: the settings that nearly didn't exist are the ones most worth configuring deliberately, and we end with how.
What "almost didn't ship" means at a small AI company
Aiva Chat is an early-stage, bootstrapped company, founded in 2024 and based in Rajkot. Like any small team, we have more ideas than engineering hours. Every feature competes with every other feature, and with the launch date.
In that setting, "almost didn't ship" usually means a cheaper version existed, and the cheaper version was good enough to demo. Demos are where most product decisions get made, and demos are forgiving. A tester who knows the script doesn't interrupt, doesn't mumble, and doesn't get annoyed by a popup.
The features on this list share one trait. In each case, the simple version worked in a demo and failed on the receiving end, for the caller or the website visitor who never asked to be part of a test.
That's the lens for everything below: a handful of ordinary moments where somebody insisted on testing the cheap version as a real user would experience it, and the cheap version lost.
How a feature nearly gets cut
The close calls followed a surprisingly consistent pattern.
Step 1: The simple version is proposed
Someone proposes the cheapest version that technically meets the requirement: one fixed rule set, two languages, finish every sentence, open the widget on page load. It's reasonable, scoped, and easy to estimate.
Step 2: The harder version is called a nice-to-have
When someone argues for the harder version, it gets labeled "v2." Usually the person most under pressure to hit the launch date makes this call, and they're not wrong about the cost.
Step 3: Someone tests the simple version on themselves
The argument rarely gets settled by debate. It gets settled when a few of us call in, try to interrupt, get talked over, or watch a chat window jump in front of a page we were trying to read.
Step 4: The scope changes, and the date slips
Once people have felt the simple version, the harder one stays in scope. The launch moves by weeks, not months, and nobody later argues it should have gone the other way.
The five close calls
The changelog itself
We almost didn't build a public changelog at all. The argument against was reasonable: a running list of what's new is also a running list of what wasn't there last month. A prospect could read an old entry and see exactly what Aiva Chat couldn't do while they were evaluating it.
We shipped it because the alternative, people discovering improvements by accident or not at all, was worse. The Keep a Changelog project puts the purpose simply: to help people "see precisely what notable changes have been made" between releases. For a small company without a marketing department, that's the place to say what changed and why.
Configurable handoff triggers
When we first built human handoff, the plan was one fixed set of triggers baked into the product, with no settings screen to build, document, or support.
Thinking through clinic calls changed that. A patient describing symptoms is not a shopper asking about a refund. So each trigger became a checkbox on the assistant's Handoff tab: asks for a person, sounds upset, asks about billing or refunds, mentions an emergency. Anything more specific goes into rules the business writes itself, as we describe in our guide to escalation rules.
Thirteen languages on day one
The plan, for a long time, was English and Hindi first, with the other eleven added over the following year as demand justified each one. It's the conventional, lower-risk way to sequence a hard localization problem. We changed course a few months before launch.
We argued about this risk for weeks. Thirteen languages at once meant thirteen chances for something to sound wrong instead of two. We decided the cost of "Aiva Chat doesn't really speak Gujarati yet" was worse than the testing needed to get all thirteen right before anyone could compare them.
What tipped it was imagining the same disappointing conversation repeated for every language not yet live: a business in Ahmedabad asks about Gujarati, hears "not yet," and goes elsewhere.
Letting callers interrupt mid-sentence
Early voice demos had Aiva Chat finish its sentence no matter what. That's fine in a demo and maddening on a real call, when a caller just wants to correct themselves or jump ahead.
Handling interruptions cleanly, and telling a correction apart from a pause to think, was fiddly enough that it was proposed for "v2" more than once. It stayed because a few of us tried to interrupt the old version and got talked over. Ten seconds of that settled it.
The widget that almost opened instantly
The original website widget spec showed the chat the instant a page finished loading. It was the cheapest trigger to build, and for a few weeks it was the plan.
We tested it on our own site first. It felt exactly like what it was: a chat window jumping in front of a visitor before they'd read a word. The shipped default keeps the widget closed as a bubble until clicked. A business can set an auto-open delay if it wants the widget to appear on its own, as the widget setup guide explains.
What each close call changed for callers and visitors
Callers can be honest about what they need
Configurable handoff means a caller who's upset, has a billing problem, or mentions an emergency reaches a person, based on lines each business draws for itself.
Nobody waits for their language
Launching all thirteen languages together means a caller in Gujarati, Arabic, or Korean got the same tested assistant on day one as a caller in English.
Calls feel like conversations
Interruption handling is the difference between a call that feels like talking to a receptionist and one that feels like waiting for a recording to finish.
Visitors read the page first
The calmer widget default respects someone who came to read about a business before asking it anything.
The simple version vs. what we shipped
| Feature | The simple version that almost shipped | What shipped instead | Who the simple version would have failed |
|---|---|---|---|
| Changelog | No public changelog | A public changelog page | Customers who never learned about fixes |
| Handoff | One fixed trigger set for every business | Checkbox triggers plus custom rules | Clinics, law firms, anyone with special cases |
| Languages | English and Hindi, others over a year | Thirteen languages at launch | Every caller outside those two languages |
| Interruptions | Finish every sentence | Stop and respond when the caller cuts in | Any caller in a hurry |
| Widget | Open instantly on page load | Closed by default, optional delay | Every visitor trying to read the page |
The simple versions weren't wrong in an engineering sense. Each one met its requirement and would have passed a demo. That's what made them tempting.
In fairness to the simple versions, they would have shipped sooner, and sooner has real value for a small company. Every week a launch slips is a week without customers or feedback.
The table's last column is the point. In each case, the cost of the simple version fell on someone outside the room: a caller, a visitor, a business with needs we hadn't pictured. Testing on ourselves was how we finally pictured them.
How to use these features in your own Aiva Chat setup
If you're setting up Aiva Chat, the close calls translate into a few concrete settings worth getting right.
Step 1: Tick the handoff triggers that fit your business
Open the assistant's Handoff tab and choose which situations go to a person. Add at least one transfer number so those calls have somewhere to go. Our call routing guide walks through it.
Step 2: Write rules for your special cases
Use "In this situation, do this" rules for anything your industry treats differently, like symptoms in a clinic or a disputed invoice in a trades business.
Step 3: Choose your language mode
Pick auto-detect, a fixed language, or bilingual mode with a second language. Test with the languages your customers actually use.
Step 4: Interrupt your own assistant
Use Call it now, ask a question, and cut in halfway through the answer. If it doesn't feel right, adjust the instructions and test again.
Step 5: Set the widget's auto-open delay deliberately
Leave it at zero to stay closed until clicked, or choose a delay long enough for visitors to read your page first.
Mistakes we nearly made
Shipping the version that demos well
A demo audience knows the script. Real users don't. Several features on this list passed every demo in their simple form and failed the first time someone used them for real.
Treating one default as right for everyone
A fixed handoff rule set looked simpler. It would have been wrong for half the businesses using it, and we'd have found out after launch instead of before.
Sequencing for our convenience, not the user's
A staggered language rollout was easier for us. It would have meant telling some businesses "not yet" for months, which is a cost they pay, not us.
Settling arguments by debate
When a feature's value is hard to argue in a meeting, more arguing rarely helps. Having everyone experience the alternative for ten seconds settles it faster.
Lessons we now apply to every feature
- Test the simple version on yourself first. Call it, click it, interrupt it.
- Ask who pays for the shortcut. If it's the caller or visitor, be suspicious.
- Make defaults calm and options available. Closed widget, optional delay; checkbox triggers, optional rules.
- Don't sequence away fairness. If a feature is for everyone, try to launch it for everyone.
- Write down the close calls. It stops you trusting the tidy version of your own history.
- Be honest about what's still missing. A changelog that admits gaps builds more trust than a page that hides them.
Why we keep this list
None of these features look contested now. They're two-line entries on the changelog, looking inevitable. They weren't. Almost everything we've built well was, at some point, one meeting away from being cut, delayed, or shipped worse.
We keep the list mostly as a check against our own instinct to trust the tidy story, the same instinct behind confident-sounding claims in AI marketing that we try to resist about our own product.
Conclusion
If there's one judgement we'd pass on to other small teams, it's that demos are a poor place to decide scope. All five simple versions passed one. Each would have failed a caller or visitor who never agreed to be a tester.
The honest caveat is that this habit costs time. Every close call that went the harder way pushed a launch back by weeks, and for a bootstrapped company weeks matter. We don't test everything this way. We do it when a feature's value is hard to defend in a meeting, because those are the arguments the cheap version tends to win.
"Let's just ship the simple version for now" preceded four of the five features on this list. We still hear it, and now the reply is a ten-second test call before anyone decides.
Ready to test these features yourself?
Put the close calls to the same test we did. Ring the demo line at +1 (970) 972-0974, ask about something, and cut in halfway through the answer. Then say you want a person, or switch to Hindi, Gujarati, or Spanish mid-call.
Handoff triggers, all thirteen languages, and the widget's open-delay setting are on every plan, Starter ($49 a month) included.
If they hold up, start a 14-day free trial (no card) and set up your own handoff triggers, or book a demo and we'll configure them with you.
Posts from the people building Aiva Chat in Rajkot — how the product works, what we have learned building it, and guides for getting the most out of an AI receptionist.