ux case study · b2b saas · europe
Aurora
Recurring-campaign setup dropped from three clicks to one. I put an AI writer inside the email canvas, and brought Aurora in line with the rest of the Helio suite.

Role
Lead Product Designer
Domain
Marketing technology
Platform
Web · B2B SaaS
What I owned
“I spend more time setting up the schedule than writing the actual campaign. By the time it's set, I've lost the creative momentum.”
What was actually broken
Fragmented look
Nothing matched, and it got worse once Helio rolled out a suite-wide look Aurora didn't share.
Basic features for advanced work
Customers kept asking for depth the old UI could not express.
Same job, different flows
The same task looked different depending on where you started. That wore down trust.
scope & hypothesis
I drew a hard box around the work. Two surfaces caused most of the pain: recurring-campaign setup and the email composer. The design system grew alongside them.
in scope
- Recurring Batch Journey configuration workflow
- Email composer with in-canvas Helio AI
- Reusable design system aligned with Helio's brand
out of scope
- Full re-architecture of the platform (engineering owned this)
- Reporting and analytics dashboards
- Multi-channel journeys beyond email (later phase)
Hypothesis
Simplify the two most-used surfaces and match the Helio look: setup speeds up, writers get help where they write, and the product feels like one suite.
- Fewer clicks to set up a recurring campaign
- AI writing help inside the canvas, not a separate tab
- One visual language shared with Helio
★ key insight
The old flow made writers switch modes just to schedule. Meeting them in one place, schedule, write, ship, was the real unlock.
The window the rebuild opened
Aurora is the campaign-orchestration product of a global martech suite: journeys, segmentation and email automation for hundreds of large European consumer brands. Names are stand-ins, since the real client is under NDA. When Helio acquired the company and began rebuilding its technical foundations, I saw the one chance a designer rarely gets on a legacy product: while the engineers were replacing the plumbing anyway, the experience could be rethought without asking anyone to fund a redesign.
And it needed rethinking. The old product had been built by engineers for engineers, and it showed. Marketers fought through cluttered panels just to schedule a recurring campaign, and the writers had it worst of all: with no AI in the composer, they drafted in ChatGPT and pasted the results back, losing their formatting along the way.
Role
Lead Product Designer
Duration
~5 Months
Team
2 PMs, 5 Devs, 1 QA, 2 Designers
Platform
Web (B2B SaaS · Europe)
Tools
Figma, FigJam
Project Context
The rebuild was the moment to reduce clutter, simplify the flows, and bring the look in line with the rest of Helio.
Primary Users
Campaign Managers
Build and ship recurring campaigns. Need setup fast and results easy to prove.
Marketing Ops Leads
Own the rules and audit trail across brand portfolios. Need consistency everywhere.
Copywriters
Produce on-brand copy. Need help beating the blank page, where they write.
What the audit turned up
UX audit of the old product
Before touching anything, I walked every screen of the old product and held it against a single bar: could a first-time marketer ship a campaign without asking a colleague for help? The answer, almost everywhere, was no. Three problems kept repeating.
Config over content
Scheduling and rules came first; the actual message came last.
No shared components
Similar controls looked different on every page. That is a learning problem, not a look problem.
AI lived outside the canvas
Writers copied into ChatGPT and pasted back, losing formatting on the way.
heuristic evaluation
voices from the team
Product owner
“The rebuild is the window. If we do not simplify now, we ship the old UI in new paint.”
Campaign lead (customer)
“I do not want more features. I want to ship one campaign in half the time.”
research findings
Time-to-send was the real metric
The number that mattered was how long a campaign took to leave the door.
Writers wanted help, not automation
"Suggest me a subject line" beat "write the email for me" every time.
The bet I made
design goals
One place, one flow
Schedule and write in the same canvas.
Fewer clicks, same power
Cut steps without cutting depth.
AI as assistant
Accept, edit, or dismiss. Never automatic.
★ key insight
Marketers do not need a smarter tool. They need a faster one that shares a language with the rest of their day.
Two surfaces carried the whole story
hand-drawn sketches
I started on paper: two directions for the recurring flow, two for where AI lives in the composer.
Recurring setup, sketched
One page, one flow. Schedule and content on the same canvas instead of a wizard.
AI in the canvas, sketched
AI shows up as a menu inside the block the writer is working on.
low-fidelity wireframes
Rough layouts to check the flow before applying any look.
Journey type
Pick the kind of campaign in one step. The old flow buried this three levels deep.
Weekly schedule
The schedule you set is the schedule you see.
Helio quick actions
One-tap AI actions inside the block being edited.
final design
Six of the finished screens. Fewer steps, one canvas for schedule and content, and the AI writer right where you type.

