Overview
This method is used to send messages to subscribers in a Group, Division or Organization. The message will be sent to all active subscribers in the specified Group, Division or Organization.
Notes:
A user (APIKey account) can make up to 10 parallel requests or use multiple threads concurrently.
For sending messages, a limit of 100 messages per request is Recommended.
Syntax
C#
[OperationContractAttribute()] SBT.API.DataContracts.MessageCenter.WSMessageResponse SendMessageToOrg( string securityToken, string message, List<WSOrgRecipient> orgCode, string note, string statusUrl )
WSDL
Production: https://ui.solutionsbytext.com/Sbt.App.SetUp/WSServices/MessageWSService.svc?singlewsdl
Staging: https://test.solutionsbytext.com/Sbt.App.SetUp/WSServices/MessageWSService.svc?singlewsdl
Parameters
securityToken
- String[1000] (Required) - SecurityToken to authenticate the user.
message
- string[160] (Required) – Content of the message to be sent.
orgCode
* OrgCode - String[20] (Required) - Organization Code of the group, division or organization.
* List <CustomFields> (Optional) - Customfields contains collection of key - value pairs.
note
- String[500] (Optional) - This is a custom ID which is used to track the message transaction.
statusUrl
- String[200] (Optional) - Status URL that can be used to post message status information to a file.
Return Value
WSMessageResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
Result | bool | True/False whether the call was successful or not. |
ErrorCode | int | For Success/Failure it will generate an error number. |
Message | string | Message related to the error code |
TransactionTicket | string | ID created from message; this can be used in the 'Get Message Status' function to check the delivery status of the message. |
Note | string | Note created from message; this can be used in the 'Get MessageStatusByNote' function to check the delivery status of the message. |
Example
C#
MessageClient messageResult = new MessageClient("MessageWSServiceHttpEndpoint"); string securityToken = txtToken.Text; string message = txtMessage.Text; //Create custom fields List<CustomField> customFields = new List<CustomField>(); CustomField customField = new CustomField(); customField.Key = txtKey.Text; customField.Value = txtValue.Text; customFields.Add(customField); //Create recipients List<WSOrgRecipient> orgCodes = new List<WSOrgRecipient>(); WSOrgRecipient wSOrgRecipient = new WSOrgRecipient(); wSOrgRecipient.OrgCode = txtOrgCode.Text; wSOrgRecipient.CustomFields = customFields.ToArray(); orgCodes.Add(wSOrgRecipient); string note = txtNote.Text; string statusUrl = txtStatusURL.Text; WSMessageResponse wSMessageResponse = messageResult.SendMessageToOrg(securityToken, message, orgCodes.ToArray(), note, statusUrl); //process response if (!wSMessageResponse.Result) { //handle error lblError.Text = wSMessageResponse.Message; } else { //handle success lblError.Text = wSMessageResponse.Message; }
SOAP
Soap Request <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://SBTService/ServiceContracts/" xmlns:dat="http://SBTAPIService/DataContract/" xmlns:ser1="http://schemas.microsoft.com/2003/10/Serialization/"> <soapenv:Header/> <soapenv:Body> <ser:SendMessageToOrg> <!--Required:--> <ser:securityToken>Security Token</ser:securityToken> <!--Required:--> <ser:message>Message content</ser:message> <!--Required:--> <ser:orgCode> <!--Zero or more repetitions:--> <dat:WSOrgRecipient> <!--Required:--> <dat:OrgCode>Organization code (Group, Division, Organization)</dat:OrgCode> <!--Optional:--> <dat:CustomFields> <!--Zero or more repetitions:--> <dat:CustomField> <!--Optional:--> <dat:Key>test key</dat:Key> <!--Optional:--> <dat:Value>test value</dat:Value> </dat:CustomField> </dat:CustomFields> </dat:WSOrgRecipient> </ser:orgCode> <!--Optional:--> <ser:note>custom note</ser:note> <!--Optional:--> <ser:statusUrl>status URL</ser:statusUrl> </ser:SendMessageToOrg> </soapenv:Body> </soapenv:Envelope> Soap Response <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <SendMessageToOrgResponse xmlns="http://SBTService/ServiceContracts/"> <SendMessageToOrgResult z:Id="i1" xmlns:a="http://SBTAPIService/DataContract/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"> <a:Result>true</a:Result> <a:ErrorCode>1281</a:ErrorCode> <a:Message>Message queued successfully</a:Message> <a:TransactionTicket>Transaction ticket</a:TransactionTicket> <a:note>Custom Note</a:note> </SendMessageToOrgResult> </SendMessageToOrgResponse> </s:Body> </s:Envelope>
REST
Method: POST
URL: https://ui.solutionsbytext.com/SBT.App.SetUp/RSServices/MessageRSService.svc/SendMessageToOrg
Sample C# Code:
List<WSOrgRecipient> listOrgRecp = new List<WSOrgRecipient>(); List<CustomField> lstCustomFields = new List<CustomField>(); CustomField customField1 = new CustomField { Key = "Key1", Value = "Value1" }; lstCustomFields.Add(customField1); CustomField customField2 = new CustomField { Key = "Key2", Value = "Value2" }; lstCustomFields.Add(customField2); WSOrgRecipient orgRecipient = new WSOrgRecipient { OrgCode = "OrgCode", CustomFields = lstCustomFields}; listOrgRecp.Add(orgRecipient); var requestdata = new { securityToken = "validsecurityToken", message = "Testing the message", orgCode = listOrgRecp, note = "sample note", statusUrl = "sample statusUrl" }; string data2 = JsonConvert.SerializeObject(requestdata).ToString(); System.Net.WebClient webClient = new System.Net.WebClient(); webClient.Headers["Content-type"] = "application/json"; webClient.Encoding = Encoding.UTF8; var strSendMsgToOrgResponse = webClient.UploadString("https://ui.solutionsbytext.com/SBT.App.SetUp/RSServices/MessageRSService.svc/SendMessageToOrg", "POST", data2); Note:“strSendMsgToOrgResponse” contains the output response as return values
Response:
The response will be in JSON format like below: {" SendMessageToOrgResult": { "Result": true, "ErrorCode": 1281, "Message": " Message sent successfully", "TransactionTicket": "AA13J-0618V-15389-174L0", "Note": " Some Notes", }}