Back

UX Case Study · Field Sales Mobile App

Field Survey App
Outlet Screens Redesign

Redesigned the outlet management screens for a field sales execution app — solving action discovery problems that forced reps to rely on undiscoverable swipe gestures, buried CTAs, and ambiguous tap targets. Result: 38% faster per-outlet task time and ~$1.3M in annual productivity value.

Lead UX Designer 8 Weeks Android · Field Sales App Usability Research Action Discovery Interaction Redesign

Interactive prototype made in FIGMA MAKE(AI) for Outlet List and Route flows


Role
Lead UX Designer
Duration
8 Weeks
Platform
Android (Mobile)
Field Force Size
500 Reps

01 — Context

The Challenge

A leading consumer goods company deployed a field sales execution app to manage daily outlet visits — called "calls" — across a 500-person field force. Each rep visits an average of 15 outlets per day, recording survey data, capturing compliance photos, and filing call results.

The outlet screens had accumulated critical action-discovery problems over time. The primary CTA to start a survey was buried inside a detail screen. Cancel was only accessible via a swipe gesture that most reps never discovered. The route date selector was a single dropdown. The result: reps were memorising workarounds instead of using the interface intuitively — and key actions like cancel evidence were being skipped entirely.

01

Ambiguous tap target on outlet card — tapping the outlet name/first line navigated to the detail page. Reps expected it to start a survey. There was no visible Start button on the list itself.

02

Cancel only via hidden swipe gesture — swiping left on an outlet card revealed a cross (✕) button. In usability testing, 6 of 8 reps never found this unprompted. Many thought cancellation wasn't possible from the list.

03

Route date selector was a dropdown — tapping a dropdown to select a date on the routes screen gave no preview of what each date contained. Reps had no way to see which dates had pending or completed visits before selecting.

04

No status visibility on the list — outlet cards showed name and address but no call status. Reps could not tell at a glance which outlets were pending, active, completed, or cancelled without tapping into each one.

05

No directions access from outlet list — reps had to exit the app, open maps manually, and re-enter the address. No navigation shortcut existed anywhere in the outlet workflow.

06

Last visit results buried in detail screen — viewing previous call results required: tap outlet card → navigate to detail → scroll to history section. A 3-step journey for a frequently needed reference.


02 — Research

Field Observation & User Interviews

We conducted a 3-day field observation ride-along with 6 reps across two regions, followed by 8 remote interviews with a mix of new hires (<3 months) and experienced reps (2+ years). App event logs covering 30 days of usage data from 120 active reps were also analysed.

"

I always tap into the outlet just to hit Start. I didn't know you could do it any other way.

— Field Rep, 2+ years tenure

"

I had no idea I could swipe to cancel. I've been going into the outlet and looking for a button in there.

— Field Rep, 1 year tenure

"

The date dropdown on routes tells me nothing. I pick a date and then find out I've already done everything on it.

— Regional Sales Lead

"

I open Google Maps separately every time I need directions. I assumed the app just didn't have that.

— Field Rep, <3 months tenure

📊 Log data finding: 72% of "Start call" sessions began with the rep navigating into the outlet detail screen first — confirming that the detail screen was being used as a pass-through, not as an informational stop. The average session showed 2.1 unnecessary taps before reaching the survey start point.

03 — Research

Baseline Usability Testing

Unmoderated usability test with 8 active field reps on the existing design, covering 6 core tasks. We measured time-on-task, tap count, and error frequency.

Task Ease Rating Avg Time Avg Taps Error Rate
Start a survey call for an outlet Moderate 28s 5 12%
Cancel a call (via list) Fail Could not find — 75%
Cancel a call with reason + photo (full flow) Fail 3m 10s 14 68%
Navigate to outlet using in-app directions Fail N/A — not found — 100%
Identify completed vs. pending outlets at a glance Fail 1m 48s 11 82%
Check which dates on routes have pending visits Fail 2m 05s 9 88%

The cancel call via swipe had a 75% failure rate at the discovery stage alone — reps simply could not find the action. The route date dropdown failure was equally high (88%) because the dropdown gave zero preview of visit status per date, forcing reps to try each date trial-and-error. And in-app directions had a 100% failure rate — the feature did not exist at all.

04 — Existing Design

Before: The Existing Screens

The original outlet list presented cards with outlet name, address, and trade channel. Tapping the first line (outlet name) opened the outlet detail page — which reps mistook for a Start Survey action. The only way to cancel was a swipe-left gesture. The routes date selector was a dropdown with no status context per date.

Original outlet list — no inline Start, no status
Outlet detail screen — Start Call button here
Swipe left to reveal cancel — undiscoverable

Left: Outlet list — no visible Start button, tapping the card name opens the detail page (ambiguous). Centre: Start Call lives inside the detail screen — two unnecessary taps per visit. Right: Swipe-left reveals a cancel (✕) icon — 75% of reps never found this gesture.

Old cancel call — no required fields
Old notes edit modal

