The panel
app.birsend.comWhat your team works in. A single-page application that holds no credential a script could read — the session is an httpOnly cookie, so even an injected script cannot lift it.
HomeAbout
About the system
Birsend sends WhatsApp messages from a line your customers already have saved. There is no business verification queue to join and no provider taking a fee per message — which changes what the software has to be careful about, and most of this page is about that.
The usual way to message customers at scale is the WhatsApp Business API: an application, a separate sender identity, a template approval queue, and a fee for every message. It suits a company sending a million receipts.
Birsend drives the number you already own. Your customers see the line they have messaged before, replies land in the same thread as the campaign that started them, and nothing has to be approved before you can write it. What you give up is the volume ceiling of an industrial pipe — which is why the pacing, the sending hours and the daily caps in here are not decoration. They are what keeps a real number healthy.
Worth knowing because the middle one surprises people: the software that actually talks to WhatsApp is a separate service on a separate machine.
app.birsend.comWhat your team works in. A single-page application that holds no credential a script could read — the session is an httpOnly cookie, so even an injected script cannot lift it.
api.birsend.comWhere every decision is made. Campaigns, contacts, permissions, the sending rules and the record of what happened. Your own software talks to the same endpoints the panel does, under the same rules.
a separate machineThe piece that holds your number’s session and puts messages on the wire. It runs on its own host, accepts requests only from us, and reports back over a signed webhook.
That separation is not decoration either. Because the sender runs on its own schedule against its own service, deploying the panel cannot interrupt a campaign that is mid-flight — and a campaign that is paused stays exactly where it stopped, with a record of everyone it had already reached.
Not features — forks in the road, each with a cheaper option on the other side. These are the ones you can see from the outside.
Sending hours, daily caps, the opt-in requirement, blocked contacts and your word filter are checked in a single place that every outbound path goes through — a campaign, somebody typing in the inbox, your own software, an AI agent. The alternative was a check on each screen, and the screen somebody forgot would be the one that sent at three in the morning.
The activity log copies the name of the person and the name of the thing onto each entry as they read at the time. A log that only stores references becomes a list of “somebody deleted #418” the moment the row is gone — and that entry is the one people come looking for.
There is no DELETE on any public endpoint, and no way to create a campaign. Removing a contact takes their consent record out of sight; arming thousands of messages needs somebody who can see the audience count. Both are decisions rather than gaps, and both are stated on the API page.
The MCP tools let an AI agent pause a campaign that is going out. They do not let it resume one. Stopping something is safe to hand to a sentence; putting thousands of messages back in motion is not.
Every consent change is filed with where it came from and when. “They never told us” and “they told us to stop” are stored as different facts, so somebody ticking a box again later cannot quietly undo a request to be left alone.
A campaign left too long past its time is cancelled automatically rather than delivered. Last Tuesday’s promotion arriving on Friday cannot be recalled, and it tells every recipient that nobody is watching.
Six screens carry almost all of it. Everything else in the panel supports one of these.
Everything on this list is something you can hold us to. There is nothing here about encryption at rest, no certification badge and no uptime figure — not because those do not matter, but because they have not been established, and an About page is exactly where an unearned claim gets checked.
The list we would want if we were choosing a tool. Several of these were found while writing this website, which turns out to be a good way to audit a product.
A campaign body is sent exactly as written. The {first_name} style placeholders fill on automatic replies only. The groundwork is in place and the sending half is not written.
A workspace has no timezone of its own yet, so a 09:00–20:00 window means those hours in UTC. Set it in UTC until that column exists.
No invitations, no password-reset links, no scheduled reports. It is why colleague accounts are created outright with a password you hand over, rather than invited.
Your systems poll for a specific send or for the aggregate figures. The only thing that posts to us is the WhatsApp service.
Nothing notifies you when a failure rate climbs. The figures are on the reports screen to be looked at, not pushed at you.
Totals, unique visitors, country and device are recorded per link. Which individual clicked is not.
Fourteen days free, no credit card. Connect a number, send one campaign, and read the reports for yourself.