Case Study · Contact Centre · Outbound Voice · B2B SaaS

Voice Campaigns —
outbound calling,
launched in minutes

Redesigning how contact-centre supervisors create, launch and monitor outbound voice campaigns across five dialing modes — from a morning of admin forms and CSV tickets to a guided, 7-minute flow.

Role
Lead Product Designer
Platform
Web · B2B SaaS
Timeline
14 weeks
Team
1 PM · 5 Engineers · 1 QA
Live voice campaigns in card view
−69%Time to set up a campaign
−41%Campaign-related support tickets
92%First-try task success
5Dialing modes, one flow
01 — Context

Outbound calling was an admin job

Contact centres in the MENA region use outbound voice campaigns for collections, sales follow-ups, appointment reminders and surveys. Five dialing modes power them: Agent-first, Contact-first, Predictive, Text-to-Speech (TTS) and IVR.

In the old product, a campaign was a long admin settings form. Supervisors — the people who actually run campaigns — needed an admin to set it up, emailed CSV files to support for import, and learned how a campaign performed from the next day’s export.

The brief
Let supervisors create, launch and monitor any type of voice campaign themselves — without admin help or support tickets.
02 — My role

End-to-end, from research to hand-off

I led design for the campaigns module: research planning, synthesis, flows, wireframes, prototyping, usability testing, the final UI and the new components it needed in our design system. I worked daily with the product manager and the telephony tech lead, and reviewed every build with QA before release.

Constraint
Reuse the existing telephony engine — no new dialer logic in v1
Constraint
Country calling-hour rules and blacklists must always apply
Constraint
Ship in two releases: create & launch first, analytics second
03 — Discovery

Watching supervisors run real campaigns

I combined four research methods so that what people said could be checked against what they did and what broke.

12Interviews
8 outbound supervisors, 2 operations managers and 2 system admins across 5 customer contact centres.
3Shadowing sessions
Half-day contextual sessions watching supervisors build, launch and babysit live campaigns.
186Support tickets
Six months of campaign-related tickets, tagged by root cause to find where the old flow broke.
4Products audited
Five9, Genesys Cloud, Talkdesk and Aircall — how each handles set-up, dialing modes and monitoring.
What we learned
01
The dialing type decides everything
Supervisors chose Agent-first, Predictive, TTS or IVR late — as a dropdown on page two — and then had to redo retries, timeouts and concurrency because each type needs different settings.
7 of 8 supervisors re-entered settings after changing type
02
The contact list is the #1 failure point
CSV files arrived with missing country codes, extra columns and duplicates. Errors only surfaced after upload, so supervisors raised a ticket and waited for support.
38% of campaign tickets were CSV issues
03
Monitoring happens outside the product
Live progress lived on wallboards and next-day exports. Supervisors screenshot dashboards into WhatsApp groups to tell managers how a campaign was doing.
Average of 3 tools open during a live campaign
04
Every change needs a trail
When answer rates dropped, managers asked “who changed the retries?” and nobody could tell. Accountability mattered as much as speed.
Raised unprompted in 9 of 12 interviews
In their words
I only know I picked the wrong campaign type when the dialer starts calling people nobody is free to talk to.
Outbound supervisor, collections team
Half my Monday is fixing CSV files and waiting for support to upload them again.
Outbound supervisor, retail sales
If the answer rate drops I need to know in the moment, not in tomorrow’s report.
Operations manager, insurance
Competitive audit
Five9
Powerful dialer with every mode
Set-up spread across admin screens; built for admins, not supervisors
Genesys Cloud
Strong pacing and compliance rules
Long single-page forms; list errors reported after import
Talkdesk
Clean campaign dashboard
Limited TTS / IVR campaigns; weak change history
Aircall
Simple, fast power dialer
No predictive or IVR modes; too light for large teams

No product put the supervisor at the centre: set-up assumed an admin, and list quality problems were caught too late everywhere.

04 — Persona

Designing for Layla — the outbound supervisor

A composite of the eight supervisors we interviewed and shadowed. She owns campaign results but, before this project, depended on admins and support to run them.

