I'm using journey builder with an API entry event. I want to send an SMS account alert to subscribers, even if they have opted-out of SMS. Is there a way to mark SMS as transactional similar to how you can set emails as transactional?
There is no such thing as transactional SMS sending, especially since Marketing Cloud only delivers the SMS to a carrier and gets a response from that. There is never a clear indication if the recipient actually recieved/opened the SMS (at least on Marketing Cloud side)
That being said, general practise is to have a separate MobileConnect keyword that is meant for transactional messages only and force MobileConnect Contacts to always be subscribed to it.
With API call to MobileConnect you can always set the
override:true to be sure that it will be sent out from Marketing Cloud, but with regular Journey Builder SMS canvas event you can only set them to be subscribed to this keyword, there's no option to override existing opt-out status.
For that you would need to have some Automation running which always updates MobileConnect Contacts to be Active subscribers to your transactional keyword.
However this isn't as foolproof as API method, in addition for existing Contacts the automation will run once in an hour, meaning if they have unsubscribed from transactional keyword, then it's going to take an hour to resubscribe them, leaving a gap period of an hour when no transactional messages would be delivered.