Stages and statuses in plain sight
The board shows where every campaign stands. No more finding out weeks later, buried in a report, that a send had been stuck the whole time.
WhatsApp campaigns built on a Kanban board, sent through official Meta templates and watched over by a guardian that acts on its own the moment Meta starts reacting badly to your number.
Hal-AI is a Meta Business Partner and runs on the Official WhatsApp Business Cloud API.
Creating, segmenting, tracking and pausing all happen in one place. Each campaign is a card with a stage and a status — active, paused or finished — and it changes column when you drag it.
The board shows where every campaign stands. No more finding out weeks later, buried in a report, that a send had been stuck the whole time.
The audience is filtered by query and by the customer traits the agent already recorded during service — not by a spreadsheet pasted in from somewhere else.
Every campaign has its own result, and the list can be exported to CSV when someone needs to take the numbers outside the platform.
An active campaign is paused right on the card. The guardian also pauses on its own when the signal from Meta gets worse — more on that below.
HAL Copilot creates, lists, pauses and reports on campaigns right in the chat with the manager. Asking it to pause the win-back campaign gets it done without opening the screen.
When the guardian acts, a push notification reaches whoever administers the channel. The decision doesn't sit hidden in a log nobody opens.
The board has four columns — Pending, Active, Paused and Finished — and each campaign is a card that changes column when you drag it. The card carries the content type (approved template or plain text), the audience type (dynamic, rebuilt at every send, or static), the name of the template used, the total number of contacts and the creation date.
At the top of the board, the Antispam Protection strip shows how many contacts are in the freezer and how many numbers are under protection at that moment. When the platform acts on its own, the card itself says what happened: Rate limited when the send was slowed down, Paused by the system when the guardian stopped the campaign, and Number frozen when the whole channel was suspended until it clears.
It's the same screen where the manager pauses a campaign by hand, switches the status with the selector in the card footer, and opens the detail view with the template preview and the send results.
Every column carries its own counter in the header — two pending, two active, one paused — and the green dot beside a title marks the campaign that is sending right this second. The blue strip at the top gives more than a headcount for the freezer: the line underneath it says why those contacts went in and over what window. And the card the system halted shows its release time in the footer, in the very spot where the others show a creation date.
Whoever runs the operation opens one board and knows, without asking a soul, what is live, what stopped and why. Gone is the end-of-day ritual of reconciling a send sheet against an error report only to learn a campaign had been down since morning. A dynamic audience also spares you re-exporting a list before every round: it is rebuilt at send time.
A workflow automation sends whatever is on the list and moves on. Here the orchestrating Squad hands the order to the channel agent in plain language and gets an answer back — including a didn’t send: this customer already confirmed yesterday. The one judging whether that contact still needs the message is the agent that actually talked to them, and the answer returns to whoever gave the order instead of vanishing into a send queue.
A campaign isn't a send button. It's an operation with stages, an owner, a brake and a record.
That rule belongs to Meta, not to Hal-AI: once the service window closes, the company can only reach that customer again through an approved message template. The platform treats this as part of the flow, not as an obstacle.
The template opens the conversation; everything after that is ordinary service from the agent.
The fragile way to avoid repeating a message is to look at the name of the template that went out. Rename it, duplicate it, reuse it in another campaign, and the same person gets everything all over again. Hal-AI anchors the control to the send that actually happened.
Not nagging people is an engineering decision. It's what separates a well-received campaign from a reported number.
A company's official WhatsApp number is an asset. If Meta restricts it, campaigns stop, service stops and conversations already in flight stop with them. The guardian exists so that doesn't happen in the middle of a send.
It tracks the health of the number and Meta's response to every send. As the signal worsens, the reaction steps up a level — without waiting for someone to notice and press a button.
| Signal from Meta | What the guardian does | Scope |
|---|---|---|
| Number quality drops to red, or a fatal code appears | Freezes the number and pauses every campaign on that channel | The entire number |
| Spam-limit signal | Slows the sending pace instead of pushing on at the same rate | The campaign in flight |
| Individual error returned by a recipient | Sends that contact to the freezer: they stop receiving | A single contact |
How many contacts are blocked, how many come out of the freezer soon, and why each one went in. The automatic decision stays auditable.
Freezing the number for a few hours costs far less than losing the company's official channel and going through Meta's whole verification process again.
A frozen contact has a visible release date on screen. Nothing is quietly erased: the team sees who became eligible again, and when.
Every official number shows up with its Meta quality meter, the send quota already used in the last 24 hours and the total number of errors returned by recipients. Those three signals are how the guardian decides whether the send carries on at the same pace, slows down or stops.
Just below sits the state of each send in flight: a campaign running at a reduced pace, with the sending step cut in half, and a frozen number with its release time in plain view. None of this depends on someone watching the screen at that moment.
The same screen lists the channel's official templates — approved, under review and rejected by Meta, with the reason for the refusal — and shows the anti-resend lock switched on, anchored to the send itself rather than to the template name.
Quality is broken out by channel: the service number sitting high and the campaign number sitting medium, side by side. That is why the red freeze strip reads sends suspended, service still active — the brake lands on sending, not on the conversations already under way.
The 24-hour quota shows how much is already spent before it runs out, so the next send gets planned without discovering the ceiling mid-blast. Quality, pace and template status are checked on a single screen — nobody has to flip over to Meta’s dashboard to learn whether a template was approved, or why it was turned down. And reacting to a bad signal doesn’t depend on somebody being on duty at send time.
Campaigns and service are not two products living next door. The same agent, with the same prompt, the same tools and the same memory, answers on WhatsApp, on the website chat and on voice — and that vectorized memory, with episodic facts and a sense of time, is precisely what Hal-AI’s USPTO patent covers. Whoever replies to a template lands in a conversation with someone who already knows them, not in a blank flow.
Blast without a guardian and you find out about the problem once the number has already been restricted.
Worth spelling out, because these are the things the market tends to sell under the very same name.
No unofficial numbers, no modified apps, no working around the service window. Everything goes through the Official WhatsApp Business Cloud API.
The audience comes from your operation and your contacts, segmented by query inside the platform. Hal-AI neither supplies nor enriches third-party lists.
When the signal from Meta worsens, the guardian slows the pace or freezes. The platform won't push sends against the health of your own channel.
The resend lock is neither optional nor something a renamed template can slip past. If they've received it, they've received it.
Hal-AI runs on the Official WhatsApp Business Cloud API. Every business-initiated message goes out through a Meta-approved template, to an audience the company itself segmented inside the platform. There is no sending from an unofficial number, from a modified app, or to a purchased list.
The guardian watches the health of the number while the campaign runs and reacts by severity. If quality drops to red or a fatal Meta code appears, it freezes the number and pauses every campaign on that channel. If there is a spam-limit signal, it slows the sending pace. If a single recipient returns an error, that contact goes into the freezer and stops receiving.
The resend lock is anchored to the send that actually happened, not to the template name. The platform knows who already received that message and will not push it at the same person again, even if the template is renamed, duplicated or reused in another campaign.
Templates are created inside the platform, with header media uploaded there, and submitted from that same screen for Meta approval. The agent itself can also create a template and wait for approval when it needs to reach a customer outside the 24-hour service window. Approval is Meta's call and follows Meta's criteria.
One conversation to understand your volume, your templates and the current standing of your official number — and what changes when the guardian sits in front of every send.