Sending a WhatsApp message is one HTTP call and takes an afternoon. Everything after that is the project — and the part that surprises teams is not the inbox, it is the webhook receiver.
| Question | Build it | Buy it |
|---|---|---|
| The webhook receiver | Must acknowledge inside about 100 ms or Meta retries — for seven days, and then disables your subscription. So it cannot touch a database on the request path. You need a queue, a deduplication key (Meta states duplicates will occur), signature verification, and a worker. This is the piece that takes a month and the piece nobody estimates. | Done. |
| Templates across accounts | There is no shared pool at Meta — approval is per WhatsApp Business Account. Five portfolios means five copies of every template with five review states, and creation is capped at 100 per account per hour. You will end up writing a reconciler. | Done, with the per-account status shown as a matrix. |
| The tier and pacing | The messaging tier counts unique recipients per rolling 24 hours across the portfolio, and a new portfolio is paced until 500,000 lifetime sends with messages held rather than delivered. Both have to be modelled or your campaign runner reports success while thousands wait. | Shown before the send, with the arithmetic. |
| What you get that we cannot give you | Exact fit. If your business logic is unusual — a booking engine, a pricing model, an approval chain nobody else has — owning the integration means never negotiating with somebody else's roadmap. | An API and webhooks, which is most of the way there but not all of it. |
WhatsApp is the product, not a channel. You have engineers who will still be there in a year to maintain it as Meta changes things — and Meta changes things. Budget three to six engineer-months to a first version you are not embarrassed by, and a permanent slice of somebody's attention after that.
WhatsApp is a channel your business uses, your engineers have a product of their own to build, and you would rather spend the three months on that. Take the API and webhooks and connect what you actually need.