Using the PHP Fuel SDK. I could have sworn that I saw somewhere that you can send HTML__BODY, HTML_Body, or something similar to replace the entire content of an Email with unlimited length - bypassing the 2k limit for account attributes and the 4k limit for DE fields. Am I crazy, or it this just another undocumented feature that is known by work of mouth?

3 Answers 3


More information about HTML Attributes can be found at: http://help.exacttarget.com/en/technical_library/web_service_guide/triggered_email_scenario_guide_for_developers/

They are used when passing in HTML which exceeds 2000 characters, specifically for triggered sends.

A profile attribute will need to be created with the HTML__ prefix before it can be used with a triggered send. Also, an email will need to be created which references this profile attribute using standard substitution syntax. For example, if you call your profile attribute HTML__Body, then the email will need to contain:


While it would be possible to pass the entire HTML for an email using this mechanism, I would recommend keeping as much content in the Email as possible then only passing over the pieces that are truly dynamic.

Another option would be to used a TriggeredSendDataExtension with a field that has the length removed. By default, it will put a length of 50 when creating a Text type field in the interface but that value can be removed to make the field accept larger values. When using a Data Extension field instead of a profile attribute, it isn't necessary to prefix the name with HTML__.

  • I can't get that to work. I get: [ErrorCode] => TriggeredSendSubscriberProcessingError [ErrorDescription] => Error Code: 20 - Value provided for HTML__Body is too long. Value is 4451 characters in length, but HTML__Body can hold at most 4000 characters. Apr 23, 2015 at 16:31
  • This is in a data extension. If I add it as an Attribute in Profile Management, the call errors out saying I don't have a valid value - Error Code: 10 - The subscriber is missing required attribute value for HTML__Body Apr 23, 2015 at 16:33
  • When creating the profile attribute for HTML__body, was the option to make it required selected? What about any other constraints on the value such as max/min length?
    – Mac
    Apr 23, 2015 at 16:36
  • If you have a field in a TriggeredSendDataExtension that you want to use to hold the HTML, then naming it with the HTML__ prefix isn't necessary, it only applies to profile attributes. With Data Extension fields, simply don't specify a max length when creating the field to allow for more than 4000 characters.
    – Mac
    Apr 23, 2015 at 16:44
  • If you can update your answer for the data extension, I'll check that as the solution. I didn't even think to leave the length field blank! Apr 23, 2015 at 18:42

I just wanted to note here that the above workaround involving a profile attribute might no longer be possible in Enterprise 2.0 accounts. When I tried setting up a profile attribute as discussed in an enterprise 2.0 account, there wasn't an option to not set a max limit. The only workaround I have found so far is to follow @Mac's suggestion of not using a profile attribute but rather to only use a DataExtension field that has no limit set. Make sure to delete any profile attributes of the same name to avoid getting the following error.

TriggeredSendSubscriberProcessingError,errorDescri‌​ption=Error Code:10
- The subscriber is missing required attribute value for HTML__Body

As indicated by @Mac in the comments, you can do an unlimited-length variable replacement by using a data extension.

  1. Create a Data Extension using Standard Data Extension -> Creation Method: Create From Template -> TriggeredSendDataExtension.
  2. When you are on the Fields tab, create a Text property and remove the Length amount.
  3. Use this Data Extension when creating a Triggered Send in the interface or API.
  4. Be sure to include the property name in your Email and/or Template.

I was able to successfully send a 960k-character text block to that data extension property.

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.