← All case studies

Case study

Nora

An always-on AI voice companion for Greater Change Health - live spoken conversation for reflection and support, with a built-in safety net back to a real therapist.

Delivered with our partnerHenge
Nora logo
Nora redesigned website

Project overview

A voice-first companion, not a chatbot.

Nora gives Greater Change Health's clients a calm, voice-first space to talk through how they're feeling between sessions. People choose a mode, Calm Support, Anxiety Relief, Relationship Reflection, Daily Check-In, or Crisis Mode, and talk to Nora directly, with visible Listening, Thinking, and Speaking states so the conversation feels responsive rather than robotic.

The challenge

Real-time voice, real stakes, no single point of failure.

A mental-health voice product can't rely on one vendor's uptime, and it can't pretend to replace a licensed therapist. Greater Change Health needed a product that felt genuinely conversational in real time, remembered context across sessions, and knew exactly when to step back and hand off to a human.

What we did

Two AI paths, one clear safety net.

We built Nora with two interchangeable conversation engines: a managed ElevenLabs Conversational AI agent for full-duplex speech-to-speech, and a custom fallback pipeline (browser speech recognition, OpenAI for the response, ElevenLabs for voice) so the product isn't dependent on a single vendor. An Emergency / Exit panel surfaces crisis resources at all times, and a talk-to-a-human action opens real booking with a Greater Change Health therapist.

Product details

Built for real conversation, not a demo.

01Dual voice-AI pipeline

A managed ElevenLabs conversational agent and a custom OpenAI plus ElevenLabs fallback, so the product isn't dependent on a single AI vendor.

02Session memory

Per-user memory carries context across sessions and feeds back into the conversation, instead of starting cold every time.

03Built-in safety net

A persistent Emergency / Exit panel with crisis resources, plus one tap to book a real Greater Change Health therapist.

04Usage-based free tier

A ten-minute free voice allowance is enforced in the product itself, with the upgrade path already wired in.

The Results

Moved off local files onto an edge-native database.

The first version stored users and sessions as flat JSON files, which works on a VPS but not on Cloudflare's stateless Workers. Migrating to Cloudflare meant replacing that datastore with D1, covering users, sessions, therapist assignments, the knowledge base, and feedback, while the existing JWT-based auth needed no changes, since it was already Worker-compatible.

Discuss your own project