Skip to content
PaalChat Docs

Use cases

Parent inbox

Let staff chat with parents inside your product.

.md

In a nutshell

Store message.received callbacks as conversations, reply with free-form text while the 24-hour window is open, fall back to a template when it is closed, and show ticks from message.status.

Building blocks

Step Use
Parent writes message.received → store under data.from
Staff replies POST .../messages type: text with a reference
Window closed 422 outside_service_window → offer a template
Ticks message.status → update the reply
Parent replies to a message data.message.context.id is the wamid of the message they replied to

The window, in your UI

Keep last_incoming_at per contact (from message.received). If it is older than 24 hours, disable the text box and show "Send a template" instead of waiting for the error.

Matching the parent

data.from is the parent's WhatsApp number without + (for example 233241234567). Normalise the phone numbers in your own records the same way to find the parent, their children and classes.

Statuses in the thread

Status Show
queued clock
sent ✓
delivered ✓✓
read blue ✓✓
failed ⚠ with error.message, and a retry button that re-sends with a new reference

Note

Retrying a failed message is a new attempt, so it gets a new reference. Retrying after a timeout (you do not know the outcome) uses the same reference.