message.inbound webhook as one-to-one messages. There is no separate event type to subscribe to — a group message simply carries extra group fields on data, so your existing handler keeps working and you branch on isGroup.
How a group message arrives
The conversation is keyed on the group, whilefrom is the participant who actually sent the message.
message.inbound (group)
Group fields on data
| Field | Present | Description |
|---|---|---|
isGroup | groups only | true for a group message. Absent/falsy for a one-to-one message. |
groupId | groups only | The group’s JID (<id>@g.us). This is the conversation key. |
groupAuthor | groups only | The participant who sent the message, in E.164. Same value as from. |
groupName | when known | The group’s display name (subject). |
from | always | The message sender — the participant in a group, the contact in a 1:1. |
to | always | Your linked number. |
providerTimestamp | when known | When WhatsApp originally received the message (Unix ms). |
Telling a group message from a one-to-one
Branch onisGroup:
Group messages count toward inbound only — like every channel, inbound messages are not billed against your plan quota. The group thread lives alongside your 1:1 conversations, keyed on
groupId.What Zavu ignores
To keep the inbox clean, some non-conversational threads are never delivered as inbound (message.inbound) events:
- Status updates / stories (
status@broadcast) — not an inbound message. They are delivered separately as opt-inmessage.statusevents, never in the inbox. - Newsletters / channels — not a two-way conversation.
- Self-chat (messages to your own number).
Group membership-change events (joins, removals, subject changes) are not emitted today. Contact Zavu if you need them.
Next steps
Sending & Receiving
The base send/receive flow on the
whatsapp_alt channel.Receiving Messages
Configure and verify your sender webhook.
