Furries PH Docs
Dashboard
Event Management docs

Surfaces

SMS Blasts

Attendee SMS campaigns, phone readiness, country-code policy, device/SIM selection, and delivery logs.

First created Last updated

communicationssmsevent-managementandroid

Overview

SMS Blasts is the channel-specific Communications page for sending plain SMS messages to attendee phone numbers. It uses the same audience and exact-attendee targeting model as Email Blasts, then adds SMS-only safety checks: phone normalization, attendee SMS preference, country-code grouping, selected-SIM home-country policy, Android device readiness, retry handling, and privacy-safe logs.

SMS Blasts does not create attendee notification inbox entries. Use Email Blasts or the Email + inbox tab in row-level Notify modals when the attendee also needs a rego-site inbox copy.

SMS is the default transport. Consumer RCS must stay disabled unless a future certified regular-user RCS capability is explicitly available for the selected Android path. RCS Business is not the cost-saving path for this feature.

[!IMPORTANT] SMS Blasts does not authorize Event Planning System staff reminders. An attendee campaign uses event audiences and the attendee’s announcement preference. An EPS reminder uses one authenticated planning user, a separately verified E.164 destination, explicit EPS operational-message consent, a planning outbox identity, and terminal-work cancellation. The two products may share the online Android transport, but never share recipient records, consent, campaigns, jobs, audit history, or retry decisions.

Dashboard route

/ems/manage/communications/sms-blasts?id=:eventId

The page belongs to the online dashboard and can use the EMS LAN Android wrapper only when the wrapper is in online mode. Local LAN server mode cannot register as an SMS blast device, lease campaign jobs, send attendee SMS, or expose SMS campaign payloads.

Device linking is not a separate pairing-code flow. The online dashboard links the Android wrapper when the partner opens SMS Blasts inside the trusted EMS LAN Android app while signed in to the partner account.

StepActionVerification proofStop if
1Install or open the EMS LAN Android wrapper on the phone that has the sending SIM.The app opens the online dashboard host, not the local LAN server.The wrapper is pointed at a local LAN URL or offline server mode.
2Switch the wrapper to online dashboard mode and sign in with the partner account that can manage the event.The event dashboard opens under the same partner scope as the event.The account cannot open the event or the page shows Not authenticated.
3Open /ems/manage/communications/sms-blasts?id=:eventId from inside the wrapper.The SMS Blasts device panel reports the wrapper capability state.Opening the same page in a normal desktop browser will not provide Android SMS capability.
4Select Enable SMS on this device, then grant Android SMS and phone-state permissions.The device panel refreshes and the enable action disappears after both permissions are granted.Android denies SMS permission, phone-state permission, or SIM access; use the opened app-settings screen to correct it.
5Wait for SIM inventory to sync.The Sending device and SIM dropdown lists the wrapper device, SIM slot, carrier when available, and masked line number when Android reports one.No SIM appears, the SIM is inactive, or the device is roaming.
6Select the sending SIM and verify the SIM country and calling code.The SIM can be selected and the verification action succeeds.The operator cannot confirm the SIM home country or calling code.

Keep the Android wrapper open on SMS Blasts while sending. The page starts the online SMS gateway foreground service and drains receiver events while it is open; the Platform API remains the source of truth for campaign state, retries, failures, and logs.

EPS scheduled reminders use their own background-capable gateway drain and do not depend on this campaign page remaining open. That path still requires online mode, a current native device credential, Android permissions, an eligible verified non-roaming SIM, partner/country/segment/cost policy, and a pre-send cancellation recheck. LAN/offline mode cannot lease attendee campaigns or EPS reminder jobs.

Recipient controls

Control or elementTypeWhat it doesOperational impactCheck before using
Audience groupsCheckbox modeShows generated event recipient groups such as everyone, attendees, staff, volunteers, dealers, applicants, and waitlisted attendees.Selects broad sets of attendee accounts before SMS readiness is applied. Overlapping groups are deduplicated by the API.Confirm the group is not broader than the SMS announcement scope.
Specific attendeesCheckbox modeShows the exact-attendee picker with SMS readiness fields.Lets staff target named attendees without sending to a full group.Use when the message is a support follow-up, correction, or narrow operational update.
Audience group cardsCheckbox listSelects one or more generated audience groups and shows ready/total counts.Drives audienceIds in the SMS preview and campaign create request.Re-check ready and blocked counts after every selection change.
Search attendeesSearch inputFilters by attendee, username, masked phone, source, country, status, or eligibility.Narrows the picker view only; it does not change attendee records.Clear the search before deciding an attendee is unavailable.
FilterStatus filter dropdownNarrows the attendee picker by SMS readiness or attendee state.Helps isolate ready, invalid, opted-out, or missing-phone recipients.Confirm the filter is not hiding intended recipients.
Select visibleCheckboxSelects or clears the attendee rows visible under the current search and filter.Can add many exact attendees at once.Check the current search and filter first so hidden rows are not accidentally skipped.
Recipient previewGenerated summaryRecalculates selected recipients, ready counts, blocked counts, segment count, and country groups.Shows whether the current recipient set is safe to queue.Stop if a country group, blocked reason, or ready count is unexpected.

