Set up channels before creating a message automation or guest journey.
Start with channels
Open MSG and complete the channel/onboarding settings for the channels you intend to use.
Review the active account and property context. Property access limits the automations and logs available to you.
Use Message editor for individual rules, Draft with AI for a proposed rule, Customer journeys for grouped stages, Advanced tools for forms/rulebooks/API, and Logs for execution evidence.
Send a controlled test before enabling a broad audience.
Account-level sender, provider credentials and API tokens may require an authorized account context.
Configure provider-specific delivery and verify the sender and recipient.
Email
Open email channel settings and review the configured provider, sender address and sender name.
Confirm the sending domain/sender setup shown in onboarding.
Create a test email with the intended language and send it to a controlled address.
Check delivery logs and recipient spam filtering if it is not received.
SMS and WhatsApp
For SMS, configure the Twilio credentials and sending identity required by the channel settings.
Check that the guest phone number includes the correct country code.
For WhatsApp, complete the Meta/WhatsApp configuration and choose an approved template when the workflow requires one.
Map template variables and test delivery before enabling automation.
WhatsApp production availability depends on the provider/account approval and template configuration. A successful template edit is not proof of provider approval.
Slack
Configure the intended Slack webhook in messaging settings.
Choose the operational channel/recipient behavior and test a message.
Verify the destination and any mentions before using the message for staff alerts.
Insert supported reservation data and generated guest links in messages.
Use the token picker
Choose a token supported by the current channel and automation context.
Preview it with a representative reservation and check required data such as email, phone, assigned unit and language.
For Salto, use {{salto.pin}} for a PIN or {{salto.guestUrl}} for a personal door-access page.
Use the online check-in or service-booking link token offered by the picker for those configured flows.
Review the final rendered message and link before sending.
Some tokens create or resolve reservation-scoped access links. They require the relevant app, permissions and configuration; a copied raw token is not an access link.
Build a matching rule with explicit scope and predictable execution timing.
Create a reservation or event automation
Choose the reservation/event source supported by the editor.
Select the included properties and configure the conditions and exclusions offered for that source.
Check field paths, operators and values, including how grouped conditions combine.
Choose when to send: the offered event delay, reference-date offset or scheduled execution time.
Preview the audience/conditions, name the rule and save it in the intended enabled state.
Use a recurring property schedule
Choose a recurring trigger, included properties, recurrence and time zone. A weekly recurrence offers a weekday selector, such as Friday.
Understand the scope: each occurrence creates one event per eligible property and supplies property context. It does not enumerate the hotel’s in-house reservations or guests.
Configure a recipient supported by that property context and test the actual channel and rendered recipient.
Use a supported reservation-specific rule when the message requires a guest’s address or reservation tokens. Confirm a suitable guest-audience workflow with support before planning a weekly broadcast to all staying guests.
Recurring rules do not expose the normal reservation condition controls. A weekly schedule alone is not an in-house guest broadcast.
A missing rendered recipient can prevent sending. A property-level run is not proof that any particular guest received a message.
Validate the behavior
For a reservation/event rule, use one reservation that should match and one that should not. For recurrence, test the property event and its explicitly configured recipient.
Wait for the relevant event or schedule and inspect Logs.
If a message is skipped, check scope, conditions, timing, channel and recipient data before duplicating the rule.
Saving a rule does not guarantee that historical events are replayed. Check the preview and trace for the actual trigger.
Open Customer journeys and choose or create a journey.
Add the needed stages, such as reservation created, before arrival, check-in day, during stay, checkout day and post-stay.
For each stage, set the channel, content, conditions and arrival/departure reference with the intended offset.
Check whether other active rules already send the same message to the same audience.
Save and test representative reservations, including amended arrival and departure dates.
A journey is a collection of configured stages. Inspect each stage’s conditions and timing when only part of a journey sends.
Check moved or canceled reservations
Inspect which created, amended or canceled reservation events the stage actually subscribes to. A before-arrival preset can be created-only; saving it does not establish change-event handling.
After a relevant change, check the current reservation, rule conditions, scheduled timing and execution logs. Date changes can reschedule work only when a configured event reaches the rule and its timing is evaluated.
A scheduled execution fetches current reservation data, but does not itself recompute its send time. Do not assume that updated message content means the schedule moved.
For cancellation, verify a condition that suppresses the send and inspect the actual execution result; there is no universal cancellation suppression guarantee.
Already-sent messages cannot be recalled by a date change. Preview and send corrected information when necessary, checking for duplicate sends.
Use account-scoped server-to-server credentials to list automations and send email.
Create and revoke credentials
Open MSG in account context, then Advanced tools → MSG API.
Enter an integration name and create a token. Copy it immediately and store it in your server-side secret manager.
Review active tokens, created/last-used times and prefixes.
Revoke a token when the integration is retired or its credential needs replacement.
Call the API
Use the endpoint displayed by the running app, ending in /api/msg/api.
Send Authorization: Bearer YOUR_TOKEN.
Use GET with resource=automations to list automations.
Use POST with resource=messages, to, subject and html to send through the configured account sender.
Respect the published limits and retry guidance: 120 reads/minute and 10 sends/minute per token, up to 10 active tokens, 10 recipients and 250 kB HTML per send.