Receiving + replying
The 30-second smoke test.
Send a test inbound
From your phone, send a “Hi” message to your connected WhatsApp number.
Watch the inbox
Open /dashboard/inbox. A new conversation appears at the top within ~1 second
(no refresh needed). The conversation status is OPEN, assigned to nobody.
Open the conversation
Click the row. The right pane shows the messages. Bottom is the composer.
Reply with options
You have several reply paths:
- Type text in the composer + Cmd/Ctrl+Enter → sends as a normal text message
- Saved reply dropdown → pre-canned text (with
{{variable}}substitution) - Send template button → pick from approved Meta templates, fill body/header variables, send. Required outside the 24-hour customer service window.
- Send media → image / document / video / audio upload, optional caption
- Send location → pin a location or request the customer’s
Verify the round-trip
Your message arrives on the phone within ~1 second. The inbox shows status SENT → DELIVERED → READ as Meta reports them.
What happens behind the scenes
For every inbound message:
- Meta sends the message to us.
- It’s saved and shown in the inbox in real time.
- The platform decides what to do next:
- Is there an active flow on this conversation? → run its next step
- Did the message match a keyword rule? → fire that rule
- Is Chat AI enabled? → the AI replies
- Is it outside business hours? → the outside-hours reply fires
- Otherwise → the channel’s default reply (if any)
See Inbox routing for the full decision tree.
Template messages outside the 24-hour window — Meta requires this. The composer greys out the “Type a message” box and only allows “Send template” when the window has expired.
You’re set up
That’s the loop. Everything else in these docs builds on this foundation — automation (flows / keywords / drips), broadcasting (one-shot blasts), reporting, team permissions, and the booking system.