Relay Import
Relay is Amazon's work management tool for engineers. Teams were planning and tracking work across Jira, Asana, spreadsheets, and other tools — and there was no way to bring that work into Relay without manually recreating it. Import was the unlock. A v1 text-to-task feature existed but a structured file import was being built separately as a second feature. I designed v2 of the entire import experience — unifying both paths into one adaptive flow, redesigning the processing logic, and shipping a guided experience the team could hit their deadline with.
Mapping the problem before designing
Three weeks to deadline. I mapped the end-to-end migration journey to orient fast — documenting where the current flow broke down and the gaps the requirements doc hadn't addressed. This became the backbone of every scoping conversation.
A user with a file to import hits a wall with no way through.
User flow: One-time migration
Two features, one door
The original design asked users to choose a processing mode before they'd even provided their data. It's like asking someone how they want their food cooked before they've picked a dish.
if input_type == "structured" → route_to("/import/csv")
if input_type == "unstructured" → route_to("/import/ai")But users don't think in terms of structured vs. unstructured. They just have data and want to bring it in.
I flipped the sequence. Provide your data first. The system analyzes what you give it and recommends a processing mode. Instead of “structured” and “unstructured,” the system asks: do you want us to follow your structure exactly, or suggest tasks and hierarchy? Users can override if their goals differ from the recommendation.
File upload
Direct import recommended for structured data
Paste text
AI suggests tasks and hierarchy for unstructured content
Giving users control
Smart defaults get users started, but they can always override. These panels let users see exactly how their data will be interpreted and adjust when needed.
Processing mode expanded
Users can expand the processing mode section to understand exactly how their data will be interpreted and override if needed.
Hierarchy constraints
The system respects project hierarchy rules — showing users when suggested nesting would violate constraints and offering alternatives.
From raw notes, to actionable tasks
Paste meeting notes, a requirements doc, or any unstructured text. AI interprets the content and suggests a task hierarchy. Review, edit inline, deselect what you don't want, and create.
Making AI decisions reviewable
For the structured file path, AI maps columns automatically — but users needed to trust those decisions. The mapping table shows confidence indicators, previews of actual values, and clear paths to resolve conflicts — making the system's reasoning visible and editable.
Keep the good data, flag the bad
In the original build, one bad value invalidated an entire column. The redesign surfaces errors at the top with filtering and handles bad values per-cell so the rest of the data stays usable.
Outcome
Shipped on deadline with a guided, adaptive import experience — replacing a single screen most users couldn't get through. The prototype gave engineering a clear build target and PM a scoping tool for what came next.
It was also the unlock — the missing piece that turned a stalled migration story into something users could actually complete. This feature was one of several launched as part of an adoption and CSAT goal, targeting a 3.9 to 4.1 CSAT improvement.
Unified two features into one adaptive flow
Structured file import and AI text-to-task became one coherent tool with shared entry point and smart routing.
Prototype became the team's shared reference
Engineering built from it, PM used it to scope what came next.
Reframed the entire import feature
From system-centric logic to user intent — processing modes, step sequencing, error handling, and routing all redesigned around how users actually think.
Unblocked engineering on a hard deadline
Three weeks from launch without moving the date.