The challenge
A first-time buyer comparing notice periods at eleven at night, working out which account will hold a deposit for eight months without a penalty. A teller who can settle that question in fifteen seconds, but only between nine and four, and only for whoever is standing in front of her. A marketing manager who can see in the analytics exactly which product page visitors give up on, and who has never had anything to put on that page that answers back.
A savings bank sells terms. Notice periods, penalty conditions, minimum balances and rate tiers are the product, and they differ between accounts that look identical from the outside. An assistant that answers approximately, or that answers about savings accounts in general rather than about the account the visitor is looking at, is worse than no assistant at all, because it speaks in the bank’s voice while saying something the bank never committed to in writing.
So the requirement was narrow and unusually strict. Specific and never approximate. Bounded by what the bank publishes, with the source visible on the answer. Changeable after it went live, because nobody expected to get the wording right on the first attempt. Able to grow new capabilities later without starting over. And no banking system in scope at all.
The solution
Point it at the published site. The material the bank already maintains became the corpus, crawled as it stands rather than rewritten for the assistant. That means the assistant’s source is kept current by work the bank does anyway instead of by a second maintenance job nobody owns.
Declare the role and write the instructions in house. The assistant is configured as customer support rather than left generic, and it carries a persona the bank wrote rather than a default one.
Show the source on the answer. Citations are enabled, so a visitor can see which page a set of terms came from and go read it, which matters a great deal when the answer is a set of conditions.
Retire the default first. The assistant created at sign-up took a single recorded question and was taken out of service, so exactly one voice has ever answered for the bank.
Add the actions once there was a record. Page awareness and lead capture went on four months into the assistant’s life, on the deployment already answering visitors, rather than at launch on an assumption.
The capability that decided it
The assistant running today is the one that launched, and it is not the product it was. Its instructions have been rewritten 127 times. Two agentic actions were switched on four months in. Its corpus has been recrawled as the bank’s own site changed.
Every one of those changes landed on the deployment already answering visitors. None of them produced a second assistant, a migration, a reload of the assistant’s material or a day out of service. That is the difference between buying a finished thing and buying something you can keep deciding about, and it is the reason a bank of this size could start deliberately narrow without betting the deployment on getting it right the first time.
Through all of it the answer boundary never moved. The assistant has been held to the bank’s own published material from the first day to the most recent, across every change to its wording and its capabilities.
The results
Read the two day counts against each other. For its first four months the assistant was asked something on 31 days out of 114, which is the profile of a deployment its visitors have not found yet. Since the actions were enabled it has been asked something on 243 days out of 259, which is the profile of a fixture. Raw volume across those two stretches went from 807 questions to 1,433.
What the bank has now is a fixture on the website rather than a feature of it. It answers on nearly every day of the year, it carries two actions that move a visitor onward from the answer, and the words it uses are whatever the bank decided most recently rather than whatever was written at launch.
One caution, stated here rather than buried. The two stretches sit either side of the point at which the actions were enabled, and the record establishes coincidence and nothing more. A placement change, a promotion, a seasonal effect or a change in how the widget is surfaced would all produce the same signature in this data.
Why it worked
The assistant could change under live traffic. Two capabilities were added mid-life and the questions kept arriving through the week it happened.
The instructions stayed editable. A hundred and twenty-seven revisions, none of which required rebuilding the assistant or reloading its material.
The answer boundary never moved. Grounded in the bank’s own published material throughout, with the page shown on the answer.
The estate stayed at one. No second assistant was ever needed to carry a change, so there has never been a question about which one is current.
| Measure | To date |
| Questions asked, raw count | 2,240 |
| Revisions to the assistant’s instructions since launch | 127 |
| Agentic actions added to a live assistant | 2 |
| Rebuilds, migrations or days out of service | 0 |
| Assistants in production | 1 |
| Time in service | 13 months |
| Questions, first four months | 807 |
| Questions, since the actions were enabled | 1,433 |
| Days carrying a question, first four months | 31 of 114 |
| Days carrying a question, since the actions were enabled | 243 of 259 |
Figures from CustomGPT.ai product usage records. Shared anonymously at the customer’s request.