Campaigns and communications
Create, segment, schedule, and monitor bulk e-mail, SMS, WhatsApp, and ISP APP communications.
Last updated: 2026-08-19
Module purpose
Communications manages bulk Marketing and Service campaigns over email, SMS, WhatsApp, and ISP APP. A campaign combines purpose, audience rules, one channel, content, and a reusable configuration.
Saving defines the campaign but sends nothing. Scheduling creates an immutable recipient snapshot and queue rows, which are later processed by the appropriate channel worker.
Campaign list and lifecycle
The list provides campaign ID, name, channel, purpose, duplicate, edit, and conditional delete actions. A campaign cannot be deleted once snapshots or queue records exist because operational history must remain traceable.

Name, description, and purpose
Use a recognizable internal name and description that explain the campaign, owner, period, and expected audience. Choose Marketing for promotional content or Service communications for operational information.
Purpose is not merely a label: it selects the corresponding customer notification preference during scheduling. Do not classify promotional material as service communication to bypass consent.
Audience filters
Audience rules can filter customer state and type, customer groups, service groups, presence of associated services, suspended or terminated services, and city. Multiple criteria combine and can narrow the result dramatically.
Define the smallest useful audience, save, and inspect reachable customers before scheduling. Test combinations that might include terminated customers or unrelated service holders, and treat an empty result as a configuration signal rather than weakening filters blindly.

E-mail channel
E-mail provides a subject and rich editor. Merge fields include first name, last name, business name, mobile, and e-mail. Missing customer data may produce an empty value, so the final sentence must remain readable.

SMS channel
SMS uses plain text and displays character and credit estimates. Encoding and special characters may increase the segment count. Customers without an eligible phone preference do not receive a queue entry.

WhatsApp channel
The provider observed in the example accepts plain text and a full public media URL. A Meta configuration instead uses approved templates, required variables, preview, an 800-character final limit, and an optional Details button for secured short-code HTML content.

ISP APP channel
ISP APP sends text to registered push tokens and is offered only when the app module is active. A customer without an enabled preference and device token is not queued.

Saving does not send
Saving creates or updates the reusable campaign and exposes its preview and reachable-customer tools. No queue row or outbound provider request is created until an operator explicitly schedules a send.
The channel is fixed on edit because each channel has different content and recipient rules. Duplicate or create a new campaign when another channel is required. Changes affect future schedules only and never rewrite an already-created snapshot.
Reachable customers and manual selection
The reachable-customer view applies current filters and shows candidates for the selected channel and purpose. Review customer identity, eligibility, and whether a usable destination exists before relying on the count.
Select only some customers stores an explicit subset within the filtered population. Restore all removes the manual subset and returns to filter-based selection. Recheck the list immediately before scheduling because customer state, services, consent, and contact data may change.
Consent and effective recipient
Scheduling joins campaign filters with an enabled preference for the selected channel and either marketing or service purpose. E-mail uses the selected or general address; SMS and WhatsApp use the selected or primary number; ISP APP uses a push token. Rows without a recipient are skipped.
Schedule and snapshot
Choose date and time in send history and press Send. The application creates a snapshot and personalized queue rows rather than delivering directly from the browser. History reports total, sent, pending, and errors.

Send queue and statuses
The queue records customer, campaign, channel, effective recipient, purpose, scheduled date, attempts, status, and error information. Main states are To send, Sent, and Error; the snapshot can also reveal skipped or failed recipients.
Use the queue to distinguish campaign configuration from provider delivery. Sent means the worker completed the supported provider request, not necessarily that the person read the message or acted on it.
Saved campaign → scheduled snapshot → consented recipients → To send rows → channel worker → Sent or Error.
Cancel a scheduled send
Cancellation stops eligible pending rows belonging to the scheduled snapshot. Review campaign, snapshot time, remaining pending count, and business reason before confirming.
Cancellation cannot recall email, SMS, WhatsApp, or push messages already processed by a worker. Keep sent and error history for traceability, and create a corrected campaign or schedule rather than modifying evidence from the cancelled run.
Automatic execution by channel
Dedicated command-line workers process the email, SMS, WhatsApp, and ISP APP queues in scheduled batches. The former HTTP cron path is disabled, so opening a URL or queue page does not dispatch campaigns.
Install each required worker with non-overlapping scheduling, correct runtime environment, and monitored logs. Verify last run, claimed rows, retries, provider errors, and locks after activation.
Module settings
Communications settings select the already configured SMTP profile used for campaign email. SMS and WhatsApp use the ISP’s active/default provider configurations, while ISP APP requires its enabled module and registered customer devices.
Test every underlying channel before offering it in a campaign. Changing a default provider or SMTP profile affects future worker execution and should be coordinated with pending queue rows.

Pre-send checklist
- Recognizable internal name
- Purpose matching the content
- Available channel and provider
- Specific audience filters
- Reachable customer list reviewed
- Valid preferences and contacts
- Merge fields reviewed in context
- SMS or Meta limits checked
- Authorized public media URLs
- Correct scheduled date and time
- Queue and snapshot checked afterward
- No duplicate retry of already sent rows