Campaigns
Campaigns let you send targeted communications to your WiFi user base — promotional messages, re-engagement emails, surveys, announcements, and more. Segment your audience, schedule delivery, and track performance from a single place.
'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}public/assets/img/docs/campaigns/overview.png
Campaign Types
Kiwire supports four delivery channels. The connector for each channel must be configured before campaigns of that type can be sent.
| Type | Channel | Required Connector |
|---|---|---|
email | Bulk email with HTML content and subject line | SMTP Connector |
sms | Plain-text SMS messages | SMS Connector |
whatsapp | WhatsApp messages using approved message templates | WhatsApp Connector |
push | In-portal notification shown on the captive portal on the user's next visit | No connector required |
If a required connector is not configured, the campaign type will be disabled in the create form. Configure the relevant connector under Connectors first.
Campaign Fields
| Field | Description |
|---|---|
name | Internal campaign name — shown in the admin grid only, not sent to users |
type | Delivery channel: email, sms, whatsapp, or push |
status | Lifecycle stage: draft → scheduled → sending → sent · also paused if manually halted mid-send |
subject | Email subject line (email campaigns only) |
body | Message content — rich HTML editor for email, plain text for SMS/WhatsApp/push |
schedule_at | When to send — leave blank to send immediately on publish, or pick a future date and time |
target_segment | Audience filter — controls which users receive the campaign (see Audience Segmentation below) |
sent_count | Number of messages successfully sent (populated after sending) |
failed_count | Number of messages that could not be delivered (see Delivery Log for details) |
Audience Segmentation
Target your campaign to specific subsets of your WiFi user base using the segment filters:
| Filter | Description |
|---|---|
| All Users | Every active user account in the tenant |
| By Profile | Only users subscribed to one or more selected access profiles |
| By Zone | Users whose allowed zone matches one or more selected zones |
| By Tag | Users with a specific tag label on their account |
| By Registration Date | Users who registered within a selected date range |
| By Last Login | Users who last logged in within (or before) a specified number of days — useful for re-engagement campaigns |
The campaign form shows an estimated recipient count as you adjust the segment filters — no need to run the campaign to know how many users will receive it.
public/assets/img/docs/campaigns/segment-filters.png
Template Variables
Use dynamic variables in your message body or subject line. They are replaced with each user's actual data at send time:
| Variable | Replaced With |
|---|---|
{{username}} | The user's login username |
{{fullname}} | The user's full name (from their profile) |
{{expiry}} | The account expiry date, formatted as DD/MM/YYYY |
Send Now vs Schedule
When creating or editing a campaign:
- Send Immediately — Leave
schedule_atblank and click Publish. Kiwire queues all messages immediately. Large campaigns may take several minutes to complete. - Scheduled Delivery — Set a future
schedule_atdate and time. Kiwire will start processing at the specified time. You can modify or cancel a scheduled campaign before it starts sending.
Once a campaign enters sending status, individual messages already dispatched to the
queue cannot be recalled. Pause the campaign immediately if you discover an error — unprocessed messages
will be held until you resume or cancel.
Delivery Statistics
After sending, open a campaign to view its delivery report:
| Metric | Description |
|---|---|
| Sent | Total messages submitted to the delivery channel |
| Delivered | Messages confirmed delivered by the channel (where delivery receipts are supported) |
| Failed | Messages that could not be delivered — click to view per-recipient errors in the Delivery Log |
| Open Rate | Percentage of email recipients who opened the message (email campaigns only; requires open-tracking pixel) |
Full per-message delivery details are available under Reporting → Delivery Log, filterable by campaign name. Use this to troubleshoot specific users who report not receiving a message.
Required Permissions
view-campaigns · create-campaigns · update-campaigns · delete-campaigns