Left: The old cancel call screen — no required reason field, single optional image only. Evidence was never enforced. Right: Notes modal (1000 char limit shown), opened via a separate Edit button — disconnected from the cancel flow.

Interaction Discovery Problems — Before

Outlet List Card
✕ Tapping outlet name / card area → opens detail page. No visual distinction from a "start survey" tap. Reps expected this to start the call.
✕ Cancel only via swipe-left → hidden ✕ icon. Not a standard B2B pattern. 75% of reps failed to discover this unprompted in testing.
✕ No status badge — impossible to tell pending vs. completed vs. active without tapping into the outlet. Reps kept paper lists to track progress.
✕ No directions access anywhere on the list — reps had to exit to Google Maps manually, re-enter the address, then return to the app.
Routes — Date Selector
✕ Date picker was a dropdown overlay — no status context shown per date. Reps had to select a date, see the list, and back out if it was wrong. Trial-and-error navigation.
✕ No indication of how many visits were pending, completed, or cancelled on each date. Multi-day routes required constant date switching to understand daily progress.
✕ Calendar opened as a blocking modal, obscuring the outlet list below. Reps couldn't reference context while picking a date.
✕ No quick-access "today" highlight — reps managing multi-week routes had to scroll to locate the current date each session.

05 — Design Decisions

What We Changed & Why

Every change was anchored to a specific discovery failure observed in research. The core design principle: every action a rep needs should be visible without swiping, scrolling, or navigating away.

▶
Inline Start CTA + ⓘ Info Button vs. Tap-Card-to-Navigate Action clarity vs. Card density ▾

The original design used the outlet card itself as a navigation element — tapping it opened the detail page. This created a fundamental affordance mismatch: reps expected tapping an outlet to begin a survey, not reveal information. The Start Call button only appeared once inside the detail screen.

Decision: We split the two distinct user intents into explicit, separate controls. A prominent Start → button (or "Continue →" when a call is in progress) was placed directly on each outlet card — zero navigation required to begin a survey. Alongside the outlet name, a small ⓘ icon opens the outlet detail page for reps who genuinely need to review information before visiting. The card tap area was removed as a navigation trigger entirely.

This also eliminated the "accidental detail page open" pattern observed when reps reached for the Start button and missed. Log data 30 days post-launch showed a 61% reduction in "detail page opened but closed in under 4 seconds" sessions — confirming the old pattern was almost entirely accidental navigation.

✓ Inline Start / Continue CTA · ⓘ for details · No ambiguous tap-to-navigate

Interaction Solutions — After

Outlet List Card — Redesigned
✓ Start / Continue button directly on card — tapping the card body no longer triggers navigation. Zero ambiguity between "view details" and "start survey."
✓ ⓘ icon beside outlet name → opens outlet details. The info intent is now visually separated from the action intent.
✓ ⋯ menu reveals Cancel and Last Result — always visible, no swipe gesture required. Replaces the undiscoverable swipe-left pattern entirely.
✓ Directions icon + distance on every card — one tap opens maps with the outlet address pre-filled. Distance shown in top-right for proximity-based planning.
Routes — Date Strip Redesigned
✓ Horizontal date strip pinned at top — replaces the dropdown. Each day chip is always visible; no modal blocking the outlet list.
✓ Status dots per day chip — green = completed visits, orange = pending, red = cancelled. Reps read their full week's status in under 2 seconds with zero taps.
✓ Today highlighted with a filled background chip — reps managing multi-week routes always land on the right day without scrolling.
✓ Status group headers (Completed / Pending / Cancelled) within the outlet list below the strip — outlet status is reinforced at two visual levels simultaneously.

06 — Visual Design

Hi-Fidelity Screens

The redesigned outlet list makes every action explicit and scannable. Each card exposes call state through a colour-coded badge (Active in blue, Pending in amber, Completed in green, Cancelled in red with ⚠ icon). The primary button adapts to context: "Start →" for unvisited outlets, "Continue →" for an active in-progress call. Secondary actions (Last Result, Cancel) live in the ⋯ menu — always one tap away, never hidden behind a gesture.

New outlet list with inline Start and distance
Three-dot contextual menu: Last Result + Cancel
Active outlet state with Continue button
All Outlets toggle enabled

Left → Right: Clean outlet list with inline Start CTA and distance · ⋯ menu revealing Last Result and Cancel options · Active outlet showing Continue button · All Outlets toggle (green = enabled for full roster)

Scheduled view with pinned date strip and status dots
Status group headers: Completed, Pending, Cancelled
Search results with status badges and date ranges

Left: Scheduled tab — pinned date strip with status dots (green/orange/red) per day. Centre: Status group headers separate outlet states in the list. Right: Search results now include status badges and date ranges.

Routes Date Strip — Visual Logic

TUE 08
TODAY 09
THU 10
FRI 11
SAT 12
SUN 13

