RELIABILITY
Trust is a mechanism, not a promise.
Everything else on this site is a claim about your team. This page is the claim about us: six commitments, and the machinery that enforces each one. Read it before you believe anything else here.
- Updated monthly
- Measurement window: last 30 days
- Method published in full
WAOversight links to company WhatsApp numbers as a companion device and writes every message to an append-only archive before anything else reads it. We publish session uptime and capture lag monthly, per number, with the measurement method in full. Sessions can drop, and what happens when one does is set out below.
99.94%
Session uptime this month: Per number, published monthly
1.4s
Capture lag, p95: Message sent to message archived
1
Number needing attention: A rep needs to re-scan
01 — THE SIX PROMISES
Six commitments, and what enforces each one.
Every line below is something we would have to answer for. None of them rests on our good intentions; each names the mechanism that makes it true, so you can check the claim against the architecture rather than against our tone.
On the record before anything reads it
Every event WhatsApp hands us is written to an append-only log and acknowledged only once that write is durable. The dashboard, the metrics and the media downloader all read from that log afterwards, each tracking its own position, so a consumer that crashes resumes where it stopped instead of losing what it was holding.
Exactly once. Never twice.
A short-lived guard rejects any message id already seen on that number, and a uniqueness constraint in the database would reject it anyway if the guard ever failed. Two mechanisms, because "exactly once" asserted by one of them is a claim rather than a property.
What was deleted is still yours
The archive accepts inserts and nothing else. Original text and send time cannot be altered after they are written; the database refuses, not the application. A deletion or an edit arrives as a new event and a flag, so the record grows and never rewrites itself.
One number, one owner, every moment
A linked number is held by exactly one process, enforced with a database lock and a fencing token rather than by convention. Two processes each believing they own a session is precisely how an archive ends up with duplicates and gaps at the same time.
A dropped session is an alert, not a silence
Every number sits in one of three states, visible in your dashboard at all times. When a link ends, the manager is told and the number is flagged as needing attention, so you find out from us, in minutes, rather than from a customer weeks later.
The archive outlives the connection
It is independent of the live session, so a dropped link, a reset handset or a restricted number leaves everything already captured untouched. What a break costs you is live capture during the gap. It never costs you history.
What happens to a message, from the moment it arrives
A message reaches your archive before anything is allowed to look at it. That order is the whole design. Nothing draws a chart, raises an alert or renders a conversation until the record is safely written and cannot be taken back, so what you read is always downstream of the truth rather than a substitute for it.
From there the record only grows. Nothing already written can be reworded, back-dated or quietly tidied, by us or by anyone holding a login. When a message is deleted or edited on a phone, that arrives as a new entry standing beside the original rather than a change to it, which is why the version somebody meant to remove is still the version you read.
Each number is kept by one keeper at a time and never two, so the same conversation cannot land twice or fall through the gap between them. Every part of the system that reads the archive holds its own place in the queue, so an interruption anywhere costs a few seconds of catching up rather than a hole in the record. The six commitments above are these guarantees, written as promises.
Why we do not use the official WhatsApp Business API
Because it cannot see the thing you are asking about. The Business API is a separate sending channel with its own numbers and its own rules; it does not give you the conversations your reps are already having on the numbers they already use. Moving your team onto it means changing every number your customers know, and you would still not have the history.
The honest trade is this: the official API is sanctioned, stable, and reports on a channel you would have to build from scratch. A companion-device link is unsanctioned, sees the conversations that actually exist, and can be ended by WhatsApp. We chose the second because the first does not answer the question this product exists to answer. If you need outbound campaign messaging, you want the official API, and we will tell you so on the call.
Session states
Every linked number is in exactly one of three states, visible in your dashboard at all times.
| State | What it means | What you do |
|---|---|---|
| linked | Connected and capturing. | Nothing to do. |
| degraded | Connected, but the session is failing checks or falling behind. | Watch it. We alert you if it does not recover. |
| logged_out | WhatsApp ended the companion-device link. Nothing is being captured on this number. | The rep re-scans a QR code. About a minute. |
Re-linking a number
When a session ends, the manager is alerted and the number appears as needing attention. The rep opens WhatsApp on the company phone, goes to Linked devices, and scans the code shown in your dashboard. It takes about a minute and nothing else changes: the same number, the same conversations, the same history.
Messages that arrived while the number was logged out are captured on reconnect, within WhatsApp's own offline retention. Messages sent and deleted entirely within that window are the one category we can genuinely lose, and we would rather write that down here than have you discover it.
How we measure, and what the numbers mean
Session uptime is measured per linked number as the share of the period in which that number was connected and capturing. A degraded session counts as down. We do not exclude outages we caused, and we do not average across numbers in a way that lets a healthy fleet hide one broken number. The per-number figure is available to you in the dashboard.
Capture lag is measured from the timestamp WhatsApp gives a message to the moment it is durably written to the archive, reported at p95 rather than as a mean, because the mean of a latency distribution tells you almost nothing about the bad case.
Figures are published monthly. The current month's numbers are provisional until the month closes. The strip in the footer of every page on this site shows the same two figures, and reads them live from our status endpoint where it can. If that fetch fails, it falls back to the last published values rather than showing you nothing.
02 — THE TWO APPROACHES
Companion device versus the official API
Both are legitimate. They answer different questions, and anyone who tells you one is simply better has not asked what you need.
| Companion device (what we do) | Official Business API | |
|---|---|---|
| Sees existing conversations | Yes, on the numbers your team already uses | No. Separate numbers, separate channel |
| Number change required | None | Yes |
| Sanctioned by Meta | No | Yes |
| Can the link be ended | Yes, by WhatsApp or by a handset reset | Stable |
| Outbound campaigns | Not possible: no send path exists | Yes, within the messaging window |
| Setup effort | One QR scan per number | Business verification and template approval |
03 — RELIABILITY QUESTIONS
The questions this page exists to answer
What happens to my archive if a session drops?
Nothing. The archive is independent of the live session. Messages already captured are unaffected, and messages that arrive while a session is down are captured once it is restored, up to WhatsApp's own offline retention. What you lose is live capture during the gap, not history.
Can WhatsApp ban a number for using this?
The risk is not zero and we will not pretend otherwise. We reduce it structurally: we never send messages from your numbers and each session is isolated. Tools that do bulk sending from the same numbers carry far more risk than we do.
Why not use the official WhatsApp Business API?
The official API cannot see the conversations your reps are already having on their existing numbers. It is a separate sending channel with its own numbers and a 24-hour messaging window. For oversight of conversations that already exist, it reports on the wrong thing.
How is uptime measured?
Per linked number, as the share of the period in which that number's session was connected and capturing. A number in a degraded state counts as down. We publish the figure monthly and we do not exclude outages we caused.
Ask us the hard version of this.
Bring your worst question about reliability to the demo. If the answer is bad for us, you will get the bad answer.
WAOversight is an independent product and is not affiliated with or endorsed by WhatsApp or Meta.