“How many opted-in contacts do we have tagged vip?”
“Make a segment of everyone who tapped Book now in the last 30 days.”
“Draft a utility template telling people we’re closed on the 24th.”
“Put together a campaign for that segment using the closed_notice template, for Friday at 9am.”
What it can do
Answer questions
Explains your broadcasts, segments, templates, and audience sizes — with real numbers pulled live, never guessed.
Check an audience
Counts how many contacts an audience reaches before you commit. The number it gives is the same one a real send would use.
Build segments
Creates and edits saved segments, including targeting by buttons people tapped — something the Segments form can’t do.
Author templates
Drafts a template, shows it to you, and only submits it to Meta once you say so — then tells you whether Meta has approved it yet.
Assemble campaigns
Combines an audience, a template, its variables, and a schedule into one campaign, held for your approval.
Enforce opt-in
Refuses to assemble a marketing campaign to an audience that isn’t restricted to opted-in contacts.
Tag an audience
Works out who matches, then proposes tagging all of them — on a card you approve before anything is written.
The tools it uses
The agent’s own system prompt groups its twelve tools into two tiers: tools that only read your data, and tools that write — creating segments, authoring templates, tagging an audience, and staging a campaign. Nothing in either tier ever sends a message.Read
list_broadcasts
Lists your broadcasts newest-first, with their status and delivery counts (queued, sent, delivered, read, failed, canceled).
list_segments
Lists your saved audience segments, each with its filter and a live contact count.
list_templates
Lists your WhatsApp templates from Meta with their approval status — only APPROVED templates can actually be sent.
preview_audience
Returns the live count of contacts an audience would reach right now, for a saved segment or an ad-hoc filter. Opted-out and not-on-WhatsApp contacts are always excluded.
get_template_status
Looks up the current Meta approval status of a template (PENDING, APPROVED, REJECTED) by name and language.
list_button_interactions
Lists the buttons and list items your contacts have actually tapped, with labels and tap counts — so you can pick one to target.
Write
create_segment
Saves a new reusable segment from a filter (opt-in, tags, or a button-tap criterion) and returns its live count.
update_segment
Updates a saved segment’s name or filter, then re-resolves its live count.
draft_template
Composes a new template and returns a structured preview. This never touches Meta — it only validates and formats the draft.
submit_template
Submits an approved draft to Meta, which creates it on your WhatsApp Business Account. Meta approval is asynchronous — minutes to hours.
assemble_campaign
Stages a complete campaign — audience, template, variables, schedule — and holds it in a pending approval state. This never sends and never schedules a real send.
tag_audience
Works out exactly who an audience covers and proposes adding or removing tags on all of them. It counts and proposes only — the write happens when you press Apply.
It never sends anything
The agent cannot send, launch, approve, cancel, or retry a broadcast. There’s no tool for it, and the system refuses to send a campaign in the state the agent leaves it in.
assemble_campaign only builds the campaign and holds it as pending approval — it never arms a real send. Approving is yours to do.The approval card
When you ask it to assemble a campaign, a card appears in the chat with everything laid out: the name, how many recipients, the estimated cost, the schedule, a preview of the template as your customers will see it, and each variable with what it resolves to. Three buttons:- Approve — you’re happy. The campaign is scheduled and sends at its time.
- Edit — tell the agent what to change and it reassembles.
- Reject — discard it.
Tagging a whole group
The agent can also tag people in bulk. Describe who and what label: “tag everyone who tapped Book now as interested”, “mark my lapsed customers as churn-risk”, “rename the vip tag to gold”, “get rid of the trial tag”. It works out exactly who matches and shows you a tag approval card with the number of people it covers, the audience it’s describing, and precisely which tags go on and which come off. Nothing is written until you press Apply tags — press Discard and nothing happens at all. Three things worth knowing:- This kind of audience deliberately includes people who opted out and people who aren’t on WhatsApp. A tag is just a label, and you should still be able to label someone you can’t message. That’s the opposite of a broadcast audience, which always excludes them.
- If nobody matches, it tells you instead of showing a card. An Apply button over zero contacts is only an invitation to a pointless request.
- It refuses to tag an audience you never specified. Asking it to “tag my customers” with no filter would match every contact you have, so it asks you to narrow it down rather than proposing a write you’d skim and approve.
Tagging in bulk is limited to the project owner and workspace admins, and the agent checks before it proposes — if you can’t apply the tags, it says so instead of showing you a card you can’t use.If your project hasn’t had a one-off update applied yet, the card says so and points you at Settings → Project → Repair broadcasting. That’s a one-time thing and it doesn’t affect sending broadcasts. If tagging stops part-way through, you’re told how many contacts were already updated.
Marketing templates and opt-in
The agent refuses to assemble a marketing campaign to an audience that isn’t restricted to opted-in contacts, and tells you to fix the audience. Marketing messages to people who never opted in are exactly the thing that gets a WhatsApp number restricted.The manual wizard doesn’t enforce this — you can untick Opted in only and pick a marketing template there. The agent is stricter than the form on purpose. Being stopped here is a reason to reconsider the audience, not to go and do it by hand.
