Contact Center UI / Case Study

01

Omni UI Framework

I designed an agent workspace that keeps customer conversations, waiting sessions, and follow-up tasks together.
01 / Objective

What I wanted to solve

An agent has to listen, read, act, and keep track of other customers at the same time. My goal was to give each part of that work a clear place in the interface, with enough context to make a decision without leaving the conversation.

I built the framework around the relationship between the queue, the active session, and supporting information. The challenge was to keep useful detail visible while making the current customer and the next action easy to find.

02 / My role

My contribution

Experience design

I designed the agent experience, connecting queued sessions, customer conversations, history, and follow-up tasks in one workspace.

UI design

I designed the workspace layout, session cards, conversation panels, controls, and status states so agents can scan and act quickly.

Prototype development

I built the underlying front-end prototypes to bring the workspace, components, and agent workflows into a working interface.

03 / Interface review

What I focused on

Customer details close at hand
I kept contact details, previous conversations, notes, and live messages close together. The goal was to help agents find what they need without leaving the conversation.
A queue that is easy to scan
I gave session cards a consistent layout for the customer, channel, and waiting time. The active session also needs to be easy to spot when several customers are waiting.
Different ways to finish
I kept complete, wrap up, transfer, and reschedule separate. They lead to different outcomes, so a single generic button would leave too much unclear.
The design question

How can an agent keep track of several sessions while staying focused on the customer they are helping right now?

04 / Workflow

How the flow works

  1. 01

    Choose

    Scan the queue for a customer, channel, and waiting state.

  2. 02

    Understand

    Read the current request alongside previous interactions.

  3. 03

    Act

    Reply, work through a task, or bring in another agent.

  4. 04

    Close the loop

    Complete, transfer, or arrange a follow-up with a clear outcome.

05 / Design decisions

Why I designed it this way

Keep the conversation in place

I divided the workspace into four areas so agents can check the queue and customer history while keeping the conversation open. On smaller screens, the active task needs priority over supporting details.

Application shell

Make session status clear

I combined names, channel icons, timers, and a clear selected state in the session cards. I also included text labels for status, so agents do not have to rely on color alone.

Session cards

Break longer tasks into steps

I split the payment flow into details, card information, billing address, and review. The step indicator shows where the agent is, and the review step gives them a chance to check the details before finishing.

Workflow stepper
06 / The work

A closer look at the designs

Contact center / agent workflow UI

Omni component breakdown

Omni UI Framework provides a structured component system for contact center and agent workflows. It defines reusable patterns for navigation, session queues, dense work panels, action bars, chat threads, customer history, forms, scheduling tools, and step-based task flows, creating a consistent foundation for high-volume support interfaces.

13Documented screen patterns
4Primary work zones
8Reusable components

1. Application shell

I gave navigation, waiting sessions, the current conversation, and supporting details their own areas in the workspace.

Manual Call
Jonty BridgesCustomer Service
1:34
Telephone +44 3829 2930
Email [email protected]
Patryk HartleyWaiting
10s
Active session
Conversation
1 January 1965
I’m having trouble understanding a feature.
I can help. Let me review your file.
History
Today
Can we make it shorter?
Agent Assigned: Lukas
No Solution

2. Session cards

I kept customer details, channel, status, and waiting time together in compact session cards.

Manual Call4
Jonty BridgesCustomer Service
2:00
Telephone +44 3829 2930
Email [email protected]
Patryk HartleyCustomer Service
10s
Jonty BridgesCustomer Service
11s
Aubree LambertCustomer Service
4

3. Buttons and action states

I grouped buttons by what they do, keeping the main action, completion, wrap-up, and cancellation easy to tell apart.

Default
Hover / focus
Active

4. Functional form inputs

I used simple field labels, visible focus, and nearby error messages to help agents enter and check session details.

5. Status indicators

I paired each status color with a text label so its meaning does not depend on color alone.

Connected
Active call or chat

Waiting
Queued session

Attention
Escalation or overdue

Inactive
Idle or parked

6. Conversation component

I separated customer and agent messages, kept timestamps visible, and placed replies at the bottom of the conversation.

Jonty Bridges · Manual Call
1 January 1965
Hello, I’m having trouble understanding a feature. I called last week and talked to someone but it is still broken.
Jonty Bridges · 13:55
Hello, very sorry to hear that. Please give me a moment to review your file and see if I can get caught up.
Agent · 13:56

7. History and tabs

I used tabs to keep history, scripts, and notes close to the current conversation.

Today
Can we make it shorter?, can it handle...
Agent Assigned: Lukas Valentich
No Solution
01:45 AM
Yesterday
So I need this to work in internet explo...
Agent Assigned: Zara Glaser
Good outcome
02:15 PM

8. Payment / workflow stepper

I broke longer tasks into steps so agents can see what is done, where they are, and what comes next.

9. Empty and reset states

I kept waiting screens quiet and gave smaller tasks, like password resets, a focused layout.

🎧
Waiting for incoming chat sessions

Keep idle states centered, quiet, and low distraction.

10. Reset password card

Reset Password

11. Personal reschedules grid

I arranged callback availability by time zone, with confirmed appointments below so agents can check both together.

Personal reschedules for 07/11/2034 in GMT Standard TimeSelected time
GMT ST
PST
CST
10:15 - 10:29
Intrafinity inc.
+1 (416) 483 9201
11:15 - 12:29
Costco Canada
+44 495 2929 2930
12:15 - 13:29
Grace Liu
+1 (389) 389 3892

12. Call control toolbar

I separated call controls from the actions used to finish a session, keeping both within reach.

01:45active call
2transfers
4queued
Readyagent status

13. Parked session stack

I kept parked sessions visible with enough detail to pick them up again, without taking attention from the active conversation.

JB
Jonty BridgesCustomer Service · Active
+44 3829 2930 [email protected]
01:45
Parked
AL
Aubree LambertCustomer Service · Waiting on agent
+44 478 3782 5649Payment follow-up

14. Login, verify, and join cards

I kept sign-in and campaign selection focused on the details agents need to enter the workspace.

Log in to your account

15. Multi-session queue board

I used a compact table to bring active channels, recent outcomes, and session status together.

HistoryToday
SessionAgentOutcomeTime
Can we make it shorter?Lukas ValentichNo solution01:45
Internet Explorer supportZara GlaserGood outcome02:15
Start page media issueAdam WeaverReview03:10

16. Omni color tokens

Navy rail
Action blue
Complete
Wrap up
Attention
Panel bg

Example markup

<button class="omni-button success" type="button"><i class="fa-solid fa-check" aria-hidden="true"></i> Complete</button>
<input class="omni-input" placeholder="Customer name" required>
<div class="session-card is-selected">
  <div class="avatar">JB<span class="status-dot green"></span></div>
  <div><strong>Jonty Bridges</strong><small>Customer Service</small></div>
</div>
07 / Reflection

Looking back

My focus was on making a busy workspace easier to follow. I gave waiting sessions, the current conversation, and customer history their own places, while keeping them connected. That balance matters more to me than fitting every possible detail onto one screen.

Available for thoughtful product work

Let’s make complex products easier to use.