Friction
- ↗Each integration had a bespoke onboarding flow, creating inconsistency for customers and toil for engineering.
- ↗New integrations required designing and building onboarding from scratch every time.
My Role
- ↗Defined the unified onboarding pattern and information architecture.
- ↗Collaborated across product, engineering, and integration owners to pressure-test the system against real edge cases.
Outcome
- ↗One shared onboarding pattern that works across 100+ integrations.
- ↗Reduced engineering overhead per new integration.
- ↗A more consistent, professional experience for customers setting up any integration.
Summary
Red Canary has over 100 integrations, each with its own onboarding flow. I replaced the pile of one-offs with a single adaptable pattern that survives contact with every vendor while cutting the design and engineering cost of every integration that comes after.
The Problem
Every time a new integration was added, onboarding was designed from scratch. The result was a product that felt inconsistent and an engineering process that couldn't scale.
The technical debt was obvious, but the bigger problem was that customers experienced meaningfully different flows depending on which integration they were setting up, and none of them were as good as they should have been.
The Solution
The pattern is three numbered stages and a set of rules about what may vary inside them. Everything below describes the shape every integration now inherits.
One numbered spine
Every integration moves through the same three stages — choose how data arrives, configure it, then customize how it is handled — with only one stage open at a time.
Vendor detail, contained
Anything specific to a vendor lives inside a labelled sub-step rather than reshaping the flow around it. The spine stays recognisable no matter whose product is on the other end.
Nothing saves half-broken
Provisioning and validation became explicit states in the pattern, so an integration can no longer look finished while silently doing nothing.
The Process
Exploration
The wireframes existed to test one idea: could a numbered step structure with a single expanded step absorb every vendor's quirks?
Map the existing landscape
I catalogued the full range of integration onboarding flows to find what was truly shared versus what was genuinely integration-specific.
Define the shared structure
The common steps became the pattern. The edge cases got explicit slots in the system so they would stop becoming one-offs.
Prove it on the worst offenders
The messiest integrations were the test. If the pattern worked for those, it would work for everything else.
Shipped
The pattern, after surviving the ugliest integrations we had.