Back to all posts
ThinkingJuly 22, 202610 min readUpdated October 13, 2026

Every feature in our changelog we almost didn't ship

Escalation rules, thirteen languages at once, interruption handling, the changelog itself: the Aiva Chat features we almost didn't ship, and what saved them.

AI
The Aiva Chat team
Aiva Chat
A pencil resting on torn and crumpled paper
Photo by Chimpanzeee on Unsplash

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

FeatureThe simple version that almost shippedWhat shipped insteadWho the simple version would have failed
ChangelogNo public changelogA public changelog pageCustomers who never learned about fixes
HandoffOne fixed trigger set for every businessCheckbox triggers plus custom rulesClinics, law firms, anyone with special cases
LanguagesEnglish and Hindi, others over a yearThirteen languages at launchEvery caller outside those two languages
InterruptionsFinish every sentenceStop and respond when the caller cuts inAny caller in a hurry
WidgetOpen instantly on page loadClosed by default, optional delayEvery 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.

ThinkingBusiness
Share
AI
Written by
The Aiva Chat team
Aiva Chat

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.

Rajkot, India · at Aiva Chat since 2024
More posts

FAQ

Common questions.

Still have questions?Contact us

No. Several launched in a different form than first proposed, and some almost got cut entirely. Configurable handoff triggers, launching thirteen languages at the same time, mid-sentence interruption handling, the calmer website widget default, and the public changelog itself were all genuine close calls that went the other way after an argument, a test, or both.

We debated it, because a running list of what's new also shows what wasn't there last month. We shipped it anyway because people discovering improvements by accident, or never, felt worse than the risk of showing our work. It also answers many "can it do this yet?" questions before anyone has to ask them.

The original plan was one fixed rule set for everyone. Thinking through clinic calls made it clear that a healthcare practice and a retail shop draw the line for a human in very different places. So each trigger is a checkbox on the assistant's Handoff tab, and anything more specific goes into rules you write yourself.

The original plan was English and Hindi first, with the rest added over the following year. We reversed course before launch because the cost of any language sounding unfinished, and of telling businesses "not yet" over and over, felt worse than the extra testing needed to get all thirteen past the same bar before release.

Yes. Aiva Chat keeps listening while it speaks, so a caller can cut in with a correction, a new question, or a change of plan, and the assistant stops and responds to what they said. This was nearly pushed to a later release as a nice-to-have, until the team tested the alternative on ourselves and found it unbearable.

By default the widget stays closed as a small chat bubble until a visitor clicks it. If a business wants it to open on its own, it sets an auto-open delay in seconds in the Widget Builder, so it appears after the visitor has had time to read. The instant-popup version was the original plan and almost shipped.

Roughly, if the harder version measurably changes how a real caller or visitor experiences Aiva Chat, rather than how a feature looks in a demo, it's worth the extra engineering time. If it doesn't, we leave it cut and spend the time elsewhere. Testing the simple version on ourselves usually settles the question quickly.

Yes. Aiva Chat has no public developer interface, no single sign-on (SSO), no gift cards or coupons for bookings, and no mobile app, among other things. Some of those are choices about focus rather than oversights, and we'd rather say so plainly than imply otherwise. We've written separately about the features we've deliberately left out and why.

Like this? Get more.

One email a month. Guides, engineering deep-dives and product updates. No fluff.

4,200+ subscribers. Unsubscribe anytime.