I am looking to build functionality where I can completely build an email body as well as the list of recipients within apex then make a callout to Marketing cloud passing it all the data to then send the email. I am having issues finding documentation to help as I am trying to do this. Currently I am able to callout and authenticate into Marketing cloud and get a refresh token but I can't find documentation on what functions to do the next steps (sending an email). I found messageDefinitionSends but this seems to be to send something from a journey item which is not what I'm looking to do. I am basically looking to send an email using a salesforce report for the recipients as you can do in the UI of Marketing cloud but through the API.

Any help or suggestions are appreciated!


Yes, MessageDefinitionSends is the correct REST API method. Alternatively, you can use the SOAP API as documented here.

With either method you will need to firstly create a new Subscriber Profile Attribute in Email App > Subscribers > Profile Management. Ensure that the attribute name is prefixed with HTML__ (two underscores) as this overrides the max 4000 character length.

Next, you need to create an email and insert %%HTML__YourAttributeName%% where the HTML should appear in your email.

You can then create a Triggered Send Email using the email you just created from Email App > Interactions > Triggered Emails.

Start the Triggered Email and then use the Attribute in your request. For example:

Host: https://www.exacttargetapis.com
POST /messaging/v1/messageDefinitionSends/key:cust_key/send
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN

    "From": {
        "Address": "simon@sausage.com",
        "Name": "Simon Sausage"
    "To": {
        "Address": "example@example.com",
        "SubscriberKey": "example@example.com",
        "ContactAttributes": {
            "SubscriberAttributes": {
                "HTML__emailBody": "<body>hello world</body>"
    "OPTIONS": {
        "RequestType": "ASYNC"
| improve this answer | |
  • Thanks Eliot, I will take a look into this today. How would this work if I was trying to send to multiple subscribers? List them as comma delimited or multiple calls? – Joshua Long Feb 6 '17 at 15:29
  • Additionally I am having trouble locating the "entry event send definition". I am not sure how to locate it to find the ID or Cust_Key. Any help is appreciated. – Joshua Long Feb 6 '17 at 16:44
  • Hi, you can't use this method to send to multiple subscribers. The cust_key value is the external key of the triggered email. You can view this at Email app > Interactions > Triggered Emails > External Key column (in the table). – Eliot Harper Feb 6 '17 at 19:27
  • Thanks!!I'm able to move past that now! Now onto solving my next errors of formatting the request how it wants haha. – Joshua Long Feb 8 '17 at 4:30
  • Great, if I answered your question then please could you mark it as accepted for the benefit of others. – Eliot Harper Feb 8 '17 at 4:31

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.