Skip to content
All blueprints
Blueprint

Blended Contact Center Staffing Blueprint

A practical guide to staffing voice, chat, and async work together using channel-specific forecasts, interval-based concurrency, and backlog drain targets.

Audience

WFM analysts, intraday managers, and support operations leaders

Time

2 to 3 hours for the first pass, then 30 minutes per week to maintain

Before you start

Use this blueprint when

  • Your voice queue misses service level even though coverage looks fine in WFM
  • Chat concurrency assumptions break during peak periods
  • Email or ticket backlog gets raided to cover voice
  • You use one shrinkage number across every channel
  • Re-contacts rise after you blend channels or expand multitasking

Prerequisites

  • Access to 15-minute interval contact volumes by channel
  • Access to AHT or work time by channel
  • Two weeks of actual schedule, availability, and shrinkage data
  • A current staffing model in Excel, Google Sheets, or your WFM platform
  • Agreement on service-level targets for voice and chat

Inputs needed

  • Voice arrivals by 15-minute interval
  • Chat starts by 15-minute interval
  • Email or async arrivals by hour or interval
  • AHT by channel and by blended versus dedicated assignment where available
  • Actual chat concurrency by interval
  • Scheduled versus available time by channel
  • Backlog at start of day and end of day for async channels
  • Same-day or next-day re-contact rate by channel

Steps

1

Separate demand by channel before you do any staffing math

Build separate interval demand curves for voice, chat, and async work. Do not let one blended forecast hide different peak patterns.

Start by splitting your historical demand into distinct channel curves. Voice, chat, and async work do not peak at the same times, and a single daily shape causes systematic misallocation.

For voice, work in 15-minute intervals and identify the true peak windows, especially Monday mornings, post-lunch periods, and the first interval after weekends or holidays. For chat, build its own 15-minute profile. In many teams, chat skews later in the day and follows digital traffic patterns rather than call behavior.

For email and other async work, interval precision matters less than queue condition. Measure new work arriving each hour, backlog at the start of the day, and the expected drain target by time of day.

  • one interval demand curve for voice
  • one interval demand curve for chat
  • one backlog and arrival view for async work

If your current WFM tool only produces one blended curve, export the volumes and create a simple overlay in Excel or Sheets. This correction alone is often enough to explain why a day that looked safe on paper still failed in operation.

2

Use Erlang only where Erlang still fits

Apply Erlang C to voice or voice-like real-time work, not to every channel by default.

Erlang C is still useful for one-contact-at-a-time, real-time queues where delay is the core service risk. That makes it a reasonable engine for voice and in some environments for low-concurrency chat.

Do not use it unchanged for async work. Email, tickets, and other backlog-driven channels should be staffed against a drain target, not a service level percentage borrowed from voice.

  • voice: use Erlang-style staffing
  • live chat: use adjusted real-time staffing with concurrency inputs
  • async channels: use workload and drain-rate planning

For async, define the target in operational terms: clear yesterday's backlog by 11am, keep open tickets under a queue cap by close, or respond to priority email within a tighter window than standard work. This prevents the common mistake of starving email on Monday to rescue voice, only to create a larger volume problem on Wednesday through re-contacts and escalations.

3

Replace flat chat concurrency with an interval-based curve

Model chat concurrency as something that changes by interval, not as one constant for the whole day.

Most blended models treat concurrency as fixed. In reality, it compresses during peak because waiting time, context switching, and response complexity all increase when the operation is hot.

  • peak intervals: lower concurrency, often 2 active chats per agent
  • shoulder intervals: higher concurrency, often 3 to 4
  • trough intervals: stable concurrency based on observed behavior

Then layer in handle-time inflation. If your agents blend voice and chat, compare chat AHT when they are chat-only versus when they are mixed. Many teams find that chat AHT rises materially once voice interruptions are introduced.

Worked example: if peak chat volume is 200 contacts per hour, the business-case assumption is 3 concurrent chats, and actual peak behavior is 2 concurrent chats, your model is overestimating effective capacity by 50% during the interval that matters most.

