I would like to shed some light here since it has been a couple of days without any comments or answers.
I went through the documentation and help pages and found nothing regarding blackout period specifically for SMS sends using Transactional API, however, there is a little note in the blackout period doc:
Any send blackout time specified in the MobileConnect app does not affect sends conducted using MobileConnect API calls.
To validate whether Transactional SMS sends honour the blackout period, I had set up some Transactional SMS sends (using Postman) and enabled blackout period but the SMS sends came through.
Therefore, the statement of blackout period not being respected in MObileConnect API calls prevails in Transactional SMS sends too.
Moreover, I then decided to use the SendTime
parameter which is available in the Post Message to a number API resource for MobileConnect.
I added the SendTime
parameter to the sample request to send an SMS using the API resource (SMS - Send a Message to a Single Recipient)
Sample request:
{
"definitionKey": "45492e0a-24fb-4413-xxx-xxxxxx",
"recipient": {
"to": "614xxxxxxxx",
"contactKey": "XXXXXX",
"attributes": {
"FirstName": "XX"
}
},
"subscriptions": {
"resubscribe": true,
"SendTime": "2020-09-30 22:30" //Here is the parameter
}
}
I kept getting an error with this additional parameter in the payload but I get success when SendTime
parameter is removed.
Response:
{
"message": "MCMS_UTM_Validation_UnknownFieldName: Unrecognized sms field name 'subscriptions.SendTime'",
"errorcode": 10000,
"documentation": ""
}
With an assumption that maybe SendTime
parameter isn't in the right property so I moved it from subscriptions
to the top-level but it failed.
Concluding to my several tests and document digging attempts, I can say that the blackout period is unsupported for Transactional SMS sends and SendTime
parameter isn't supported either in the API requests.
I'm keen to hear from Salesforce Technical Services team if SendTime
parameter or equivalent parameter exists which is undocumented.
P.S You're better off setting some logic in service cloud to handle these requests or you could leverage the traditional MobileConnect API to respect SendTime
parameters.