Conversational Banking: From Customer Questions to Authorized Actions

Authors
Paweł Sawicki
Senior AI Engineer
@
Callstack

A customer opens their banking app and types:

“I don't recognize the €84 payment from yesterday. What is it, and should I block my card?”

For the customer, this is one question. For the bank, it crosses several systems and several levels of risk. The assistant needs to understand what the customer means, identify the right transaction, retrieve trusted information, explain what it found, and potentially move from answering a question to taking action.

Conversational banking connects these customer requests to bank-controlled services. The model interprets the message and requests the relevant operation. Banking services verify permissions, apply the required controls, and execute the action.

Following this example from transaction lookup to card freeze and specialist handoff shows how those responsibilities fit together, and what the bank needs to control at each step.

Start with the customer's intention

The assistant first needs to establish what the customer is referring to. Because the conversation happens inside an authenticated banking channel, it can work with the customer's session and identity context. It does not need the customer's entire financial history in its prompt.

The model interprets “the €84 payment from yesterday” and requests the relevant transaction data through a controlled banking capability. The transaction itself still comes from the bank's systems of record. The model may explain the result, but it is not the source of the amount, merchant, date, or card information.

That separation matters, because banking systems remain responsible for truth, while the model handles language, interpretation, and orchestration. For consequential information, the system retrieves authoritative values rather than relying on what a model happens to know or generate.

The assistant can now respond:

“I found one €84 card payment to ACME Digital yesterday, made with your Visa ending in 7734. Do you recognize this merchant?”

At this point, the assistant has identified the transaction and answered using details retrieved from the bank’s systems.

When conversation becomes action

The customer answers:

“No. Freeze the card.”

With the customer's reply, the nature of the interaction has changed. Reading a transaction and changing the state of a payment card should not be treated as the same operation.

The model can recognize the new intent and request the freeze_card capability. It should not decide on its own that the customer is authorized to use it, nor should it directly modify a banking database. The request passes through a controlled tool and policy layer that evaluates the authenticated user, channel, capability, risk level, parameters, and required confirmation before the banking service is invoked.

This creates the most important boundary in the architecture: AI can reason about what should happen next, while deterministic systems decide what is actually permitted and execute the operation.

This division of responsibilities also applies to other banking services. A conversational assistant might find a transaction, retrieve a statement, explain a fee, or prepare a transfer. The controls depend on the requested operation and its potential financial or security impact. Moving money, for example, may require additional authentication and explicit customer confirmation before execution.

Build a banking harness, not a generic agent

This is where domain-specific harness engineering becomes important.

Instead of placing a general-purpose AI agent in front of banking APIs, the bank builds a harness specifically around banking processes. The harness defines which capabilities exist, how workflows progress, which context is available, when clarification is required, where deterministic policies apply, and when control must move to another system or a human.

The model operates inside this environment rather than inventing the process itself.

A sovereign model can become part of that architecture. For example, a bank may operate an open-weight model within infrastructure and governance boundaries it controls, then fine-tune it on approved banking processes, terminology, tool-use patterns, clarification behavior, and representative conversation traces. Fine-tuning is useful for teaching the model how the bank works, not for storing changing customer balances, current product conditions, or other financial facts. Those remain in authoritative systems.

The result is more than just a more knowledgeable chatbot. It's a model that has learned how to operate inside a specific banking harness: when to retrieve information, which capability to request, what information is missing, when to ask the customer, and when not to proceed.

The model is a component, not the compliance strategy

A model trained for banking workflows does not need to handle every interaction. Different tasks may call for different models.

A smaller sovereign model may handle intent recognition, entity extraction, routing, predictable tool calls, and many routine conversations. More capable models can be used when conversations become ambiguous or require deeper reasoning.

A model gateway keeps this decision separate from the banking application. It can route between sovereign models and approved external models while applying provider policies, PII controls, logging, fallbacks, and cost limits. Models can then change as quality, economics, or requirements evolve.

But neither a sovereign model nor fine-tuning makes the resulting system compliant by itself.

Compliance emerges from the complete system: how data is handled, which capabilities the model can access, how customers are authenticated, how actions are authorized, how third parties are governed, when confirmation is required, and whether decisions and actions can later be reconstructed.