Your aim is not a perfect simulation. It is a practical correction that reflects the operating reality of peak versus shoulder behavior.

4

Calculate shrinkage separately for voice, chat, and async

Use actual channel-specific shrinkage instead of carrying one voice benchmark across every queue.

Uniform shrinkage is one of the fastest ways to distort staffing across channels. Voice, concurrent chat, and async work absorb non-productive time differently.

  1. Pull scheduled time
  2. Pull actual available time
  3. Remove known exceptions you intentionally allowed
  4. Calculate the gap as your observed shrinkage

Then interpret the result by channel context. Voice has the highest sensitivity to real-time unavailability. Chat can reuse some turn-wait time across concurrent sessions. Async work is less sensitive to minute-level availability swings.

Document the number, the date range used, and the owner who will refresh it each month or quarter. A locally-derived number is far more valuable than an industry benchmark that does not match your routing model. If the team still needs a shared reference point, connect the workflow to the live contact center shrinkage tool and a plain-language shrinkage definition so everyone uses the same baseline.

5

Staff real-time channels first, then assign async work with drain targets

Protect voice and live chat first, but only after you define explicit backlog targets so async work does not become a hidden source of tomorrow's volume.

Once you have corrected the demand curves, concurrency assumptions, and shrinkage rates, sequence the staffing decision in the right order.

  • voice to its service-level target
  • chat to its response target with interval-weighted concurrency
  • async work to a backlog target by time of day

If you routinely pull email agents into voice, create a rule before the day starts that defines what queue threshold triggers reassignment, how long the reassignment can last, and what async backlog threshold stops further raids.

That turns an ad hoc rescue habit into a controlled tradeoff.

6

Build intraday triggers that catch drift early

Add rolling reforecasts and pre-agreed flex actions so you can respond before a service-level miss compounds.

The day-of-operation model starts drifting almost immediately. Arrivals vary, absences happen, and real handle times move. The teams that recover fastest are the ones that decide in advance what signals trigger action.

  • every 15 minutes: compare actual arrivals, AHT, and staffing gaps by channel
  • every 30 to 60 minutes: review remaining-day outlook
  • at every trigger breach: choose from a pre-approved action list

Useful triggers include voice queue depth above threshold for three consecutive intervals, chat response time above target for two intervals, backlog drain more than 15% behind plan, or a brand or incident alert that predicts a secondary surge.

Useful actions include activating a flex pool, deferring coaching or offline work, staggering returns to the queue instead of releasing everyone at once, and pausing cross-channel reassignments if async backlog crosses its stop-loss threshold. This gets easier when the team has a real intraday management layer instead of reacting from static schedules.

7

Decide where to blend and where to specialize

Blend transactional work when the efficiency gain is real, but protect complex or empathy-heavy work with dedicated coverage.

Not every contact type should live in the same staffing pool. Blending is strongest where work is repeatable, low-stakes, and easy to resume after interruption. Specialization is stronger where resolution quality matters more than utilization optics.

  • blend password resets, order status, simple account updates, and similar transactional work
  • specialize escalations, disputes, technical troubleshooting, retention conversations, and sensitive cases

If your operation is split on the decision, run a 30-day pilot on one high-complexity contact type. Compare first-contact resolution, same-day re-contact rate, AHT distribution, and QA performance.

This gives you evidence for where blending helps and where it quietly creates extra workload downstream.

Implementation checklist

0/10

Most contact centers do not fail because the staffing engine is completely wrong. They fail because a model that was reasonable for one channel gets stretched across three very different kinds of work without changing the assumptions. This blueprint works because it changes the inputs and the operating rules before it asks the formula to do anything. It fits best alongside a stronger forecasting process and the wider support-team WFM blueprint.

Erlang C is still useful in the right place. The mistake is treating it as the whole answer. In a blended environment, the more durable staffing model is channel-specific, interval-aware, and explicit about what real-time protection costs the rest of the day.

Related resource

Coverage Audit Tool

Open resource

Your next schedule could take 2 minutes.

Import your team, set your rules, hit auto-fill. Most teams are live the same day.

Try Soon free

30 days free · No credit card required

Already have an account? Sign in