Readiness fields

Field or requirementWhat it showsOperational impactStop if
E.164 phone readinessWhether the attendee contact number can be normalized to a known SMS destination.Only ready recipients can become sendable SMS records.The number is missing, invalid, ambiguous, premium/satellite, or otherwise unsupported.
Attendee SMS announcement preferenceWhether the attendee allowed optional event SMS announcements.Optional SMS blasts must respect this preference separately from email preferences.The attendee disabled event SMS announcements.
Country calling codeThe destination calling code derived from the normalized phone number.Used for grouping and selected-SIM policy.The code is unknown or does not map to an allowed country policy.
ISO countryThe normalized destination country.Helps operators review cost and policy risk by country group.The profile country and phone country need review before sending.
Country group summaryReady and total counts by country calling code.Prevents accidental mixed-country or international sends.The selected SIM home country does not match the selected recipient country group.

Device and SIM controls

Control or elementTypeWhat it doesOperational impactCheck before using
Online Android device stateGenerated readiness panelShows linked online wrapper devices, permissions, foreground service state, local outbox evidence, and API requirements.SMS sending is unavailable without a trusted online wrapper session.Stop if the wrapper is offline, in LAN mode, missing permissions, or unlinked.
Enable SMS on this deviceApp-only buttonRequests Android SMS, phone-state, and notification permissions, then refreshes device and SIM readiness.Makes first-run setup actionable inside SMS Blasts; denied permissions open Android app settings.This control is intentionally absent in a normal website browser, which queues through an already linked online app.
Sending device and SIMSelect dropdownChooses the linked Android device and SIM slot used for the campaign.The selected SIM controls which destination country group can be sent by default.Confirm the device, SIM slot, masked line, carrier, and active/non-roaming state.
SIM countryText inputStores the partner-verified ISO country for the sending line.Prevents trusting Android-detected line numbers without partner review.Stop if the operator cannot verify the SIM home country.
Calling codeNumeric inputStores the partner-verified country calling code for the sending line.Used to block recipients outside the selected SIM home-country policy.Stop if the calling code does not match the verified SIM country.
Verify SIMButtonSaves the selected SIM verification before queueing.Allows the selected line to lease matching SMS jobs.Verify only a line the partner controls and expects to pay for.

Composer and campaign controls

Control or elementTypeWhat it doesOperational impactCheck before using
SMS messagePlain text textareaSets the SMS body for every selected ready recipient.Long messages may become multipart SMS segments.Keep copy short and include enough event context without relying on formatting.
Queue SMS blastButtonCreates an SMS campaign and per-recipient records using the selected audiences, attendees, device, SIM, and message.Ready matching-country recipients can be queued; blocked recipients are saved for audit without sending.Confirm recipient preview, selected SIM, message text, and SMS-only transport before queueing.
Notify modal SMS tabTabbed modal surfaceLets row-level Notify actions queue a narrow SMS blast to the selected attendee account instead of sending Email + inbox.Uses the same SMS readiness, device/SIM, country-code, and campaign queue API as SMS Blasts.Confirm the operator understands that this sends SMS only and does not create a rego inbox notification.
Campaign monitorGenerated panelLists recent SMS campaigns with status, ready count, failures, and retry count.Gives staff a dashboard view of queue health and unresolved failures.Review failures before sending a duplicate campaign.
Review entriesButtonOpens the selected campaign’s per-recipient SMS queue entries.Shows which entries are failed, pending, sent, delivered, blocked, or retry-ready.Use this before retrying so only failed entries are selected.
Retry selected failedButtonRequeues only the checked failed entries in the open campaign.Lets staff recover a partial campaign without creating a duplicate blast for successful recipients.Select only entries that are truly failed; do not retry sent_unconfirmed entries as failures.
Retry all failedButtonRequeues every currently failed entry in the selected campaign.Useful after fixing an Android wrapper, SIM, permission, or transient carrier issue.Confirm the cause is fixed and the wrapper is online before retrying.
Mark sentButtonManually marks a campaign entry as sent and writes an audit event.Corrects the API record when staff has reliable device or carrier evidence that the SMS was accepted.Use only when there is clear proof; this does not send another SMS.
Mark errorButtonManually marks a campaign entry as failed/error and writes an audit event with a note.Lets support close stuck or externally verified failed entries without waiting for another receiver event.Record a concise reason so later operators can understand the override.
Feedback alertGenerated statusShows queue, verification, readiness, or dispatch errors.Gives immediate operator feedback after API or native bridge actions.Read the error before retrying; repeated clicks can create duplicate campaigns if the first request actually succeeded.

