Skip to content

Log WhatsApp delivery and read status in Google Sheets with message.ack

Track Sent, Delivered and Read states for messages you send, in Google Sheets, from WavesFlo's message.ack events, and why one message has several rows.

Written by
By WavesFlo team
Published
Published
Reading time
2 min read

The message.ack event fires when an acknowledgement state changes for a message you sent. It carries the message id, the new state, per-state recipient counts and a timestamp. One message produces several events as it moves from sent to delivered to read, so a sheet that appends a row for each ends up with a history, and a sheet that updates one row per message ends up with the latest state.

Do you want the history or the latest state?

Two ways to log message.ack
ApproachMatch columnResultUse for
Append every eventNoneOne row per state changeMeasuring how long delivery and reading take
Update one row per messageMessage idThe latest state, with the time it was reachedA status board for important sends

How should you read the numbers?

  • Delivered is the sturdier figure. It means the message reached a phone or a linked device.
  • Read is a floor. People can turn read receipts off in one-to-one chats, a first message may not send a receipt, and a message read only in a notification is not counted.
  • In a group, the per-state recipient counts matter more than the label, because a group message is read by some members and not others.
  • Events can arrive out of order. Use the event's own time to decide which state is latest.

How do you find slow reads?

With one row per state change, put Message id in A, State in B and Time in C. Then the time from delivered to read for one message is =MINIFS(C:C,A:A,A2,B:B,"read")-MINIFS(C:C,A:A,A2,B:B,"delivered"). Wrap it in IFERROR for messages never read, and report the median.

Agents do not need the sheet to check one message: the WavesFlo inbox shows each one's state, from sending and delivered to read, or failed with its error. The log earns its place when you want the timing across thousands of messages.

Questions

What does message.ack tell me?

That an acknowledgement state changed for a message you sent, with the message id, the state, per-state recipient counts and a timestamp.

Why does one message appear several times?

Each state change is its own event, so a message that is sent, delivered and read produces three.

Is a read rate exact?

No. It is a floor, because people can turn read receipts off.

Keep reading

See it on your own numbers.