The architecture matters at least as much as the model. To assess whether those controls work as intended, the bank needs visibility into the complete interaction, from the customer’s request to the final banking action.

Our Custom & Private Models offering covers model evaluation, fine-tuning, and deployment options for teams with specific data, security, and operational requirements.

Observe the complete journey

After the card is frozen, the assistant tells the customer what happened. But the customer-facing response is only one part of the record.

The bank should be able to reconstruct the journey from the initial message to the final state: which context was provided, which model and policy version were active, what tool the model requested, what parameters it supplied, what the policy layer decided, what the banking backend returned, and what the customer was ultimately told.

That level of observability is especially important for agentic systems. The complete interaction chain should be reconstructable, subject to appropriate privacy and retention controls.

Monitoring therefore goes beyond uptime, token consumption, or GPU utilization. We also need to check that the assistant selected the correct tool, asked for clarification when needed, and followed confirmation requirements. That includes checking responses against retrieved information, identifying policy violations, and assessing how well the interaction resolved the customer’s request.

The important operational question becomes less “Did the model respond?” and more “Did the complete system produce the correct and permitted outcome?”

Know when AI should hand the case to a specialist

Our customer continues:

“There are three more payments I don't recognize. I want my money back.”

The assistant retrieves the transactions and connects them to the current case. But the problem has now moved beyond a simple card-control operation. A fraud investigation and potential reimbursement may require a specialized workflow or a human expert.

Instead of trying to automate beyond its mandate, the harness recognizes when a case requires a specialist and hands it over.

The customer does not have to start again. The specialist receives the authenticated customer context, affected card, disputed transactions, actions already completed, and reason for escalation. The conversation becomes part of the case, and the human continues where the AI stopped.

Then something unexpected happens

The immediate story ends well. The card is frozen, the suspicious transactions are collected, and the fraud specialist takes over without asking the customer to repeat everything.

Additionally, the recorded interaction can inform later evaluation and improvement.

Because the complete interaction is observable, the bank can see that the assistant correctly identified the transaction, selected the right capabilities, asked the right questions, respected the authorization boundary, and handed the case over at exactly the point where human judgment became necessary.

After review and appropriate data preparation, successful interactions like this can become evaluation cases and, where suitable, training examples for the sovereign model. The model can become better at the bank's actual processes without learning private customer facts.

Thanks to this the next customer with a similar problem may receive a faster and more precise experience.

Banks can apply this architecture to other services, too. The domain-specific harness can gradually gain new controlled capabilities for payments, cards, financing, savings, service requests, and financial guidance. Each new capability extends what customers can accomplish through conversation without giving the model unrestricted control over the bank.

A customer asking about an unfamiliar payment may need several things: an explanation, a card freeze, and a way to dispute the transaction. Building a conversational service means connecting those steps so the customer can move through them with the right checks and assistance along the way.

For banking product and technology teams, the next step is to choose one customer workflow and map it from the opening question to a confirmed outcome. Define the information the assistant needs, the actions it can request, the checks required before execution, and the point at which a specialist should take over.

Test that workflow with ambiguous requests and failed actions as well as successful conversations. Use the findings to decide what needs improving and when the service is ready to cover more customer needs.

Before extending the workflow, check that your banking app’s delivery foundations can support it. Read Why Banking App Modernization Stalls Before It Ships for a closer look at testing, observability, release coordination, and ownership across teams.

Insights

Learn more about AI

Building a Software Factory: Write Specs an Agent Can Build From — cover

Nov 6Article

Building a Software Factory: Write Specs an Agent Can Build From

Learn how to research requirements, resolve open decisions, and write testable specs that AI coding agents can implement without the planning conversation.

 Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback — cover

Nov 4Article

Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback

Plan codebase migrations with coding agents using reviewable requirements, verification checks, staged rollouts, and defined rollback criteria.

Building a Software Factory: The Night My Agents Waited for Me — cover

Oct 28Article

Building a Software Factory: The Night My Agents Waited for Me

Learn how permissions, review limits, and missing product decisions stalled two overnight coding agent runs, and how their maintainer revised the workflow.

Your AI Coding Agent Still Needs an Architecture — cover

Oct 22Article