Delivery states

StateMeaningOperator response
blocked_device_requiredThe campaign or message is recorded but cannot be sent because no verified online Android wrapper device and non-roaming SIM were selected.Link and verify the device/SIM before queueing another campaign.
blocked_recipientA recipient did not pass phone readiness, country-code policy, attendee preference, or profile-country review.Correct the attendee profile or remove that recipient before sending.
queuedAPI accepted the message job but no device has leased it yet.Confirm the online wrapper is open and connected.
leasedA verified device/SIM has temporary ownership of the attempt.Wait for sent, delivered, failure, or lease expiry.
sentAndroid reported SMSC acceptance.Do not treat this as handset delivery unless a delivery report arrives.
deliveredAndroid received a delivery report.No action needed.
sent_unconfirmedThe message was submitted, but no delivery report arrived before timeout.Review carrier/device behavior before resending.
retry_scheduledA retryable failure occurred and the API scheduled another attempt.Keep the wrapper online and review the next attempt time.
lease_expiredThe wrapper leased a job but did not acknowledge it before the API timeout.Keep the wrapper online and review local outbox or device logs if retries are exhausted.
failed_terminalThe route, number, permission, SIM, or policy cannot be retried safely.Fix the cause or notify the attendee through another channel.

Android wrapper behavior

When SMS Blasts is open inside the trusted online Android wrapper, the page can register the wrapper, sync SIM inventory, start the online SMS gateway foreground service, lease queued jobs, submit each leased SMS through the native bridge, drain Android sent/delivered/failed receiver events, and report those receiver-backed results back to the SMS status API. The page keeps a bounded queue drain loop running while open so retry-ready jobs can continue moving without another campaign creation click.

The website uses the same campaign composer and monitor without exposing native Android controls. It can queue to any verified wrapper device reported online; the matching Android app must remain open on SMS Blasts to lease and dispatch those website-created jobs.

The Android wrapper keeps a capped local outbox for leased attempts it has been asked to submit. Operators should still treat the Platform API campaign log as the source of truth, but support can compare local outbox counts and drained receiver events against API attempts when a device, WebView, or network interruption occurs.

API records

Record or routeWhat it representsVerification proof
/api/events/:id/communications/sms-blasts/audiencesAudience counts, SMS eligibility, blocked reasons, and country groups.Selected audienceIds match the intended groups and the ready/blocked counts are reviewed.
/api/events/:id/communications/sms-blasts/attendeesExact-attendee SMS readiness records for the picker.Selected attendeeAccountIds belong to the current event and show expected readiness.
/api/events/:id/communications/sms-blasts/previewCurrent recipient selection, segment count, exclusions, and country groups.Preview output matches the selected audience groups, exact attendees, and message body.
/api/events/:id/communications/sms-blasts/devices/*Online wrapper device, SIM inventory, SIM verification, lease, and status contracts.Device ID, SIM ID, slot, masked line, permission state, and status events agree with the campaign log.
/api/events/:id/communications/sms-blasts/campaigns*Campaign records, per-recipient status, retries, failures, and masked logs.Campaign counts and delivery events explain what was sent, blocked, retried, or failed.
/api/events/:id/communications/sms-blasts/campaigns/:campaignId/retry-failedSmart-retry endpoint for all failed entries or a selected list of failed message IDs.Only failed, sendable entries are moved back to retry-ready state and logged as manual_smart_retry.
/api/events/:id/communications/sms-blasts/campaigns/:campaignId/messages/:messageId/manual-statusManual sent/error override endpoint for a campaign entry.Updates the entry state and writes a manual_partner_override audit payload in SMS delivery events.

Consumer RCS

Consumer RCS is not assumed available. It depends on Android version, default messaging app behavior, device/OEM support, carrier, region, recipient settings, and whether the wrapper can legally and reliably act as the default SMS app or supported alternate transport.

Do not use UI automation or another app’s Send button as an RCS implementation. If consumer RCS is unavailable or uncertified, SMS remains the only send path.

Flowchart context

Active Event Workflow links to SMS Blasts when a short phone-number announcement is needed and the event has verified online Android sending capability. Use Email Blasts for branded email and inbox copy, and use Notification Config for private staff webhook alerts.

Common mistakes

  • Do not queue before selecting and verifying a non-roaming online Android SIM.
  • Do not assume a local-looking country code proves the attendee is physically local or not roaming.
  • Do not send to mixed-country recipients from a SIM whose home-country policy allows only one destination group.
  • Do not trust Android-detected line numbers until the partner verifies the SIM country and calling code.
  • Do not retry sent_unconfirmed messages as if they definitely failed.

All docs