Journey type, basic fields
One screen to pick the campaign type. The old flow needed three.

Content tab
Pick or draft the email in the same view where you set the schedule.

Properties, weekly
One page for the rules and the schedule. No separate preview.

Composer, empty state
AI is right where the writer starts. No new page, no context switch.

"Make it shorter"
One-tap rewrites for common asks. The writer stays in charge.

AI menu in canvas
The full AI menu opens inside the block. No lost formatting.
The system underneath
Alongside the two flows, I built the Aurora design system in Figma: tokens, components, patterns aligned with Helio.
Color
A focused palette: an evergreen brand mark, a teal primary with a five-step tint ramp, five expressive secondaries, a neutral gray family, and semantic status colors. Every value is a hard-coded token.
Brand
Primary · Teal + tint ramp
Secondary · each with lighter + darker
Grays
Text colors
Status · color + soft notification tint
Typography
Roboto across the board. Specimens render in the product's Rich Black (#292929) on white, with uppercase and letter-spacing applied exactly as specified.
Spacing
A seven-step scale from 8 to 80 px keeps rhythm consistent across layouts. Each white square scales to its token; sits on the Evergreen brand surface.
Buttons
Primary (filled teal), Secondary (teal outline), and Tertiary (text) across Default, Hover, and Disabled states.
Primary
Secondary
Tertiary / Text
Text Fields
Material-style outlined inputs with floating labels that sit on the border. Supporting/error text beneath each field.
Default
Supporting text
Focus
Supporting text
Filled
Supporting text
Error
Error message goes here
Disabled
Supporting text
Chips & Filter Chips
Default and selected states for both compact entity chips and toggleable filter chips.
Chips
Filter chips
Segmented Button & Tabs
A three-segment control with one active segment, plus underline tabs with a selected item.
Stepper / segmented
Tabs
Toggle & Checkbox
An on/off switch and a labeled checkbox shown unchecked, checked, and disabled.
Toggle / Switch
Checkbox
Search Bar
A single-line search input with a leading search icon and placeholder text.
Search
Breadcrumbs & Pagination
A breadcrumb trail to the current page, plus numbered pagination with previous/next and an active page.
Breadcrumbs
Pagination
Tracker
A horizontal step tracker with completed steps, a current step, and an upcoming step.
Data Table
A header row with three to four line-separated body rows, dividers in Line Gray (#E0E3E7).
| Name | Category | Status | Updated |
|---|---|---|---|
| Item label one | Category | Active | Apr 12, 2026 |
| Item label two | Category | Pending | Apr 14, 2026 |
| Item label three | Category | Active | Apr 18, 2026 |
| Item label four | Category | Archived | Apr 21, 2026 |
Persistent Notifications
Banner notifications for Success, Error, Warning, and Info, each with an icon, message, and dismiss control.
system outcomes
Shipped 52 components. Reused by three other Helio products with zero new design work. New-screen build time cut in half.
cross-product collaboration
Designers on other Helio products started pulling from Aurora tokens instead of building their own.
What five rounds changed
Five rounds with more than twenty marketers and writers, each one narrowing the changes. By round four we were arguing about labels rather than layouts, which is when you know the structure has settled.
what changed
Setup dropped 3:1 in clicks. Writers stopped opening ChatGPT. Three sister products picked up the design system.

five rounds of testing
- 1
Concept check
Marketers understood the one-page flow immediately, and asked why the old product did not work this way.
- 2
Recurring setup
Timed the setup. Three clicks dropped to one after we merged the schedule and content step.
- 3
AI in the composer
Writers wanted control over tone and length, so "make shorter", "more formal" and "rewrite" became one-tap actions.
what went well
- The one-page flow tested well from round one. The simplest bet was the right one.
- AI in the canvas landed because it stayed the writer's tool: assist, not automate.
- The design system got real adoption. That mattered as much as the two flows.
what I'd do differently
- Run the first user session earlier. Two audit findings were validated in fifteen minutes.
- Treat the micro-copy pass as its own round from the start. It saved more build time than any layout change.
thank you for reading.
Want the story behind any decision here? I'm happy to walk you through it.