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
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:
%%HTML__Body%%
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. Commented 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 Commented 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?– MacCommented 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.– MacCommented 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! Commented 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,errorDescription=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.
- Create a Data Extension using Standard Data Extension -> Creation Method: Create From Template -> TriggeredSendDataExtension.
- When you are on the Fields tab, create a Text property and remove the Length amount.
- Use this Data Extension when creating a Triggered Send in the interface or API.
- 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.