UX & Product Design · 2024–2026

OCCSDesigning the Screen 1,000 Clerks Stare at All Day

  • OCCS / StaieClient
  • UX, Product, ResearchDiscipline
  • Clerk-facing appScope
  • 2024–2026Duration
View live product
  • 1000+clerks
  • 300+projects
  • 5000+calls at a time
OCCS incoming-call screen shown on a laptop.

Tl;DR

A multi-tenant call centre used by 1000+ clerks. I redesigned everything they touch.

OCCS replaced VCC, the old system, and is much simpler to use. From sign-in to hang-up the rule was simple: everything needed during a live call on one screen, and out of the way the rest of the time.

Problem

A clerk on a live call cannot go looking for things.

Someone is talking. The script, the customer record, the rules, the result code — all of it is needed now. Every tab switch happens in front of a caller.

My role

One clerk, many client companies.

Clerks answer for several businesses at once. One project is primary and loads the script, guide and result codes; the rest stack as reference. Orange is live, blue is on hand.

Design · Sign in

First login or returning clerk — two states, no dead ends.

Sign In collects username, password, and language upfront. Dark/light toggle is accessible before logging in. Returning clerks see a Welcome Back screen with their account pre-loaded — one tap to get in, one link to switch accounts.

The sign-in and Welcome Back states.

Design · Project selection

Pick your primary project, stack secondaries — then go live.

Clerks work across multiple client companies. One project is Primary — it loads the call form, guide, and result codes. Any number can be Secondary for reference. The list is searchable and sortable by last used. Selected primary highlights orange, secondaries blue. The status bar at the bottom shows what’s active before hitting LOGIN.

Project selection with a primary highlighted orange and secondaries in blue.

Design · Audio setup

Test your mic, speaker, and ringtone before the first call rings.

Local Settings lets clerks pick their own audio devices independently. Live input meter shows the mic is actually picking up. TEST, PLAY TEST, and PLAY ECHO let them verify both directions. Changes apply instantly — no save step, no IT ticket.

Local audio settings with a live input meter and test buttons.

Design · Callbacks

Where clerks live between calls.

The Callbacks dashboard lists every scheduled interaction — project, caller number, customer name, scheduled time — with CALL and RESCHEDULE inline on every row. My Callbacks and Shared Callbacks are tabbed. Search filters by name or number. TODAY shortcut cuts through the noise.

The callbacks dashboard with CALL and RESCHEDULE on every row.

Design · Incoming call

The greeting script shows before the clerk picks up.

When a call comes in, a modal interrupts whatever screen is open. It shows the project, the greeting script the clerk should read, the caller’s name and number, then DECLINE and ACCEPT. The clerk knows exactly what to say before they answer — not after.

The incoming-call modal showing the greeting script, caller name and number.

Design · Active call

Everything on one screen. No tab switching during a live call.

The call screen is the hardest surface to get right. Left column: greeting script, problem locations with advice, 8 numbered call handling steps, and 3 special rule cards. Centre: live project info and active issues. Right: result codes, notes, Call Logs and Live Transcribe tabs. Top bar: caller name, timer, direction badge, and all call controls — permanent throughout.

The full active-call screen: script and steps left, project info centre, result codes right.

Design · Result codes

Log the outcome before ending the call — not after.

The right panel has three tabs: Not Reached, Reached, Successful. Clerks pick a result code, add notes, and hit Save. The button confirms SAVED in green. This happens while still on the call — no second screen, no post-call admin.

The result-code panel with Not Reached, Reached and Successful tabs.

Design · Focus mode

Collapse both sidebars when the form needs more room.

Both the left nav and right panel collapse independently. When a project has a dense call form, clerks can give the centre content the full width. Expanding either sidebar is one click — nothing is hidden permanently.

The call screen with both sidebars collapsed for a full-width form.

Design · Call persists across screens

Navigate anywhere during a call — the bar stays.

The blue call bar doesn’t disappear when a clerk opens Callbacks or another module. It locks to the top of every page with the caller name, timer, and all controls. ‘Click to return to call’ appears when they’re away from the call form — one click brings it back.

Callbacks open with the blue call bar still locked to the top of the page.

Design · Minimized call

Need both hands free? Shrink the call to a pill.

The active call collapses to a floating pill — caller name, number, expand arrow — sitting in the bottom corner. The rest of the app is fully usable. Clicking the pill restores the full call screen.

The active call minimised to a floating pill in the bottom corner.

Design · Callback during a call

Schedule a callback without dropping the live call.

While on a call, clerks can open the callback scheduler inline. The call continues in the top bar. They pick the time, confirm — done. No modal stack, no context loss.

The callback scheduler open inline while the call continues in the top bar.

Design · Call forward

Select an agent, watch it ring, confirm the handoff.

The Forward panel shows every available agent — name, status (Available, On Hold, On Break), wait time. Clerk selects one, hits FORWARD. The row flips to Ringing with a live counter. If the call gets through in conditional mode, the top bar shows both legs of the call simultaneously. CANCEL is always there if the transfer needs to be pulled back.

The forward panel with agent statuses, a ringing row, and both call legs in the top bar.

Design · End call

Confirm before you hang up.

Clicking End Call shows a modal with the contact name, number, and result code. Two buttons: CANCEL and END CALL. No accidental disconnects, no fixing a wrong result code after the fact.

The End Call confirmation modal showing contact, number and result code.

Design · Client search

Look up any customer mid-call without losing your place.

Client Search is a tab inside the active call screen. Eight search fields — name, phone, email, address, project, postal code. Results are paginated. SELECT links the record to the call. Call Logs stay visible on the right throughout.

Client Search inside the call screen, with results and Call Logs still visible.

At scale · Process & impact

4,000+ tickets. Sprint retros every two weeks.

OCCS wasn’t a side project — it ran live across multiple client companies and thousands of customer interactions. The Jira board shows a real sprint in motion: tickets across To Do, In Progress, Blocked, Review, and Done simultaneously. Every two weeks the team ran structured Miro retrospectives — car metaphors, hunted/hunter formats — to surface blockers and recalibrate.

The OCCS Jira board mid-sprint, and a Miro retro board.

Impact

Two years, 4,000+ tickets, retros every fortnight.

Shipped continuously with the team rather than handed over in one piece.

  • 1000+clerks using it daily
  • 4,000+tickets across the programme
  • ~35%faster response
  • ~30%less manual coordination

What this taught me

Designing for people under pressure is a different job.

No onboarding tour survives a ringing phone. The interface has to be right on the first glance, on the four-thousandth call.