SMS
SMS element indicates a point to communicate with a customer via SMS.
To send SMS to users within the journey, add the SMS element to the canvas next to any element. Choose an SMS preset, or click Create content to build a new one.

To change the order of presets in the dropdown, click the sort button above it. The dropdown is sorted by Newest first until you pick another order, and Pushwoosh remembers the order you pick and uses it in every SMS preset dropdown, in one-time messages and journeys alike.
Set message type
Anchor link toChoose Marketing message or Transactional message:
- Marketing message: For campaigns and promos. All rules and limits apply. Respects: Frequency capping and Silence period. Excludes: the control group.
- Transactional message: For operational or service messages. Rules and limits don’t apply. Bypasses: Frequency capping. Sent to: the control group.
No message type is preselected. Until you choose one, the element shows a Message type not selected warning. If the element is reached only from an Audience-based entry, Marketing message is shown with a Default badge. Choose Transactional message if the message is a service one.

Learn how message type affects delivery.
Overwrite personalization
Anchor link toWhen you select a preset, you can overwrite how the message is personalized:
- Personalise message with event attributes: Enable this option to use event attributes or API-based entry placeholders instead of device tags as value sources in message content and presets. Learn more
- Overwrite Liquid placeholders: Enable this option to use values from the selected Event in Liquid personalization. Liquid tags that match event attribute names will use values from the event. Learn more
- Use Vouchers: Enable this option to use vouchers in message content. Learn more

Configure message delivery settings
Anchor link toSet frequency capping
Anchor link toUse Frequency capping to control how often users receive SMS messages, helping prevent message fatigue and opt-outs.
You can choose one of the following options:
-
Use global frequency capping settings Apply the project-wide SMS limits set in your Global frequency capping settings. Example: If the global limit is 3 SMS messages in 9 days, any additional messages will be skipped.
-
Send messages without global frequency capping Send the SMS regardless of how many messages the user has already received. Use with caution to avoid over-messaging and compliance issues.
-
Use custom frequency capping Set a custom SMS limit specifically for this message step. If the user has reached the limit, they will skip this message and move to the next step in the journey. Learn more
Choose a counting mode for this custom limit: Rolling window or Calendar day.
Set send rate limits
Anchor link toThe Send rate setting controls how quickly messages are delivered to your audience. Adjusting the send rate helps you manage delivery speed, prevent backend overload, and improve overall deliverability.
Choose one of the following options:
- Use global send rate settings
Applies the send rate limits configured in your project’s message delivery settings. If no limits are set, all messages will be sent immediately. Use this option when you want delivery speed to follow your project’s default rules. Learn more about global send rate limits

- Send messages without global send rate
Sends messages as fast as possible, ignoring any global send rate limits. Use with caution to avoid overloading your backend or creating delivery spikes.

- Use custom send rate
Overrides the global send rate for this message only. Allows you to specify the number of messages sent per minute, giving you full control over delivery speed. Messages will be sent at the custom rate you define in the message element.

Flow options
Anchor link toEnable the Split flow depending on whether this message is delivered or not toggle to split the journey based on whether the SMS is delivered.
Then, set the delivery waiting time.
If the SMS is delivered within the specified time period, the "delivered" branch will be activated. Maximum 7 days.

Branch on RCS reply buttons
Anchor link toWhen the selected SMS preset has an RCS template with quick reply buttons, the element branches on the button the user taps instead of on delivery. It gets a branch for each button, labeled with the button text, plus a Not match branch, and the canvas shows Wait for reply: 24 hours under it.

- The user waits up to 24 hours for a tap. A tap sends the user down that button’s branch. If there’s no tap within 24 hours, or the phone doesn’t support RCS, the user goes to Not match.
- The Split flow depending on whether this message is delivered or not toggle isn’t available, because the buttons branch the element.
- A button whose text is an opt-out keyword (STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, or QUIT) unsubscribes the user. Its branch stays on the canvas, but a tap on it never sends the user down that branch.
- Only quick reply buttons get branches. A button that opens a link doesn’t.
The branches come from the copy of the buttons Pushwoosh saves with the preset. If you change the buttons in Twilio, open the preset and save it again to update the branches.
Branch when the provider rejects the message
Anchor link toTo send users whose SMS or RCS message the provider rejected to a separate branch, for example to try another channel:
- In the element settings, turn on Branch when the provider rejects the message.
- Save the element.
- On the canvas, connect the Rejected by provider branch to the next element.
A user goes to Rejected by provider when the provider refuses the message at sending, or when a later delivery report from Twilio or your SMS provider marks it as failed or undelivered. Errors that Pushwoosh retries don’t lead to this branch.
- With quick reply buttons: a rejected message goes to Rejected by provider at once. Other users wait for a tap.
- With the delivery split: the element waits for the time set there.
- Otherwise: the element holds the user for up to 1 hour, and the canvas shows Wait for refusal: 1 hour. If the provider doesn’t reject the message within that time, the user continues through Sent.
Without a connected Rejected by provider arrow, a user whose message was rejected follows the element’s other branches. Turning the setting off removes the branch and its arrow.