Early Warning Thresholds for Queues, Backlog and Aged Conversations
What this table is for
A WhatsApp queue doesn't break all at once: it degrades. First, unassigned conversations pile up, then assigned ones age without a reply, and only at the end does the customer write again to ask if anyone is going to help them. By the time that last step happens, you've already lost the sale and probably the contact too. Early warning thresholds exist to stop the degradation at step one or two, not at step four.
The problem is that most teams don't have thresholds: they have a feeling. "We're swamped," "there's a lot today," "we dropped the ball." That feeling can't be monitored, can't be delegated, and can't be automated. A threshold, on the other hand, is a number with a time next to it and an assigned action. This page is the table you build once and then check to know if the queue is healthy, if it's in the risk zone, or if you need to escalate.
Everything that follows are method thresholds: you plug in your operation's numbers and the table tells you which band you fall into. There are no market figures or invented benchmarks. The only hard references that appear are the ones that can be stated without an external source: WhatsApp's 24-hour window, the window of up to 48 hours for template approval, and the features that actually exist in an inbox tool with AI.
How to read the main table
The table has three axes that are measured separately and then combined: age of the unanswered message (the most important one), backlog size (how many open conversations there are in total), and overdue conversations (those that crossed a limit you defined and should no longer be open). Each axis has four bands: healthy, attention, risk, and escalate.
The "healthy" band doesn't mean there's nothing pending. It means what's pending is within the time your team can resolve it without the customer noticing the delay. The "attention" band is the signal that something is moving slower than normal and it's worth looking before it turns into risk. "Risk" is when there are already conversations that will end badly if nothing is done today. "Escalate" is when the problem stopped being about volume and became about capacity: it isn't solved by working faster, it's solved by adding people, changing the shift, or activating another channel.
The values are method thresholds: they're adjusted to the size and schedule of each operation. They aren't industry standards or Wando recommendations, and they shouldn't be cited as a benchmark. The "Escalate" column doesn't imply a resolution time, it only indicates that the problem stopped being about pace and became about capacity.
| Axis | Healthy | Attention | Risk | Escalate |
|---|---|---|---|---|
| Age of the unanswered message | Less than 15 min during business hours | Between 15 and 60 min | Between 1 and 4 hours | More than 4 hours or crosses the end of the day |
| Total backlog of open conversations | Less than 10 per active agent | Between 10 and 20 per agent | Between 20 and 35 per agent | More than 35 per agent or growing 3 days in a row |
| Conversations overdue by age | 0 overdue | 1 to 3 overdue | 4 to 10 overdue | More than 10 overdue or any with more than 48 hs |
| Unassigned messages | 0 unassigned | 1 to 5 unassigned | 6 to 15 unassigned | More than 15 unassigned or any with more than 2 hs |
| Reopenings of the same contact | 0 reopenings | 1 isolated reopening | 2 or more reopenings in the same day | 3 or more reopenings or a customer who writes through another channel |
| After-hours conversations without auto-reply | 0 uncovered | 1 to 3 uncovered | 4 to 10 uncovered | More than 10 uncovered or no auto-reply configured |
| Accumulated audio messages without transcription | 0 pending | 1 to 5 pending | 6 to 15 pending | More than 15 pending or audios older than 24 hs |
| Templates pending approval | 0 pending | 1 to 2 pending | 3 or more pending | Scheduled campaign without an approved template |
| Active campaigns without an assigned agent | 0 campaigns | 1 campaign | 2 campaigns | 3 or more simultaneous campaigns without coverage |
| Tags unused for more than 30 days | 0 dead tags | 1 to 3 dead tags | 4 to 8 dead tags | More than 8 or duplicate tags with the same name |
How the age threshold is set, which is the one that matters most
Of the three axes, the age of the unanswered message is the one that best predicts whether the customer will leave. A large backlog with fresh messages may just be a busy day. A small backlog with six-hour-old messages is a structural problem. That is why the age threshold is set first and the others are derived from it.
The way to set it is not to copy a number: it is to look at your own history and see from what delay the customer starts writing again, asking if they saw it, or going elsewhere. That point is your risk threshold. The attention band is half that time, and the escalate band is double. If you don't have history yet, use the table as a starting point and adjust after two weeks of measuring.
An important detail: the clock does not run the same in all time slots. A message that comes in at 22:00 does not age while the business is closed. If you measure raw age, you will have false alarms every morning. The age that matters is the one that runs within the declared business hours. If your inbox has auto-replies by time slot, that same time slot is what defines when the clock starts counting.
About the message clock: when you analyze time slots from your own database, use the timestamp that Meta sends, not the row insertion one. The insertion one reflects when the data was loaded, not when the message happened, and any distribution you build with that column will show peaks at the time of import, not at the real time of the conversation.
What to do in each band, without ambiguity
A threshold without an assigned action is decoration. Each band has to have a concrete response and a responsible person. If you don't know who acts when the threshold is crossed, the threshold is useless.
- 1Healthy zone: nothing is done. The team keeps its normal pace. If you want, log that it was measured, but do not interrupt the operation for a green indicator.
- 2Attention zone: the shift lead checks the queue once and redistributes if needed. No one outside the team is notified. The goal is to keep it from turning into risk within the next hour.
- 3Risk zone: shift reinforcement is activated. The oldest conversations are prioritized, not the newest. If there is multi-agent, overdue conversations are reassigned to whoever has the least load. If templates are available, one is used to reopen contact with overdue conversations.
- 4Escalate zone: the decision-maker is notified (owner, manager, shift supervisor). Adding people to the shift, extending service hours, or activating an alternative channel is evaluated. What was done is documented, because if the escalate zone repeats three days in a row, the problem is not today's, it is staffing.
The most common mistake at this point is assigning the action to whoever is busiest. If the person handling conversations is the one who has to detect and resolve the threshold, the threshold is always crossed. Detection must be automatic or done by someone who is not in the queue: a supervisor, a manager, or an alert that arrives in a separate channel.
Overdue conversations: the definition that must be agreed on before measuring
"Overdue conversation" does not mean the same thing in every business, and that is where half of the dashboards fall apart. Before setting a number, three things must be agreed on: what counts as an open conversation, when it is considered overdue, and what closes it. If those three definitions are not written down, every person on the team will count differently and the indicator will be useless.
Definitions are agreed on once and documented. If they change, the indicator's cutoff date is changed so you are not comparing apples to oranges.
| Concept | Operational definition | How it is counted |
|---|---|---|
| Open conversation | Exchange with at least one message from the customer without a response from the business, or with a response and waiting for the customer to reply | Counts as open until it is explicitly closed or the closing limit passes |
| Overdue conversation | Open and without a response from the business for more than the risk threshold you set | Counted by the age of the customer's last message, not the business's last message |
| Closed conversation | It was answered and the customer did not write again within the closing limit, or it was closed manually | It is removed from the backlog at the moment it is closed |
| Reopening | The same contact writes again about a conversation that was already closed | Counts as a reopening and adds to the reopenings indicator |
| Real backlog | Open conversations plus overdue conversations, not counting closed ones | Measured per active agent, not per business total |
| Unassigned queue | Conversations that came in and still do not have an owner | Measured by the age of the oldest unassigned message |
The closing limit is the number that generates the most discussion. Some teams close at 24 hours, others at 7 days, others never close. There is no universal correct value: there is a value that must be the same for the whole team and must be below the time in which the customer stops remembering that they wrote. If you close too quickly, you lose conversations that could still have converted. If you close too late, the backlog fills with noise and the thresholds stop alerting.
Common mistakes when setting thresholds
Almost all queue dashboards fail for the same reasons. It is worth reviewing them before publishing any indicator, because a badly set threshold is worse than having none at all: it generates alerts that the team learns to ignore.
- Setting the threshold at the average instead of the high percentile. If your average response time is 20 minutes but 10% of conversations take 5 hours, the average is hiding the problem from you. The threshold is set on the 90th or 95th percentile, not on the mean.
- Measuring raw age instead of age during business hours. Every morning you will see conversations that look overdue and actually aged while the business was closed.
- Counting the total backlog instead of backlog per agent. A backlog of 40 conversations with 8 agents is different from a backlog of 40 with 2 agents. The number that matters is the ratio, not the total.
- Not distinguishing between an unassigned conversation and an assigned conversation with no reply. They are two different problems: the first is about distribution, the second is about capacity. They are fixed in different ways.
- Using a single threshold for all hours. Morning and night do not behave the same. If you have enough data, set thresholds by time slot.
- Defining the threshold but not the action. We already said it, but it is the most repeated mistake: if nobody knows what to do when it is crossed, the threshold changes nothing.
- Never reviewing the thresholds. A threshold that was set a year ago and never adjusted probably no longer reflects the operation. They are reviewed every quarter or when the team size changes.
- Using the same threshold for all channels. WhatsApp, Instagram and Messenger can have different response times and different expectations. If you measure everything together, the slowest channel contaminates the fastest one.
How to know if the thresholds are working
A threshold system is well calibrated when three things happen: the alerts in the escalation band are few and all end in a concrete action; the risk band is resolved within the day; and the team does not argue about the numbers, it argues about what to do. If alerts fire every week and nobody does anything, the problem is not the threshold, it is that the threshold is not connected to a decision.
The sign that they are badly calibrated is the opposite: nothing ever fires. If in three months you have not crossed the risk band even once, either your operation is exceptionally relaxed or the thresholds are so high that they are useless. In that case it is worth lowering them until they start flagging something, even if it is uncomfortable. A dashboard that is always green does not inform: it decorates.
The other sign is reopening. If the reopenings indicator goes up, it means you are closing conversations that the customer still considered open. That happens when the closing limit is too aggressive or when a conversation is closed to clean up the dashboard and not because the conversation ended. Reopenings are the best thermometer for whether your definition of "closed" is honest.
Where a tool fits into all of this
Thresholds can be measured by hand with a spreadsheet, and many teams start that way. The problem is that by hand you measure once a week, and age thresholds are useful when they are looked at in the moment. An inbox with AI suggestions and multi-agent support helps in two specific points: first, because unanswered conversations stay visible with their age and do not get lost in the scroll; second, because suggested replies lower the first response time, which is precisely the variable that triggers the risk band.
Wando, for example, uses Meta's official WhatsApp API and suggests replies that the team approves with one click, learning from the business's real replies. That does not replace thresholds: it complements them. The threshold tells you when there is a problem; the tool helps you make the problem last less time. If you want to see what an inbox with those features looks like, you can try it, but you still have to define the threshold system yourself, with or without a tool. Plans and the free trial are at wando.online/pricing.
About templates: if you are going to use a template to reopen expired conversations, keep in mind that the only approval timeframe that can be stated is up to 48 hours. Meta does not guarantee any other timeframe, so do not schedule a recovery campaign for the same day you created the template.
Template to copy: minimum thresholds spreadsheet
If you want to start today, this is the minimum structure of a thresholds spreadsheet. It is filled out once per shift and reviewed at the end of the day. It does not need more columns than these.
The spreadsheet is filled out per shift, not per day. A day with a healthy morning shift and an afternoon shift that escalates is a different day from a day that is even in attention.
| Column | What goes in it | Example value |
|---|---|---|
| Date and shift | Day and time slot being measured | Tuesday, morning shift |
| Active agents | How many people handled conversations in that shift | 3 |
| Open conversations at start | Backlog at the beginning of the shift | 28 |
| Open conversations at close | Backlog at the end of the shift | 31 |
| Unassigned messages at close | How many were left without an owner | 4 |
| Age of the oldest unanswered | Time of the oldest message without a reply | 1 h 20 min |
| Expired conversations | How many crossed the risk threshold | 6 |
| Reopenings of the day | Contacts who wrote again about closed conversations | 2 |
| Band reached | Healthy, attention, risk or escalate | Risk |
| Action taken | What was done when the threshold was crossed | 6 expired conversations were reassigned to an agent with less load |
| Owner | Who carried out the action | Shift supervisor |
With ten days of this spreadsheet you already have enough to set your own thresholds with data instead of intuition. You will see what your typical age is at the high percentile, how many expired conversations appear on a normal day, and in how many shifts you cross the risk band. That is the moment to adjust the numbers in the first table and stop using the reference ones.
Examples by industry of how the threshold changes
The same method produces different numbers depending on the industry, because customer expectations change. These are examples of how the age threshold moves in typical operations, not Wando values or industry standards. They are meant to help you see where to start before you have your own data.
- Food and beverage: the customer writes while hungry and with the order already decided. The age threshold tends to be the shortest of all, because the decision window is measured in minutes. If you have the food and beverage landing page, that's where you'll find the order flow examples that combine with these thresholds.
- Beauty and health: the customer writes to book an appointment, not to buy on the spot. The threshold tolerates more hours, but not more than a day, because otherwise they go elsewhere. Scheduling and reminders matter more than pure speed.
- E-commerce and stores: the customer asks about stock, shipping or order status. The threshold is set mainly on the pre-sale inquiry, which is what decides the purchase. Post-sale inquiries tolerate more delay.
- Real estate: the cycle is long and the customer inquires about several listings at once. The age threshold can be measured in hours, but the re-engagement threshold is the critical one, because the contact who writes again is comparing options.
- Academies: inquiries arrive in peaks marked by enrollment periods. It's best to set thresholds by time slot rather than a single one, because the volume during enrollment week doesn't look like the rest of the month.
If your industry isn't on the list, the method is the same: look at how long it takes before your customers start writing again and use that point as a reference. What changes between industries isn't the method, it's the number.
Frequently asked questions
How often should alert thresholds be reviewed?+
Every quarter, or whenever the team size or business hours change. A threshold set with 3 agents doesn't work with 8, and one set for a single shift doesn't work when a night shift is added. The review doesn't have to be long: it's enough to check whether the risk and escalate bands trigger at a reasonable frequency or never trigger at all.
What is a conversation aged past its threshold?+
It's an open conversation where the customer wrote and the business didn't reply within the risk threshold that was set. It's counted by the age of the customer's last message, not the business's last message. The exact definition of when a conversation is open and when it closes must be agreed on before measuring, because otherwise each person on the team counts it differently.
What is a good first response time on WhatsApp?+
There's no universal number. It depends on the industry, the hours and the expectation the business has created. What you can do is set the threshold from your own history: look at the delay at which customers start writing again or asking if anyone saw their message, and use that point as your risk threshold. The attention band is half that time and the escalate band is double.
How is backlog measured if the team is small?+
It's measured per active agent, not by the business total. A backlog of 40 conversations with 8 agents is a ratio of 5 and sits in the healthy band. The same backlog with 2 agents is a ratio of 20 and sits at risk. The absolute number alone says nothing; the ratio is what informs.
What should I do if the escalate band repeats every day?+
If it repeats three days in a row, the problem has stopped being about pace and become about capacity. It isn't solved by asking the team to work faster: it's solved by adding people to the shift, extending business hours, activating an alternative channel or reducing incoming volume with auto-replies that resolve the most repeated questions. How long it takes to resolve varies case by case.
Is it useful to measure message age using the system's upload date?+
No. The upload date reflects when the record was inserted, not when the message happened. For any analysis of hours or age you have to use the timestamp Meta sends. If you use the insertion one, you'll see peaks at the moment the data was imported and not at the real moment of the conversation.
Do thresholds change depending on the channel?+
Yes. WhatsApp, Instagram and Messenger can have different expected response times and different volumes. If you measure all channels together, the slowest one contaminates the metric of the fastest. It's better to set thresholds per channel and then consolidate for the overall view, not the other way around.
Answer WhatsApp with AI
Try Wando free. No credit card required.