Service Complaints and Tickets: Keep an Urgent Request From Remaining in One Representative's WhatsApp
Back to blog
automation·September 6, 2026·4 min read·By Yehonatan Saadia

Service Complaints and Tickets: Keep an Urgent Request From Remaining in One Representative's WhatsApp

What turns a message into a ticket, how to rate severity as impact times reach, what escalation actually transfers, and who gets to decide a ticket is resolved.

Key takeaways

  • The representative is not being negligent. A chat channel holds no state, so a request living inside it cannot be monitored, escalated or handed over.
  • Severity is impact multiplied by reach, not tone of voice. A calm customer whose system is down outranks an angry one whose button is the wrong colour.
  • Escalation transfers ownership and changes update cadence. Adding a manager to a distribution list is not escalation, because nobody became accountable.
  • "Resolved" and "closed" are two states. Resolved is asserted by whoever fixed it; closed is the customer's confirmation or the expiry of a confirmation window.
  • WhatsApp imposes a hard time constraint: Meta documents a 24-hour customer service window that resets on each inbound message, outside which an approved template is required. A chat is not storage for an open ticket.

A request stays in one representative's chat because the chat itself is the record. It has no identifier, no severity, no due time and no second reader. Turning a message into a ticket is a defined moment: the moment a record exists that somebody else can find without asking for that representative's phone.

Why does an urgent request stay in one representative's WhatsApp?

Because the channel holds none of the fields that make a request manageable. A chat has no searchable identifier, no severity field, no due time and no declared owner. The representative is the only person who knows the request exists, and the moment they are on leave, it does not exist for the organisation. The build walkthrough is in how to create a WhatsApp bot.

There is also a hard technical constraint. Meta's Cloud API documentation states that when a customer messages you a 24-hour timer called a customer service window starts, that the timer resets to 24 hours if the customer messages again before it expires, and that reaching a customer outside that window requires a template message. A ticket waiting three days for a replacement part cannot live inside a 24-hour window. The queueing and delivery mechanics behind that are set out in handling a high-volume WhatsApp message queue.

The conversion boundary: what turns a message into a ticket

A message becomes a ticket when a record exists carrying the fields that let a different person continue it. Anything less is still a conversation.

FieldExample valueWhy there is no ticket without it
ticket_idTCK-2026-04412a number you can quote and search
customer_idCUS-8841links to history, not just to a phone number
severityS2sets update cadence and escalation path
opened_at2026-10-14T08:41+03:00every target is measured from it
owner_user_idu_1174one person, not a team
channelwhatsappwhere the customer expects the answer
source_refthe original message idlets anyone return to the exact thread
statein_progressone value from a closed list

source_ref is the field that prevents the next complaint. Without it, a representative picking the ticket up the following day asks the customer to explain what happened again, and that is the experience that turns a small fault into a complaint about service. The row above it, channel, decides where the reply goes: a customer who wrote on WhatsApp and receives an email experiences it as no response at all. A comparable conversion of inbound messages into structured records is covered in turning WhatsApp orders into a work queue.

Severity is impact times reach, not tone of voice

LevelImpactReachCustomer update cadence
S1a business process is down with no workaroundall customers or one critical accounthourly
S2a process is degraded with a known workarounda user group or a single sitetwice daily
S3a local fault, work continuesa single useronce per working day
S4an observation, an improvement request, a questionnot blockingat the next release

That table is an example of a matrix each organisation sets for itself, not a standard. What matters is that it is written down, that it rests on two axes rather than on a feeling, and that it is set at intake by whoever receives the request. Three practical clarifications:

  • Severity can move up and down, and every change is recorded with a reason. Whoever lowers a severity owns the explanation.
  • A customer demanding S1 does not set S1. They supply information about impact; reach is determined on your side.
  • Three S3 tickets from the same customer in one week justify treating the pattern as one S2, because the pattern is the problem rather than each individual event.

What escalation actually transfers

Escalation is a transfer of ownership to someone with wider authority, not the addition of recipients. Google's SRE book chapter on managing incidents describes a structure with a designated incident commander and separated roles for operations and communications, and that is exactly what breaks when escalation means adding a manager to a thread. Three things change at each rung:

  1. The owner becomes one new person, and the previous owner stops being accountable. Two equal owners is the same as none.
  2. Authority changes: a rung that can approve replacing hardware, summon a supplier, or halt a release.
  3. Customer update cadence shortens according to severity, and that is the part the customer feels.

Every rung carries a timeout. If there is no answer inside the agreed period, the ticket moves on by itself rather than waiting. The mechanism resembles the one described in lead follow-up SLA and ownership, but the direction is inverted: there the fear is that an opportunity cools, and here it is that damage already underway continues. For current build and running costs, see how much a chatbot costs.

A worked timeline for one ticket, TCK-2026-04412 at severity S2:

  • 08:41 - an inbound WhatsApp message opens a ticket automatically with a source_ref.
  • 08:53 - a first-line representative acknowledges and sets severity to S2.
  • 09:41 - the first-line timeout elapses with no workaround. Ownership moves to a specialist.
  • 10:20 - a workaround is found, the customer is updated, and severity drops to S3 with a recorded reason.
  • 11:05 - the fix is verified with the customer. The state moves to resolved.
  • 13:05 - the customer confirms and the state moves to closed.

Who decides a ticket is resolved?

Whoever fixed it asserts resolved; the customer or the passage of time asserts closed. Two states rather than one, because they answer different questions: was the fault repaired, and does the customer agree.

  • resolved is set by the handler, with a description of what was actually done rather than the word "handled".
  • closed is set by customer confirmation, or automatically after a pre-defined confirmation window.
  • A reopen inside a defined window returns the original ticket with its severity rather than opening a new one. Otherwise the report shows two small faults instead of one that was never fixed.
  • A ticket closed automatically is marked as such, because silence is not satisfaction.
  • Closing without a fix requires an explicit value such as not_reproducible or by_design. Closing with no reason is how the same complaint returns a month later.

Sources

#customer complaints#service desk#escalation#severity#WhatsApp#אוטומציה

Frequently asked questions

Do you need a dedicated ticketing system from day one?

No, but you need a record with an identifier, a severity, an owner and a due time from day one. One table with eight columns beats a chat, and also beats a large system nobody fills in. Moving to a dedicated tool is justified when automatic escalation and reporting start costing more time than the handling itself.

How do you set severity when the customer and the representative disagree?

The representative sets it from the matrix, and the customer supplies the impact information. The disagreement is recorded on the ticket and travels with any escalation, so the next rung sees both the rating and the objection. A written matrix turns an argument about feelings into an argument about two fields.

What about a complaint that arrived through an employee's personal channel?

Move it into a record immediately and reply to the customer on the official channel quoting the ticket number. There is no point fighting the channel the customer chose, but the message must become a record. Somebody moving to a different role cannot take open complaints with them.

How long should a ticket stay open with no customer response?

Define one window across all severities, five business days for example, send a single reminder before closing, and close with a value marking that the closure was for want of a response. What matters is that a reopen returns the same ticket, so the measurement shows the real handling duration rather than two short tickets.

Keep reading

Related service

WhatsApp Cloud API

Templates, a two-way inbox and reminders on the official Meta API.

Learn more →←

About the author

Yehonatan Saadia

Freelance automation, web & MVP developer

I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.

Work with me

Have a project like this?

Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.