Ask Finta open full screen over the app, walking through uploading a transaction, with the launcher docked along the bottom

Ask Finta

An AI chat built into Finta, an accounting and tax product for startups. It answers questions in plain language, and it does the work: categorizing, cleanup, uploading transactions.

AI-native founders do not have time to learn accounting

Infinite menial work that eats into building

Monotonous bookkeeping and categorizing is the backbone of accounting, but time spent poorly for a founder.

the endless loop

Powerful features gated behind accounting knowledge

Founders don’t understand accounting concepts, and they shouldn’t need to. 90% of the founders we talked to had no concept of these features, meaning their workflows were much slower than they should be on Finta.

the knowledge gap

Guidance and action through agentic workflows

A natively embedded chat layer that is always there for users to reach for and offload menial work, ask questions and get back to building.

It lives on every screen, at three sizes for different use cases and gives a source of truth for users to act on. We support uploading dense transactions (which used to be in a clunky third party tool), bulk categorization (that previously had poor accessibility) and product guidance.

upload transactions natively

bulk categorize easily

AI agents come in a million forms; what works for us?

Finta strives to have agentic services everywhere and we believe it’s the frontier of accounting. We strive to be multi-channel (many services) and multi-model (multiple ways of interaction). So what channel should we start with first?

We chose a native chat first as it reaches every user (not just AI-native users), lets us gather data from real behaviours and can extend beyond the app later.

guiding principles

The principles of creating a natural interface experience

These were non-negotiables I designed with in mind. A portion of them were solidified before any designing happened and others through learnings from user interviews.

  • Never move the user
  • Always there, never in the way
  • A layer on top, not a room
  • Fewer choices, consistent everywhere

Finding the most non-intrusive home across all surfaces

This is Finta’s first AI surface, and eventually this same layer will live in our future products (forecasting, dashboards, taxes, landing page). The design problem wasn’t the chat; it was a layer that could sit on every surface mindfully.

the current layout

Product layout diagram: nav on the left, content in the centre, details on the right, free space along the bottom, and notification areas on the right edge

I dissected general layouts of constraints our products have, and general patterns (such as notification areas). These areas, we avoid because overlapping details cause friction.

placement iterations

I tried combinations of multiple chat placements (researched from many products such as Whispir Flow, Linear, Figma, Slack, etc.) on many product surfaces. Some unique constraints were that this needed to be embedded everywhere seamlessly, and that we have a webapp rather than a standalone app, meaning there is also noise from the browser’s interface. We also have all our details in a drawer on the right, which I can’t cover.

This is what I came up with originally:

The first placement: a chat panel docked in the bottom-left corner of the app, over a tab bar carrying the open chats

Different use cases, different sizes

User interviews showed moments of hesitation and slight pauses while navigating the product and chat. There was liberty with the chat always being where you expect it, but also a constraint that it couldn’t move anywhere else.

Instead of having chats shiftable on the bottom tabs, which was a short term solution, I modelled their use cases of quickly switching back and forth to create a side bar, and only focusing on the chat to create a full screen mode.

Maintaining layers that never break your flow

I found the users got anxious when they didn’t know where exactly their previous screen went. The user should never feel like they have been permanently moved to another location, so I designed it so that the language showed the way back to their original screen.

your previous screen, still there even in full screen
A full-screen chat panel laid over the app, with a sliver of the page underneath still visible down its left edge

Migrating frameworks to push towards better user experience

A chat would get long, load from the top and users would scroll down every time, and lose their spot. Switch chats and they’d scroll again.

The cause was the stack: with Embedded Ruby + Turbo, the server rebuild the entire message on every update (around 20 times per response) so there was no persistent frontend state to remember your position. I migrated to Inertia (Rails feeding a React app), which updates the page in place, so scroll position persists and we can save where each user left off.

Embedded Ruby + Turboevery switch lands you at the top
Inertia + Reactyour place is where you left it

Honouring builders by respecting their time

We’re opinionated on purpose. Any time a tool doesn’t work as expected, that’s a tool that doesn’t deserve my time, and the same applies to anyone else. This agent is made to offload headspace and give it back to the user to build.

Pushing the standard for finance software

All of these details is the difference between a tool and something that was crafted. I like to add small moments for users to feel joy while using our product.

  • Intuition is an underrated skill. Honing an intuition to know where to put my time, my attention and craft, and where I just need to keep moving allowed me to 80/20 a MLP (minimum lovable product) quickly.
  • Design is the smallest and easiest part. I spent most of my time researching, demoing to users, product decisions, dogfooding, infrastructure, killing good ideas and much more. With the cost of creating something being so low, the bar on whether to create something is much higher.

The early signal for Ask Finta is that people already want it to do more of the work than it can, and in the future, it will be the framework layered on top of every product we ship.

This is only a fraction of what went into making this. For the full story, say hi at .