🟢 Green dot = at least one completed visit · 🟠 Orange dot = pending visits remaining · 🔴 Red dot = cancelled visits · Today chip highlighted · Replaces the old single-tap dropdown with zero-tap status scanning

New cancel call — required fields with disabled CTA
Cancel call with multiple evidence images uploaded

New cancel call flow — required reason dropdown (✳), mandatory notes (✳), and enforced evidence image (✳). Cancel Call CTA is greyed out and non-tappable until all three fields are complete.

⚠️ Design detail — evidence photo count: The cancel call evidence section supports uploading up to 16 images. Early prototypes capped this at 3; field ops managers requested unlimited uploads for thorough documentation. We landed on 16 as a practical ceiling — sufficient for detailed evidence without creating upload overhead that would frustrate reps in the field.


07 — Validation

Usability Testing — Redesigned Screens

We re-ran the same 6-task protocol from baseline with 10 reps (including 4 from the original cohort) on production Android devices in a simulated field environment.

Task Ease Rating Before After Change
Start a survey call for an outlet Easy 28s / 5 taps 11s / 2 taps −61% time ↓
Cancel a call (discover action from list) Easy Not found (75% fail) 8s / 2 taps 100% success ↑
Cancel with reason + photo (full flow) Easy 3m 10s / 14 taps 1m 22s / 8 taps −57% time ↓
Navigate to outlet using in-app directions Easy N/A (not found) 5s / 1 tap 100% success ↑
Identify completed vs. pending outlets at a glance Easy 1m 48s / 11 taps 5s / 0 taps −95% time ↓
Check which route dates have pending visits Easy 2m 05s / 9 taps 4s / 0 taps −97% time ↓

The route date status check dropped from 2 minutes 5 seconds to 4 seconds with zero taps — reps can now read their full week's visit status passively from the date strip without interacting with it at all. The cancel discovery task went from a 75% failure rate to 100% success, and the directions task — previously impossible — now takes a single tap.


08 — Outcomes

Business Impact & ROI

The redesign produced measurable gains across three business dimensions: field rep productivity, compliance cost reduction, and support ticket volume. Metrics were tracked over a 90-day post-launch window across the full 500-rep field force.

38%
reduction in average per-outlet task time (4.5 min → 2.8 min)
~$1.31M
estimated annual value from productivity + compliance + support gains
91%
cancel call compliance rate — up from 60% (+31 percentage points)

Calculation 1 — Productivity Savings

Rep Productivity · Annual Value
Field reps in scope 500 reps
Average outlets visited per rep per day 15 outlets
Working days per year 250 days
Time saved per outlet visit (4.5 min → 2.8 min) 1.7 min saved / outlet
Total minutes saved per year (500 × 15 × 250 × 1.7) 3,187,500 min = 53,125 hrs
Fully loaded rep cost (salary + benefits ÷ 2,080 working hrs) $21.63 / hour
Annual productivity value 53,125 × $21.63 = $1,149,094

Calculation 2 — Compliance Cost Savings

Cancel Call Compliance · Annual Savings
Monthly cancel calls across field force 700 cancellations / month
Pre-redesign: 60% compliant → non-compliant per month 280 non-compliant / month
Post-redesign: 91% compliant → non-compliant per month 63 non-compliant / month
Incidents resolved per month (280 − 63) 217 fewer incidents / month
Rework cost per non-compliant cancellation (re-visit scheduling + supervisor review + audit documentation) $50 / incident
Annual compliance savings 217 × $50 × 12 = $130,200

Calculation 3 — Support Cost Savings

Field Support Ticket Reduction · Annual Savings
Monthly tickets related to: outlet tap confusion, cancel-not-found, directions workaround, route date navigation (pre-redesign) 145 tickets / month
Post-redesign monthly ticket volume 62 tickets / month (−57%)
Tickets resolved per month 83 tickets / month
Average resolution cost per ticket (field support agent time) $28 / ticket
Annual support savings 83 × $28 × 12 = $27,888
Total Annual Value
Productivity savings (53,125 hrs × $21.63) $1,149,094
Compliance savings (217 incidents/mo × $50 × 12) $130,200
Support cost savings (83 tickets/mo × $28 × 12) $27,888
Total estimated annual value $1,307,182
📱
−61%

reduction in taps to start a survey (5 → 2), saving ~8.5 million taps per year across the field force

🔍
100%

cancel discovery success rate in post-launch testing — up from 25%. Action moved from hidden swipe to visible ⋯ menu

⭐
3.4 → 7.1

app satisfaction score for outlet screens (out of 10) — measured in quarterly rep survey 90 days post-launch

📅
−97%

reduction in time to check route date status — from 2m 5s with the old dropdown to 4 seconds with the date strip

"

I can see at a glance which day I still have pending visits on. I used to have to check every date one by one.

— Field Rep, post-launch survey

"

I didn't even know the cancel option existed before. Now I see it every time I tap the three dots. It makes complete sense.

— Field Rep, post-launch survey