Marketing automation (if enabled for your store)
Magic Massage OS turns a small set of customer lifecycle signals into reviewable Email or SMS Campaign drafts. It is not an automatic mailing list: a person must still review the audience and content, approve the Campaign, and schedule it.
Before you start
You need access to the exact Store and the relevant permission:
| Task | Permission |
|---|---|
| View Campaigns, settings and channel policy | marketing.campaign.read |
| Generate or edit drafts, change settings, schedule and cancel | marketing.campaign.write |
| Approve a Campaign | marketing.campaign.approve |
| View aggregate outcomes | marketing.analytics.read |
| Change a Customer's marketing consent | marketing.consent.manage |
Marketing must also be included in the selected Store's plan or feature settings.
Review channel policy
- Open Admin → Lifecycle marketing (the sidebar entry for marketing automation).
- Select the Store you intend to manage.
- Select Automation settings.
- Review Channel readiness at the top of the dialog.
Email and SMS are operational marketing channels with independent Store switches. SMS defaults to off and requires a configured Android SMS gateway. If you have Campaign write permission, you can explicitly enable or disable it for this Store. Disabling Email stops new Campaign preparation and also stops an already-prepared marketing delivery before it calls a Provider. If the Store has never saved an Email policy, the current default is enabled.
Enabling Email does not connect an Email Provider, approve a Campaign, or send a message. Provider credentials and availability are separate operational prerequisites.
WhatsApp and WeCom are shown so their future place is clear, but they are unavailable and cannot be enabled. Do not treat their presence in this screen as a working transport.
If you only have read permission, you can inspect all settings but cannot change or save them.
Configure lifecycle candidates
The same dialog controls the fixed lifecycle rules and their bounded thresholds. These rules can prepare draft candidates for new, inactive, returning, VIP, birthday, Package-expiry and Voucher-expiry opportunities. Until you save automation settings, only the inactive-customer, Package-expiry and Voucher-expiry rules generate candidates automatically; enable the other four explicitly.
Changing a rule does not select arbitrary customers or send anything. The system continues to use its fixed eligibility logic and only creates a draft candidate on the configured cadence.
Customer data requests and AI drafts
The same screen also holds Customer data requests and AI draft variants. Export and deletion decisions on data requests are recorded, never executed automatically. AI draft variants spend AI credits and fall back to manual editing when a Provider is unavailable.
Run a Campaign
- Select the Store and generate a lifecycle candidate, or open a candidate handed off from Owner Intelligence.
- Select Email or SMS in the draft, save your changes, then preview the current eligible audience. The preview contains counts, not a customer contact export.
- Edit the draft content. AI-assisted variants, when available, remain labelled drafts and must be explicitly applied.
- Have an authorised person approve the Campaign. Approval freezes the current eligible audience and content revision.
- Schedule it within the allowed Store-local window.
- Monitor aggregate delivery and booking outcomes.
At preparation time, MMOS rechecks the selected channel policy, current customer consent, suppression list, frequency caps and delivery limits. It checks the Store Email policy again immediately before a Provider call. A Customer who unsubscribes is opted out at customer level and the exact historical delivered address is also suppressed. Reusing the valid signed link after another profile Email change idempotently reconciles the current address as well, so legacy direct Email paths cannot bypass the recorded opt-out.
Marketing SMS
- Configure and check the Store gateway in Android SMS.
- In Customer Management, open Marketing SMS consent and record the customer's explicit permission. Enabling consent requires confirming that permission was obtained. Email and appointment SMS consent do not authorize marketing SMS. A changed phone number requires fresh permission.
- Enable SMS in marketing Automation settings, then choose SMS in a draft.
- Save the draft and preview the full message and eligible audience before approval and scheduling. The subject is an internal label; the body is limited to 500 characters.
The full SMS adds Store identification, contact details and a signed unsubscribe link; it is limited to 1600 characters and can incur multiple SMS segments. Keep the Store name and contact details current. Preview links are examples. The customer's link opens confirmation without requiring login; confirming withdraws SMS marketing consent and suppresses the historical number, including after a profile change or deletion.
SMS shares Campaign frequency and volume limits with Email. Delivery rechecks the channel, Store and phone-bound consent. Messages queued outside 09:00–19:00 Store time wait until the next opening window. Accepted or unknown gateway submissions must be checked rather than resent; see Android SMS.
What the customer receives
Campaign Email is rendered from the customer_campaign Email template in the recipient's language (English, Chinese or Thai; a Tenant template override wins over the platform default). Your Campaign subject becomes the headline and your Campaign body becomes the offer text; the booking call-to-action is the signed click link.
Every marketing Email ends with, in the recipient's language:
- the sender identification required by the Spam Act 2003: the Store's trading name (and legal name when a financial policy records one), physical address, and contact Email or phone — keep the Store profile and financial policy current, because they are read at send time;
- an Unsubscribe link (opaque signed token; the customer's address is never in the link) and a Manage preferences link to the customer account page.
The visible unsubscribe link opens a confirmation page and does not change consent until the customer presses Unsubscribe. This prevents mail scanners and link previews from opting customers out accidentally. Mailbox providers such as Gmail separately receive one-click unsubscribe headers, so a standards-compliant provider can submit an immediate opt-out without opening the message. Both confirmed paths are idempotent. Transactional Email (bookings, receipts, reports) never carries unsubscribe links or headers.
Safety boundaries
- Missing or unknown consent is not permission to send.
- Every Email identifies the Store and includes a signed, localized unsubscribe link plus one-click unsubscribe headers.
- Unsubscribe does not require login or extra personal information.
- Quiet windows, daily/minute limits and the seven-day customer frequency cap remain enforced.
- Campaign automation never approves, schedules or sends on its own.
- Marketing metrics are aggregate; they do not prove that a Campaign caused every later booking or dollar of revenue.
These defaults support the operating expectations described by the Australian Communications and Media Authority and the Office of the Australian Information Commissioner. Your business still needs to approve its final consent wording, sender identity, legal copy and live Campaign process.
If a Campaign does not send
Check, in order:
- the correct Store is selected;
- the selected channel is enabled in Automation settings → Channel readiness;
- the Campaign was approved and scheduled for the current Store-local window;
- eligible recipients still have explicit current consent and are not suppressed;
- the Email Provider or Android SMS gateway is configured and operational;
- the Campaign has not hit a frequency, minute or daily limit.
Never enable another channel or bypass consent checks to work around an Email Provider problem.
Before sending beyond a controlled consenting test cohort, complete the Email Marketing track in Pilot acceptance.