Designing Flo's chat: what a chatbot that lasted a decade teaches AI products today
Alla Kuchynskaya · Senior Product Designer
· 7 min read
Short answer: Between 2015 and 2017, at R-Style Lab, I designed the user chat experience and chatbot flow for Flo, the women's health app, along with its habit and health tracking screens. That chat approach stayed core to the product for about a decade. The lesson for today's LLM chats: in a sensitive domain, a chat works when it guides, protects and leads somewhere, not when it simply talks.
What is Flo, and what is its chat?
Flo was co-founded in 2015 in Minsk by brothers Dmitry and Yuri Gurski (Wikipedia). It started as a period tracker and grew into one of the largest women's health apps: 10 million monthly users by August 2017 (VentureBeat), 300 million installs by 2023 (Flo milestones), and, per Wikipedia, over 380 million downloads and 70 million monthly users by late 2024.
Flo's own timeline lists the launch of the "Health Assistant chatbot" in spring 2017. Today the Flo help center describes the Health Assistant as "an interactive dialogue tool that provides educational information." Chats live in the Messages tab, new dialogues appear when a cycle phase starts or a symptom is logged, and Flo says the reasoning behind the bot's answers is "based on the latest medical evidence and checked by medical specialists." In 2024, Mary Borysova published a design study of Flo's chatbot on UX Collective, looking at its menu options and chat bubbles.
What was my part?
I worked on Flo as a UI/UX designer at R-Style Lab, a software development company in Minsk, from 2015 to 2017. I designed the user chat experience and chatbot flow, and the habit and health tracking screens. Both the chat approach and those tracking screens remained core to Flo for about ten years.
Flo had many talented people after me and years of iteration, and I won't claim their decisions as mine. What I want to share is what designing a scripted health conversation taught me, because almost every lesson matters more now that chats run on LLMs.
Why put a chat in a health tracker at all?
My view: tracking is a form, and forms about intimate topics feel clinical. A conversation can ask the same question in a way that feels like care. It can explain why it's asking. It can react to the answer. And it can arrive at the right moment, when something just changed, instead of waiting in a menu nobody opens. The data might be the same. The experience of giving it is not.
Seven principles I still use for conversational UX
1. Sensitive topics need tone and privacy cues
When people talk about their bodies, wording carries as much weight as layout. The voice has to be warm without being cute, and direct without being cold. Privacy should be visible in the conversation itself: why this is being asked, what happens to the answer. Flo later made privacy a product feature with Anonymous Mode, launched in 2022 and named one of TIME's Best Inventions of 2023 (Flo milestones). I'm convinced people notice these signals, even when they never open the privacy policy.
2. Guided choices beat an empty text box
An empty input asks the user to know what to ask and how to phrase it. Most people don't, especially about something embarrassing. Tappable answers lower the effort, prevent dead ends and show what the bot can actually help with. In LLM products I still put suggested replies and starter questions next to the free-text field. Free text is the fallback, not the main path.
3. A chat is a means to an outcome
Every conversation should end somewhere: a symptom logged, a phase explained, a reminder set, a decision to see a doctor. If I can't name the outcome of a flow, the flow shouldn't exist. With LLMs this is the most common failure I see: pleasant, endless chat that never turns into anything the person can use.
4. Hand off to structured UI when the task is structured
I designed the chat and the tracking screens together, and I think that's the right way to see them. Chat is good for context, reassurance and explanation. A calendar, a chart or a logging screen is better for entering dates and seeing patterns. A good chat knows when to say "here, it's faster on this screen" and passes the person over with context intact.
5. Draw medical boundaries clearly
A health bot must say what it is and what it is not. Flo's help center states plainly that the dialogues are "not intended or implied to be a substitute for professional medical advice, diagnosis, or treatment." Boundaries belong inside the flow too, at the exact moment when a symptom sounds serious and the right answer is "talk to a doctor," not in a terms page.
6. Memory and consistency build trust
If you told the app something yesterday, it shouldn't ask again today. And it has to sound like one entity across hundreds of messages. In a scripted bot, consistency is editing work. In an LLM it is a real risk: the model drifts toward the internet average unless you give it written rules for voice, scope and what it must never say.
7. Write the words last, check them first
In a chat, the copy is the interface. I write conversational text after the flow logic is settled, and I review it before anything else, because one awkward phrase in a sensitive moment can undo the whole design.
Then and now: scripted bot vs LLM chat
| Area | Scripted bot (then) | LLM chat (now) | What I'd do today |
|---|---|---|---|
| Input | Buttons and quick replies | Free text by default | Suggested replies first, free text as fallback |
| Scope | Limited by what was written | Can answer almost anything | Define scope explicitly and refuse outside it |
| Tone | Written once, consistent | Drifts with each answer | Voice and safety rules the model must follow |
| Medical safety | Content reviewed before release | Answers generated live | Expert-reviewed sources, escalation paths, tested red flags |
| Memory | Fixed variables (cycle day, logs) | Long context, can misremember | Ground answers in the user's logged data |
| Failure mode | "I didn't understand" dead end | Confident wrong answer | Show uncertainty, offer a human or a doctor |
| Success metric | Completion of the flow | Often "engagement" | The outcome: logged, understood, acted on |
The honest summary: scripted bots failed by being limited. LLM chats fail by being too capable without limits. The design work moved from writing every branch to defining edges.
A short checklist for an AI chat in a health app
- Can you name the outcome of each conversation type?
- Do the first screens offer choices, not just a blinking cursor?
- Does the chat explain why it asks for sensitive data?
- Is there a clear path to structured screens and to real medical help?
- Are voice, scope and forbidden answers written down for the model?
- Has the chat been tested with real, messy, emotional questions?
FAQ
Does the Flo app have a chatbot?
Yes. Flo's Health Assistant is a chat in the Messages tab that offers educational dialogues about the cycle, symptoms and wellbeing. Flo's milestones page dates its launch to 2017, and the help center says its answers are checked by medical specialists and are not a substitute for medical advice.
What are chatbot UX best practices?
Give each conversation a clear outcome, offer guided choices before free text, keep one consistent voice, hand off to regular UI when a form or chart works better, and design failure states honestly. In sensitive domains, add privacy cues and clear boundaries on what the bot can advise.
Should a health app use a scripted bot or an LLM?
In my view, a hybrid. Use scripted, reviewed flows for anything medical or high-stakes, and an LLM for explanation and open questions, grounded in vetted content and the user's own data. The more serious the topic, the more structure the conversation needs.
How do you design a conversational UI for sensitive topics?
Start with tone and trust: say why you ask, what happens to the answer, and when to see a professional. Let people answer by tapping instead of typing embarrassing words. And test with real questions people actually worry about, not tidy demo prompts.
Alla Kuchynskaya is a Senior Product Designer and AI Product Designer & Builder with 12+ years in startups, focused on AI, health and consumer mobile apps. She designed the chat experience and tracking screens for the Flo women's health app and worked as UI/UX designer on VOCHI, later acquired by Pinterest. Based in Bali, she works part-time, full-time or per project: alla.studio, Telegram.
About the author
Alla Kuchynskaya · Senior Product Designer
alla.studio · LinkedIn · Telegram · Resume