SMS Sending
Access prerequisites
- Permission (module): access granted by the route's administrative guard (
admin). There is no specific dynamic module for this screen. - License/Feature: None.
- Menu container: GENERAL → Communication group (icon
campaign) → SMS Sending.
What it is / when to use
Screen to create and schedule bulk SMS dispatches or to a specific list of recipients. The mechanics are identical to Email Sending: each dispatch becomes a "mass action" (MassActions with action = 'SMS') that enters the CommunicationScheduler queue. Use it for short notices, confirmations and SMS-channel campaigns.
Prerequisites
- Permission: item under the route's
adminguard. Permission in Axia is dual (CPM enum in the backend + dynamic module in the DB); the effective gate here is the route guard — validate administrative profile. - License/Feature: none.
- Dependencies on other screens: in Individual mode, the recipient is validated against the user base (same check as email).
Step by step
- Go to the Communication → SMS Sending menu.
- The screen lists existing dispatches (columns When, Subject, Status, edit/delete).
- Click New / Create to open the modal.
- Choose the audience: All (
all) or Individual (single). - In Individual mode, add each recipient (validated against the base, becomes a chip).
- Fill in Message and Date.
- Confirm. The dispatch enters the queue.
Fields
Listing
| Column | What it shows | Data source |
|---|---|---|
When (when) | Creation/scheduling date | MassActions.when/scheduleTo |
Subject (subject) | For SMS it is stored empty | MassActions.subject (empty string in SMS) |
| Status | CREATED/PENDING, EXECUTED, CANCELLED | MassActions.status |
| Edit / Delete | Reopens the modal / cancels (marks CANCELLED) | — |
Creation/editing modal
| Field | What it is | Required? | System/backend effect |
|---|---|---|---|
| Audience (All / Individual) | Entire base or specific list | Yes | all = true queues one PENDING record per user in the base; all = false per recipient in the list. In edit mode, the audience is locked. |
| Email/recipient (Individual mode only) | Identifies the target user | Conditional (≥1 in Individual mode) | Validated against the base via getUserByEmailWallet; only existing users are accepted. Becomes a chip. |
Message (message) | SMS text | Yes | Stored in MassActions.message. Unlike email, there is no subject field (stored empty). |
Date (when) | Date from which the dispatch can be processed | Yes | Minimum = today. The scheduler runs every 30 minutes. |
Actions and modals
- Create (Confirm): creates the
MassActions(action = 'SMS',status = 'CREATED') and thePENDINGrecipients. The screen reloads. - Edit: adjusts Message and Date; audience and list are read-only. Saving returns the dispatch to
CREATED. - Delete: marks
CANCELLED(does not delete).
Business rules / caveats
Attention
- SMS delivery caveat: in the current
CommunicationScheduler, theaction === 'SMS'branch of the processing loop is empty (no actual sending implementation). In practice, SMS dispatches created on this screen are recorded and scheduled, but the actual sending depends on the SMS provider implementation in the scheduler. Confirm with the platform team whether the SMS channel is active in the environment before promising delivery to the client. The email flow, on the other hand, is fully processed. - An individual recipient is only accepted if they exist in the base.
- Sending is not immediate: it depends on the 30-minute scheduler cycle.
Irreversible
- Once sent by the provider, there is no rollback of the SMS. Cancelling only prevents dispatches that are still
PENDING.
- Idempotency: processing per recipient (
PENDING→EXECUTED); re-execution does not resend to those who already received it.