LH
Layla Haddad
Outbound Supervisor · 31 · Dubai, UAE
Leads 20 agents · collections & retention campaigns · 4 years in contact centres
“I’m measured on the answer rate, but I can’t even see it until tomorrow.”
Goals
Launch the right campaign type in minutes, not a morning
Upload a list once and trust it
See live progress without leaving the product
Frustrations
Settings that silently reset when the type changes
CSV errors discovered after upload
No record of who paused or edited a campaign
Behaviours
Runs 6–10 campaigns a week across 2–3 queues
Keeps a personal Excel “recipe” for each campaign type
Checks live numbers every 30 minutes during peak hours
Secondary personaRami — Contact-centre adminSets global limits (concurrency, blacklist, calling hours) and wants supervisors to self-serve safely inside them.
05 — Journey map

From brief to report — where it breaks

Layla’s current journey for a single collections campaign, mapped from the shadowing sessions. The lowest moments — list building, configuration and monitoring — became the design focus.

Plan
Build list
Configure
Launch
Monitor
Report
Doing
Gets a brief from sales or collections: who to call, when, why
Exports contacts from CRM, cleans the CSV in Excel
Fills retries, timeouts, caller ID, queue, concurrency
Schedules calling hours and starts the campaign
Watches wallboard, screenshots progress for managers
Exports next-day report, explains changes to manager
Thinking
“Which campaign type fits this?”
“Hope the format is right this time.”
“What did I set last time?”
“Is it actually dialing?”
“Why did answer rate drop?”
“Who changed the retries?”
Feeling
Unsure
Anxious
Frustrated
Nervous
Stressed
Defensive
Pain point
Dialing types explained nowhere in the product
Requirements only discovered through errors
One long form; type-specific fields buried
No confirmation or review before going live
Live data lives outside the campaign
No audit trail of edits, pauses or re-uploads
Opportunity
Choose the type first, with plain-language guidance
Show CSV rules and a sample file before upload
Step-by-step wizard that only asks what this type needs
Review screen + start now / start later choice
Live status on every card + analytics in the details view
Activity log that records every change with time and author
06 — Define

Problem statement & principles

Supervisors need to launch the right type of outbound campaign in minutes and trust what it is doing while it runs — but today set-up is split across admin settings, CSV hand-offs to support and next-day reports.
How might we…
01HMW help supervisors pick the right dialing mode before they configure anything?
02HMW make a contact list “right the first time” instead of fixing it after upload?
03HMW bring live performance and change history into the campaign itself?
Design principles
01
Type first
The dialing mode shapes every step after it, so it is the very first decision — never a dropdown on page two.
02
Prevent, don’t correct
Show rules, defaults and limits before the user acts, instead of error messages after.
03
One screen of truth
Set-up, live performance and history live on the same campaign page.
04
Every change leaves a trace
Starts, pauses, edits and uploads are logged with who and when.
07 — Structure & flow

One lifecycle, one flow for five types

Every campaign moves through the same lifecycle, so status, actions and filters could be shared across all five dialing modes.

DraftScheduledIn progressPausedCompletedStopped

Creation became a five-step wizard. Most steps are identical for every type; only Configure changes — so the difference between types is contained in one place.

StepAgent / Contact-firstPredictiveTTSIVR
1 · DetailsName, country, queue, caller IDSameSameSame
2 · ConfigureRetries, delay, ringing timeout+ Max concurrent calls, pacing+ Message → speech preview+ Menu keys & routing
3 · ContactsCSV upload, column check, reviewSameSameSame
4 · ScheduleDate range + daily calling windowsSameSameSame
5 · ReviewSummary, start now or laterSameSameSame
08 — Lo-fi wireframes

Sketch, test, move one question

I sketched the key screens as low-fidelity wireframes and turned them into a clickable prototype. Six supervisors tried to set up and launch a collections campaign while thinking aloud.

Listing — status ring and answer rate on every card; card, list and calendar views.
Listing — status ring and answer rate on every card; card, list and calendar views.
Type picker — the first decision, with a one-line explanation of each dialing mode.
Type picker — the first decision, with a one-line explanation of each dialing mode.
Wizard — five steps with progress always visible; defaults pulled from global settings.
Wizard — five steps with progress always visible; defaults pulled from global settings.
Contacts — rules and a sample CSV before upload; the step can be skipped and done later.
Contacts — rules and a sample CSV before upload; the step can be skipped and done later.
Campaign page — set-up, live analytics and an activity log side by side.
Campaign page — set-up, live analytics and an activity log side by side.
What testing changed
Type moved to step 0
In the first sketch the type was a field inside Details. 4 of 6 supervisors changed it mid-flow and lost settings, so it became its own screen before the wizard.
“Skip for now” on contacts
Lists often arrive from the client after the campaign is configured. Letting supervisors save without contacts removed a hard blocker.
Schedule = dates + calling windows
Separate “schedule” and “operating hours” pages confused people. One step with a date range and daily time slots tested cleanly.
09 — Hi-fi design