Your AI Coding Agent Still Needs an Architecture

Use explicit contracts, behavior tests, and dependency checks to guide AI coding agents and review their changes through a TypeScript favorites example.

cover

Oct 15Live Stream

Who Left the Agents Running? React Native Software Factories

Join Kewin Wereszczyński and Szymon Chmal to explore what can go wrong in a React Native software factory overnight and the controls that keep agents on track.

cover

Oct 14Podcast

When Coding Gets Faster, What Breaks Next?

Matt Hargett explains how AI moves bottlenecks across testing, deployment, infrastructure, support, and the rest of software delivery.

cover

Oct 12Podcast

AI Coding Agents and Hermes With Tzvetan Mikov

Tzvetan Mikov discusses AI coding agents, context switching, low-level engine optimization, reviewing specs and tests, and his plans for Hermes X.

cover

Oct 12Podcast

State Machines for AI Agents With David Khourshid

David Khourshid explains state machines for AI agents, human approval steps, tracing, and handling invalid model outputs in agent workflows.

cover

Oct 9Article

How to Maximize AI SDLC? Measure the Outer Business Loop, Not the Inner Developer Loop

Connect AI-assisted development to measurable business outcomes. Matt Hargett shares a checklist for assessing user exposure, results, and delivery costs.

cover

Oct 8Article

Building Reliable AI Figma-to-Code Loops

Build an AI Figma-to-code workflow that uses your design system and checks its output. Learn how component mappings, import checks, and visual feedback work.

cover

Oct 7Talk

Automating Mobile QA with Cloud Agents

Michał Pierzchała shows how cloud-based QA agents can test real iOS and Android user flows and bring screenshots, recordings, and logs into pull requests.

cover

Oct 1Live Stream

Can Jev Make AI Agent Decisions Faster?

Explore Jev with Kewin Wereszczyński and Szymon Chmal: how it works, its approach to faster agent decisions, and possible local alternatives.

cover

Mar 19Tutorial

The Hard Way vs. The React Native AI SDK Way: Stop Writing Custom Modules for Every Model

Learn how React Native AI uses a unified provider model to switch between cloud and on-device LLMs without rewriting application logic, enabling reliable AI experiences online and offline.

cover

Mar 12Tutorial

Build Smarter Apps: Tool Calling & AI Orchestration Explained

Learn how on-device models in React Native can call tools, interact with external APIs, and return structured outputs you can use directly in application logic.

cover

Mar 5Tutorial

MLC LLM + React Native: On-Device AI Without the Pain

Learn how to run third-party on-device LLMs in React Native using MLC LLM. Choose your models, run them efficiently across platforms, and keep a unified JavaScript API with React Native AI.

cover

Feb 24Tutorial

Intelligent Fallbacks with Apple Intelligence in React Native

Learn how to use Apple’s built-in Foundation Models in React Native apps, reduce memory usage, and enable fast, fully on-device AI with React Native AI Apple.

cover

Feb 10Tutorial

What Is the React Native AI SDK? A Complete Intro & Quickstart

Learn why on-device AI matters for React Native apps, how local LLMs behave offline, and what problems React Native AI is designed to solve from day one.

cover

Jan 29Tutorial

Implementing an Android TurboModule with Kotlin

Learn how to implement a React Native TurboModule on Android, from the TypeScript spec and Codegen to the Kotlin implementation and package registration.

cover

Jan 19Tutorial

Working with Different Threads in Swift TurboModules

Learn how JavaScript, native module, background, and main threads interact in React Native TurboModules, and how to use GCD queues to run async work safely in Swift.

cover

Jan 9Tutorial

How to Add Type-Safe Constants to Swift TurboModules

Learn how to expose typed, immutable constants from a Swift TurboModule using Codegen, and get full end-to-end type safety between native and JavaScript.

cover

Dec 30Tutorial

Adding Event Emitters to Your TurboModule in Swift

Learn how to emit native events from a Swift TurboModule and subscribe to them in JavaScript, including proper memory management and Codegen integration.

cover

Dec 22Tutorial

Writing Your First TurboModule in Swift

Learn how to build a fully working TurboModule in Swift, integrate it with Codegen, and bridge it through Objective‑C inside an Expo app.