A broadcast that turns into real conversations
A campaign sends one approved WhatsApp template to a list of contacts, either right away or at a scheduled time, personalized per person. The part that makes it different: when someone answers, the reply lands in your inbox and the AI agent assigned to it picks up and keeps talking. The campaign is not the end of the interaction — it is the start of one.
What you need first
- A connected WhatsApp inbox.
- At least one template with status Approved on that inbox's WhatsApp Business account.
Templates belong to a phone number. If you have several WhatsApp inboxes, each one has its own approved templates, and a campaign can only use the templates that belong to the inbox you selected.
Cold outreach on WhatsApp is only possible with an approved template. That is a Meta rule, not a Kronos one: you cannot send free text to someone who has not written to you first.
Creating a campaign: the wizard
Open Campaigns → New campaign, pick the inbox it sends from, and step through: Name → Message → Audience → Delivery → Review. A thin progress bar at the bottom tracks which step you're on. Nothing is saved until you confirm on the Review step — you can move back and forth between steps freely without losing what you've already filled in.
Building the audience
The Audience step is combinable: you are not choosing one source, you are building a list of conditions, and every contact matching any of them becomes part of the audience — a contact matching more than one condition is only counted, and only messaged, once.
Existing conversations
Present by default. People who already have a conversation in the selected inbox. Narrow with reply status (all, unanswered, AI-only, or answered by a human) and a date range. Removable, as long as at least one condition remains.
Contacts in a funnel or stage
Click Add condition to add one or more. Pick a funnel, and optionally a specific stage — leave it on "Any stage" to include every lead in that funnel. Add several at once, for example two different funnels or the same funnel at two different stages. A live preview shows the real contacts currently matching, with a running total, as you configure conditions.
From a file
Separate from the conditions above — its own path, not one of the combinable audience conditions. Upload a CSV or Excel file, pick which column holds the phone number and a default country code for rows without an international prefix. Every other column becomes an attribute you can use to personalize the message.
Before anything is saved you get a preview: how many rows were valid, how many were invalid and why, how many duplicates were collapsed, and how many contacts were excluded because they had opted out. Nothing is written until you confirm.
The audience is frozen when the campaign is created. Editing a contact afterwards does not change a campaign that was already built.
Personalizing the message
A template can contain variables — the {{1}}, {{2}} placeholders you defined when you created it. For each one, choose how it gets filled:
- Fixed value — the same text for everybody.
- Contact field — pulled from what Kronos knows about that person: their name, a column from your imported file, an answer from a lead form.
- AI — the agent writes the value using the context it has for that contact.
The last two require a fallback: a value used when the data is missing or the AI cannot produce something usable. The fallback is not optional, because WhatsApp rejects a message with an empty variable, and one incomplete contact must never be able to stop a campaign.
Before you schedule, you can preview the finished message against three real recipients from your audience.
Sending now or later
Choose Send now or pick a date and time. Either way the campaign appears in your campaigns list with a progress bar showing how many messages have gone out of the total.
Statuses
| Status | Meaning |
|---|---|
| Draft | Being built. |
| Scheduled | Waiting for its send time. |
| Sending | Currently going out. |
| Sent | Every recipient was processed. |
| Capped | Stopped because the number reached its 24-hour messaging limit. |
| Paused | Stopped by you. Can be resumed. |
| Failed | Stopped by an error. |
| Cancelled | Ended by you. Remaining recipients were skipped. |
Open a campaign to see each recipient individually, with its own status and the reason for any failure. You can filter that list by status.
Pausing, resuming, cancelling
- Pause stops a campaign without losing its place. A campaign that is currently sending finishes the messages already in flight and then stops — it is never interrupted halfway through a delivery.
- Resume puts a paused campaign back in the queue.
- Cancel ends the campaign. Recipients who had not been contacted yet are skipped and will not be contacted by it. Messages already sent are not affected.
- Duplicate creates a copy with the same audience and message, parked so you can review it before sending.
Cancel and Delete ask for confirmation. Deleting a campaign also removes its recipient records and their delivery history.
Opt-outs
If someone tells WhatsApp they no longer want marketing messages from your business, WhatsApp refuses the delivery and Kronos records the opt-out automatically. It is never retried — retrying after an opt-out damages your number's quality rating.
You can also mark a contact as opted out yourself, from the inbox or from the campaign's recipient list. Opted-out contacts show an Opted out badge and are excluded from every audience you build.
Kronos is stricter than WhatsApp here on purpose: once a contact is marked as opted out, Kronos refuses to include them in a campaign at all, even with a template category WhatsApp would still allow.
Messaging limits
WhatsApp limits how many new conversations your number can start in a rolling 24-hour window. The limit depends on your number's tier, which typically starts at 250 conversations and grows to 1,000, 10,000, 100,000, and eventually unlimited.
Kronos checks your remaining capacity before and during a campaign, and stops on its own before WhatsApp has to refuse anything. When you build a campaign that targets more recipients than you have capacity for, you are told up front how many can be sent now.
If a campaign reaches the limit mid-send, it stops with the status Capped and shows exactly how many recipients were not contacted. You can then reschedule just those, at least 48 hours later. The gap is deliberate: it keeps the rescheduled batch clear of the same rolling 24-hour window.
This is a WhatsApp limit, not a Kronos limit.
To raise it: complete business verification with Meta, keep your number's quality rating high, and send consistent volume over time. Meta raises the tier on its own once those hold.
Protecting your number
Sending approved templates to people who did not ask for them is the fastest way to damage a WhatsApp number: recipients block or report it, the quality rating drops, the tier is downgraded, and the number can end up restricted.
Kronos builds several brakes into every campaign:
- Messages go out at a deliberate, steady pace rather than all at once.
- The messaging limit is treated as a hard ceiling.
- If the number's quality rating drops while a campaign is running, the campaign pauses itself and you are notified.
- Opted-out contacts are excluded from every audience.
- A delivery that fails after it was already dispatched is never retried automatically, so nobody receives the same message twice.
The most effective protection is still the audience: send to people who have a reason to hear from you.
When someone replies
Nothing extra to configure. The reply arrives in the inbox that sent the campaign, and the agent assigned to that inbox answers it like any other conversation — with the same knowledge, tools, and follow-up behavior it always has.