I’ve been reviewing the details of Marketing Cloud API /messaging/v1/messageDefinitionSends endpoint from Message Definition Sends. Due to the limited details of the documentation and I’ve came across the questions below lingering in my mind.

  1. Is this AMPScript fully compliant and supported in Triggered Send Definitions?

  2. Can I use SOAP API to create TriggeredSendDefinition object instead using Email Studio?

  3. Based on the sample JSON payload below found in the documentation, do we support SubscriberAttributes that holds XML document?

        "From": {
            "Address": "code@exacttarget.com",
            "Name": "Code@"
        "To": {
            "Address": "example@example.com",
            "SubscriberKey": "example@example.com",
            "ContactAttributes": {
                "SubscriberAttributes": {
                    "Region": "West",
                    "City": "Indianapolis",
                    "State": "IN"
        "OPTIONS": {
            "RequestType": "ASYNC"
  4. Do we have limit on the number of SubscriberAttributes can be incorporated in the JSON payload?

  5. Do we have limit on the size of JSON payload?

  6. Using the endpoint /messaging/v1/messageDefinitionSends, is it possible if we can send subscribers in batch e.g. 10 subscribers in a single API call?

  7. What's throttling limit for the API call?


To answer your questions:

AMPscript in Triggered Sends

You can use AMPscript in Triggered Sends. That is, you can set SubscriberAttributes as variables, and use those variables in AMPscript, or just use them as inline personalization strings. For example:

var @city
set @city = City

Or inline:

Your city is %%City%%

Profile Attributes

Note that you need to create Subscriber Profile Attributes for each Attribute that you are setting in your Triggered Send API request. You can manage Attributes from the Email app > Subscribers menu > Profile Management.

The maximum length of an attribute is 4,000 characters. However, if you want to store longer values (for example, XML or HTML code), then you can override this by adding an HTML__ prefix (note, two underscores) to the profile name. For example HTML__messageContent.

SOAP API method

Using the REST API, you will need to make a single request for each Triggered Send email that you want to send. However, the SOAP API does not have this limitation. I've created this sample API request which indicates how to send Triggered Send emails to multiple subscribers using the SOAP API.


There are no documented limitations on the number of Attributes or number of Subscribers elements in a SOAP API request, but I would suggest that you limit the number of subscribers to ~50 per request to minimize the payload size and reduce the risk of timeout.

There is a Courtesy Limit of 50,000 requests per day which is a soft capped limit on the number of requests that can be made. If you exceed this request limit, it will not be prevented from making further requests. However, this is monitored by Salesforce and the app (that you created in App Center) may be rate-limited or throttled if requests are accidentally or deliberately abused.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.