
In Production2026
Mira is a conversational AI vehicle discovery assistant for Fiat. It helps users explore models through voice or text, receive tailored recommendations as interactive cards, compare trims and configurations, and move from curiosity to a dealership-ready shortlist. Designed and built the assistant end to end — the standalone proof of concept, the embedded widget that replaced it, and two full migrations of the conversational engine underneath.
Product Flow
From First Question to Test Drive
A single guided conversation carries the user from describing what they need through model and trim selection, colors, interiors, and accessories, all the way to booking a test drive — no separate flows to jump between.
Assistant Experience

Structured Responses
The agent emits directives, not markup
The agent replies with ordinary conversational text plus a small machine-readable block the user never sees. The backend strips it, then resolves each directive — recommend models, show trims, engines, colours, wheels, interiors, dealers — into a card payload the front end already knows how to render. Adding a card means adding one directive, not reshaping the agent's output.
Voice and Text, One Session
Speech wraps the same conversation
A spoken turn is transcribed, sent through the same pipeline as a typed one, and the reply is synthesised back to audio. Voice and text share a single session, a single agent, and a single set of cards rather than running as two parallel implementations.
Embedded, Not Rebuilt
One script tag on the host page
The widget ships as a single script tag that mounts an isolated iframe with configurable size and placement, so it drops onto an existing page without inheriting or colliding with the host site's styles.
Three Engines, One Experience
The conversational engine behind Mira changed twice during delivery. Each migration had to land without the user-facing experience regressing.
Proof of Concept
A standalone web app first
The first version ran as its own web app, with the conversational layer on ElevenLabs Agents, built to prove the interaction model before it went near the production site. Once the direction was approved, the requirement changed: instead of a destination users would be routed to, it had to become a widget embedded directly in the existing site.
First Migration
Off ElevenLabs Agents, onto Flowise
ElevenLabs Agents sat outside the client's approved-tooling list, and clearing it would have taken longer than the delivery window allowed. The conversational layer moved to Flowise while the interface, the card system, and the interaction model stayed exactly as they were.
Second Migration
Onto Salesforce Agentforce
The client then asked whether the assistant could run on Salesforce. Agentforce became the reasoning layer — OAuth client-credentials auth, a server-side map from widget session to Agentforce session, and the directive protocol carried across intact — with no loss of UI, UX, or functionality. ElevenLabs stayed on, narrowed to the part that was never in question: speech-to-text and text-to-speech.



