Claire

Welcome to Wabery: build on WhatsApp & Instagram without the busywork

Wabery is the easiest way to build on WhatsApp, Instagram, and Messenger — one API for channels, webhooks, and WhatsApp Flows, plus a CLI and an MCP server. Here's what you can ship with it.

announcementwaberywhatsapp

If you’ve ever tried to build something real on WhatsApp or Instagram, you know the secret nobody warns you about: the messaging is the easy part. It’s everything around it that eats your quarter — Graph API versions, webhook verification, the WhatsApp Flows encryption handshake, per-platform payload shapes, delivery retries, template approvals.

Wabery exists so you never have to write that layer again.

What Wabery is

Wabery is the messaging API for WhatsApp, Instagram, and Messenger. One consistent interface for the three channels your customers already live in, with the hard parts handled for you:

  • Channels — send and receive across WhatsApp, Instagram, and Messenger through a single schema. No per-platform SDKs.
  • WhatsApp Flows — define native in-chat forms once and get back clean, validated submissions. Wabery handles the Flow JSON, encryption, and data exchange.
  • Webhooks — every inbound message, delivery status, and Flow submission arrives as a typed, signed event, delivered to your endpoint with retries.
  • CLI & MCP server — manage flows and automations from your terminal, or drop the Wabery MCP server into Claude, Codex, or OpenCode and ship features by describing them.

You bring the product logic. Wabery carries the conversation.

Your first message, in one file

No SDK ceremony. Install, drop in your wab_live_ key, send:

import { Wabery } from "@wabery/sdk";
const wabery = new Wabery(process.env.WABERY_API_KEY);
await wabery.messages.send({
channel: "whatsapp", // or "instagram" | "messenger"
to: "+14155550100",
text: "Your order just shipped 🚀",
});

When the customer replies, you get a signed event at your webhook — not a polling job you have to babysit:

{
"event": "message.received",
"payload": {
"channel_id": "channel_...",
"conversation_id": "conv_...",
"contact_id": "contact_...",
"from": "+14155550100",
"text": "do you ship internationally?",
"customer_reference": "your-own-user-id"
},
"sentAt": "2026-06-20T14:21:10Z"
}

Collect real data, not free-text guesswork

The thing most teams actually want from WhatsApp is structured data — a booking, a lead, an order, a support ticket. That’s what WhatsApp Flows are for, and Wabery makes them a few lines of code:

import {
defineFlow,
screen,
textField,
numberField,
choiceField,
} from "@wabery/sdk";
export const leadIntake = defineFlow([
screen("intake", "Tell us about your project", [
textField("name", { label: "Your name", required: true }),
numberField("budget", { label: "Budget (USD)" }),
choiceField("timeline", {
label: "Timeline",
options: [
{ id: "asap", title: "ASAP" },
{ id: "this_month", title: "This month" },
],
}),
]),
]);

A flow is data, not a callback — you apply it with wabery.config.apply(...) and the customer fills out a native form inside the chat. The completed, validated submission arrives on your flow.completed webhook as clean JSON. No onSubmit URL, no parsing “i think around 2k maybe?” out of a message thread.

Things you can build this afternoon

Because Wabery is primitives instead of a rigid product, the surface area is whatever you need:

  • Instant auto-replies that respect the WhatsApp 24-hour window — your rules, your logic.
  • Lead qualification in-chat with a Flow, routed straight into your CRM.
  • Booking and reminders that read from the calendar you already use.
  • Order and delivery updates triggered by your backend events.
  • An AI agent that reads incoming messages over your webhook and replies through the API.

If you can describe the conversation, you can build it.

For the AI-native crowd

We couldn’t resist shipping a CLI and an MCP server. Point your coding agent at Wabery and build by describing the feature:

Terminal window
$ npm i -g @wabery/cli
$ wabery mcp-config claude --raw
$ wabery mcp-config opencode --raw
# → "create a lead-intake flow and route submissions to our /leads webhook"

Start free

The free tier is genuinely free: a shared sandbox number, all three channels, WhatsApp Flows, webhooks, and the CLI. No credit card.

This blog is where we’ll share what we learn building on WhatsApp, Instagram, and Messenger — the platform quirks, the patterns that work, and the things we wish someone had told us. No fluff, just useful stuff for people shipping on chat.

Welcome to Wabery. Let’s build.

— Claire

Questions or feedback? Reach out anytime

Continue Reading