The final experience

Built on our design system, with new components for campaign status, type chips, a stepper and an activity timeline.

Campaigns at a glance

Every card shows progress, answer rate, contacts and agents. A “Live” toggle filters to running campaigns; list and calendar views support planning and bulk actions.

Card view — live health for every campaign
Card view — live health for every campaign
List view — denser, sortable, bulk actions
List view — denser, sortable, bulk actions
Calendar view — plan campaigns around calling windows
Calendar view — plan campaigns around calling windows
Create — type first, then five steps

The type picker explains each dialing mode in one line. Every step after it is pre-filled from global settings, and a review screen lets supervisors start now or later.

Choose campaign type
Choose campaign type
1 · Details
1 · Details
2 · Configure
2 · Configure
4 · Schedule
4 · Schedule
5 · Review & save
5 · Review & save
Created — start now or later
Created — start now or later
Predictive — details
Predictive — details
TTS — message with speech preview
TTS — message with speech preview
IVR — concurrency and routing
IVR — concurrency and routing
Contacts — right the first time

Rules and a sample template sit above the drop zone, the import shows its progress, and the validated list can be reviewed before moving on. Contacts can also be added later from the campaign page.

Upload with rules and sample CSV
Upload with rules and sample CSV
Import in progress
Import in progress
Validated list, ready to review
Validated list, ready to review
Adding contacts to an existing campaign
Adding contacts to an existing campaign
Reviewing uploaded contacts before import
Reviewing uploaded contacts before import
Monitor — one screen of truth

The campaign page combines set-up details, live analytics and an activity log that records every start, pause, edit and upload with time and author.

Performance analytics — connection, answer and abandon rates, retries and call outcomes
Performance analytics — connection, answer and abandon rates, retries and call outcomes
Chart view of the same analytics
Chart view of the same analytics
Contacts tab with per-contact status
Contacts tab with per-contact status
Quick preview from the listing — no page change
Quick preview from the listing — no page change
Preview with charts
Preview with charts
Control & safety

Filters and bulk actions help manage dozens of live campaigns; destructive actions ask for confirmation; global settings and the blacklist keep every campaign inside the admin’s limits.

Filters by status, type and date
Filters by status, type and date
Campaign actions with confirmations
Campaign actions with confirmations
Global settings and blacklist
Global settings and blacklist
10 — Decisions

Trade-offs I had to make

01Wizard over a single long form
Tension
Power users asked for one page they could scan. New supervisors and support tickets pointed the other way.
Decision
A 5-step wizard with a full review screen at the end — fast for experts (every step pre-filled from global settings), safe for everyone else.
02Validate before upload, not after
Tension
Engineering could only validate on the server after import, which meant a round-trip on every mistake.
Decision
We showed the CSV rules and a downloadable template up front, and added a lightweight client-side column check. Server validation stayed as the safety net.
03Cards as the default view
Tension
A dense table fits more campaigns; cards show live health at a glance.
Decision
Cards by default for live monitoring, with list and calendar views one click away for planning and bulk work.
11 — Validation & impact

Tested before build, measured after launch

Before development, eight supervisors completed five core tasks on the hi-fi prototype — creating each campaign type, fixing a bad contact list and pausing a live campaign. After launch we tracked set-up time and support volume for three months.

92%
Task success on first try
vs 58% on the old flow
81
SUS score
up from 54
7.5 min
Average set-up time
down from 24 min
−41%
Campaign support tickets
3 months after launch
“For the first time my supervisors launch campaigns on their own — and I can see exactly who changed what.”
Operations manager, launch customer
12 — Learnings

What I’d take to the next project

Order is a design decision
Moving one question — the campaign type — to the front removed more errors than any visual change.
Design the unhappy path first
Most of the pain lived in bad CSVs and mid-campaign changes, not the happy path everyone demos.
Trust is an operations feature
The activity log was a “nice to have” in the brief. In testing, managers called it the reason they would let supervisors self-serve.

Next, I would extend the same flow to WhatsApp campaigns — the listing already supports both channels — and explore recommending the best calling window from past answer rates.

Next steps

Want a walkthrough of the prototype?