# developer Marketing Cloud Engagement APIs and Programmatic Languages (marketing-cloud) - Full Documentation
# 1–99 General
| Error | Type | Message | Resolution |
| ----- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Validation | Name already exists | The partner key is already used in the account; use a different partner key. You could also delete the existing item that uses the key value before creating the item. |
| 2 | System - General Exception | Exception occurred during [{Operation}] ErrorID: {ErrorID} | This error can occur when there is a SOAP fault during authentication (login has an unexpected exception). Log error information and contact Salesforce Customer Support. |
| 3 | Validation - UpdateOptions object | | Ensure the value of the Update action is either "update", "create", or "delete." This error occurs when the update action you specified can’t occur because the object to update doesn’t exist or the information you specified to update doesn’t match the information available on the object. To correct this error, create the object before updating it, if it doesn’t exist. Ensure that the data to be updated on the objects exists. |
| 4 | System - GetLoginLocation method | You don't have access to an account with customer key of [CustomerKey]. | Log error information and contact Salesforce Customer Support. |
| 5 | Validation | Cannot perform {method} on objects of type {object} | Use the object with an allowed method. |
| 6 | Validation | No object specified at 0-based index {index} | Don't pass a Null object into the Objects array on the Create method. |
| 8 | | This operation does not support the APIObject of type [type] | |
| 9 | System (SOAP Fault) | Member: [member] is In Maintenance. The operation: [operation] is authorized to process or queue while in maintenance however the objects: [objects] are not. Please remove objects from request and try again or resubmit request once the member is out of maintenance state.Member: [member] is not In Maintenance but Member DB: [MemberDB] on Server: [server] could not be accessed. Member request was denied. | Log the message.Queue messages until Marketing Cloud Engagement is out of the maintenance window or use SOAP API in Asynchronous mode. Use the `GetSystemStatus` call to determine when to continue using Marketing Cloud Engagement. |
| 10 | System (SOAP Fault) | | Log the message.Queue messages until Marketing Cloud Engagement is running again or use SOAP API in Asynchronous mode. Use the `GetSystemStatus` call to determine when to continue using Marketing Cloud Engagement. |
| 11 | Validation (SOAP Fault) | Member: [member] does not have AsyncAPI authorization. Request was denied | Contact Salesforce Customer Support to ensure that the SOAP Web Service API feature is turned on in the account and the account user has the appropriate permissions. |
| 12 | Validation (SOAP Fault) | | Check your username and password. |
| 13 | System (SOAP Fault) | Synchronous request cannot be completed at this time due to database problems. This request was not processed. | Log the error and contact Salesforce Customer Support. |
| 17 | Rate Limited | We noticed an abnormal spike in your call volume so your SOAP Web Service account has been rate limited temporarily. | Verify your current call volume and adjust it to be spread over time. |
# 100-199 Perform and Schedule Method
| Error | Message |
| ----- | ------------------------------------------------------------------------ |
| 100 | The Perform method is not supported for the [object] object |
| 105 | Perform_Unsupported Object Type |
| 106 | Perform_Unsupported Object Type |
| 140 | Schedule_Validation Error |
| 150 | Schedule_Recurrence_Recurrence Range Type Not Specified |
| 151 | Schedule_Recurrence_Start DateTime Not Specified |
| 152 | Schedule_Recurrence_End DateTime Not Specified |
| 153 | Schedule_Recurrence_Occurrences Not Specified |
| 160 | Schedule_DailyRecurrence_Daily Recurrence Pattern Type Not Specified |
| 161 | Schedule_DailyRecurrence_Day Interval Not Specified |
| 170 | Schedule_WeeklyRecurrence_Weekly Recurrence Pattern Type Not Specified |
| 180 | Schedule_MonthlyRecurrence_Monthly Recurrence Pattern Type Not Specified |
| 181 | Schedule_MonthlyRecurrence_Monthly Interval Not Specified |
| 182 | Schedule_MonthlyRecurrence_Scheduled Day Not Specified |
| 183 | Schedule_MonthlyRecurrence_Scheduled Week Not Specified |
| 184 | Schedule_MonthlyRecurrence_Scheduled Day Of Week Not Specified |
| 190 | Schedule_YearlyRecurrence_Yearly Recurrence Pattern Type Not Specified |
| 191 | Schedule_YearlyRecurrence_Scheduled Day Not Specified |
| 192 | Schedule_YearlyRecurrence_Scheduled Day Of Week Not Specified |
| 193 | Schedule_YearlyRecurrence_Scheduled Week Not Specified |
| 194 | Schedule_YearlyRecurrence_Scheduled Month Not Specified |
# 1000-1999 Account Object
| Error | Message |
| ----- | ------- |
| 1000 | Account Invalid Permissions |
| 1001 | User Invalid Permissions |
| 1002 | Business Rule Invalid Permissions |
| 1003 | Subscription Invalid Permissions |
| 1004 | Private Label Invalid Permissions |
| 1005 | Account Required Fields Not Specified |
| 1006 | Account Subscription Required Fields Not Specified |
| 1007 | Account Private Label Required Fields Not Specified |
| 1008 | Account Private Label ID Invalid |
| 1009 | Account Invalid ID Specified |
| 1010 | Account Subscription Required |
| 1011 | Account No Parent ID For Account Type |
| 1012 | Account Invalid Permissions To Set Field |
| 1013 | Account Inherit Address Not Valid |
| 1014 | Account In Read only State |
| 1015 | Account External Key Invalid |
| 1016 | Account Invalid Status |
| 1017 | Invalid Account Type For Operation |
| 1018 | Sender Profile Synch Failed |
# 108000-108999 SMS Member Short Code
| Error | Message |
| ----- | ------- |
| 108000 | SMS Member Short Code Already Exists |
| 108001 | SMS Member Short Code Does Not Exist |
| 108002 | SMS Member Short Code Missing Short Code |
# 11000-11999 AccountUser Object
| Error | Message |
| ----- | ------- |
| 11000 | AccountUser Client ID Not Specified |
| 11001 | AccountUser Invalid Permissions |
| 11002 | AccountUser Does Not Belong to Account |
| 11003 | AccountUser Required Fields Not Specified |
| 11004 | AccountUser Limit Reached |
| 11005 | AccountUser Min Password Length Violation |
| 11006 | AccountUser Password Complexity Violation |
| 11007 | AccountUser Password Contains Username |
| 11008 | AccountUser Password History Violation |
| 11009 | AccountUser Name Required |
| 11010 | AccountUser Email Required |
| 11011 | AccountUser Email Not Valid |
| 11012 | AccountUser Notification Email Not Valid |
| 11013 | AccountUser User ID Min Length Violation |
| 11014 | AccountUser User ID Not Available |
| 11015 | AccountUser Security Question Cannot Contain User ID |
| 11016 | AccountUser Security Answer Cannot Contain User ID |
| 11017 | AccountUser Security Question Cannot Contain Password |
| 11018 | AccountUser Invalid Old Password |
| 11019 | AccountUser Customer Key Exists |
# 110000-110999 SMS Member Shared Short Code
| Error | Message |
| ----- | ------- |
| 110000 | SMS Member Shared Short Code Already Exists |
| 110001 | SMS Member Shared Short Code Does Not Exist |
| 110002 | SMS Member Shared Short Code Missing Short Code |
| 110003 | SMS Member Shared Short Code Missing Shared Keyword |
| 110004 | SMS Member Shared Short Code Short Code Does Not Exist |
| 110005 | SMS Member Shared Short Code Need Shared Short Code |
| 110006 | SMS Member Shared Short Code Shared Keyword Blacklisted |
# 111000-111999 Publication
| Error | Message |
| ----- | ------- |
| 111000 | Publication Invalid Name Error |
| 111001 | Publication Name Already Exists Error |
# 12000–12099 Subscriber Object
| Error | Message | Resolution |
| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 12000 | InvalidEmailAddress | This error occurs when you import an email address that does not use the correct syntax: username@domain.extension. Correct or discard the email address before importing the list. |
| 12001 | SubscriberNotFound | This error occurs when the call attempts to act on a subscriber that doesn't exist. This may occur because the subscriber has not yet been imported or because the call is attempted to act on the wrong subscriber. Import the subscriber if the call is attempting to act on the correct subscriber. Correct the subscriber that the call is attempting to act on if the call is attempting to act on the wrong subscriber. |
| 12002 | TriggeredSpamFilter | This error occurs when you attempt to import an email address that is a known spam trap. Discard the email address before importing the list. |
| 12003 | OnGlobalUnsubList | This error occurs when you attempt to import an email address that appears on the global unsubscribe list. Discard the email address before importing the list. |
| 12004 | InvalidDPV | This error occurs when you attempt to update a subscriber attribute with an invalid value, for example, when attempting to update a subscriber date of birth attribute with their street address. Consult the valid entries for the attribute to determine what values you can enter. |
| 12005 | InvalidChannelMemberID | |
| 12006 | MissingRequiredDPV | This error occurs when you attempt to create or import a subscriber without a value for a required attribute. For example, if you require the first name of every subscriber, you receive this error when attempting to create or import a subscriber without providing the first name value. Include the required values in the subscriber record before importing. Alternatively, you can change the attribute on the subscriber to be optional. |
| 12007 | EmailAddressAlreadyExists | This error occurs when you attempt to create or import a subscriber using an email address that already exists. This error occurs only if you don't use Subscriber Key values to identify subscribers. Discard the duplicate address before importing. Alternatively, you can change the call to update existing subscribers with the new information rather than attempting to create new subscribers. |
| 12008 | MasterUnsubFailed | |
| 12009 | UnsubscribeError | This error occurs when you attempt to unsubscribe a subscriber from a list that does not contain the subscriber. Check the validity of the email address and ensure that you are attempting to unsubscribe from the correct list. |
| 12010 | SubscribeError | |
| 12011 | InvalidDPVs | |
| 12012 | The subscriber has already been master unsubscribed from the system | |
| 12013 | MissingMasterUnsubInfo | |
| 12014 | SubscriberAlreadyExists | |
| 12015 | Subscriber Key Not Found | |
| 12016 | Subscriber.Status: when creating a subscriber the status cannot be "Bounced"Subscriber.Status: when creating a subscriber the status cannot be "Deleted" | |
| 12017 | Invalid Subscriber Type | |
| 12018 | Resubscribe Failed | |
| 12019 | Invalid OYB Account | |
| 12020 | OYB Access Error | |
| 12021 | Subscriber Key Does Not Match Customer Key | |
| 12022 | Subscriber Address Does Not Match Error | |
| 12023 | Invalid Phone Number | |
| 12024 | Invalid Subscriber Address | |
| 12025 | SMS Unsupported | |
# 13000-13099 List Object
| Error | Message | Resolution |
| ----- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| 13000 | List Not Found | Ensure your call includes the correct ListID for the list you wish to access. |
| 13001 | List ID Not Specified | Ensure your call includes the correct ListID for the list you wish to access |
| 13002 | Exception During Delete | Review the error information provided by the exception and resolve the issue before attempting another deletion. |
| 13003 | Salesforce Not Enabled | Ensure that your account includes a properly configured Salesforce integration. |
| 13004 | Unknown List ID | Ensure your call includes the correct ListID for the list you wish to access. |
| 13005 | List Subscriber Error | Ensure that you correctly included all relevant subscriber information. |
| 13006 | On List Already | You can’t add a subscriber to the same list twice. |
| 13007 | Not On List | Ensure that you correctly included all relevant subscriber information. |
| 13008 | Salesforce List Not Allowed | Ensure the list you selected does not use the Salesforce integration. |
| 13009 | List Category Invalid | Ensure that you provide valid category information for this list. |
| 13010 | List Name Too Long | Ensure that your list name does not exceed 50 characters. |
| 13011 | Multiple master lists returned | Ensure that you reference the correct master list for your account. Ids are (ID, OID, Key). |
| 13012 | List can’t Be Updated | You can’t make updates to the selected list. Ensure that you reference the correct list in your call. |
| 13013 | List Validation Error | Ensure that the selected list meets the validation standards for sends. |
| 13014 | Invalid List Status | Ensure that your call includes a valid status for the specified list |
# 14000-14099 Subscriber Validation
| Error | Message |
| ----- | ------------------------------------------- |
| 14000 | List Detective Category Validation Error |
| 14001 | List Detective Category Create Error |
| 14002 | List Detective Category Update Error |
| 14003 | List Detective Category Delete Error |
| 14004 | List Detective Category Not Found |
| 14005 | List Detective Category Name Cannot Be Null |
| 14010 | List Detective Domain Validation Error |
| 14011 | List Detective Domain Create Error |
| 14012 | List Detective Domain Update Error |
| 14013 | List Detective Domain Delete Error |
| 14014 | List Detective Domain Not Found |
| 14015 | List Detective Domain Cannot Be Null |
| 14020 | List Detective Member Validation Error |
| 14021 | List Detective Member Create Error |
| 14022 | List Detective Member Update Error |
| 14023 | List Detective Member Delete Error |
| 14024 | List Detective Member Delete Error |
| 14030 | List Detective User Name Validation Error |
| 14031 | List Detective Username Create Error |
| 14032 | ListDetective Username Update Error |
| 14033 | List Detective Username Delete Error |
| 14034 | List Detective Username Not Found |
| 14035 | List Detective Username ID Cannot Be Null |
| 14040 | List Detective Client ID Cannot Be Null |
# 17000-17999 TriggeredSendDefinition Object
| Error | Type | Message |
| ----- | ---- | ------- |
| 17000 | System | Triggered Send Definition Cannot Be Activated |
| 17001 | System | Triggered Send Definition Cannot Be Canceled |
| 17002 | System | Triggered Send Definition Cannot Be Deactivated |
| 17003 | System | Triggered Send Definition Cannot Be Updated |
| 17004 | System | Triggered Send Definition Cannot Be Deleted |
| 17005 | System | Triggered Send Definition Content Cannot Be Refreshed |
| 17010 | Validation | Triggered Send Definition Object ID or Customer Key Not Found |
| 17011 | Validation | Triggered Send Type Not Found |
| 17012 | Validation | Triggered Send Definiton Object ID Found |
| 17013 | Validation | Triggered Send Definition Email ID or Partner Key Not Found |
| 17014 | Validation | Triggered Send Definition Send Classification Not Found |
| 17015 | Validation | Triggered Send Definition Not Found |
| 17016 | Validation | Triggered Send Definition Email Not Found |
| 17017 | Validation | Triggered Send Definition List Not Found |
| 17018 | Validation | Triggered Send Definition Header Content Not Found |
| 17019 | Validation | Triggered Send Definition Footer Content Not Found |
| 17020 | Validation | Triggered Send Definition From Name Not Found |
| 17021 | Validation | Triggered Send Definition From Address Not Found |
| 17022 | Validation | Triggered Send Definition List Required |
| 17023 | Validation | Triggered Send Definition Auto Add or Auto Update Not Found |
| 17024 | Validation | Triggered Send Definition Delivery Profile Header Content Not Found |
| 17025 | Validation | Triggered Send Definition Delivery Profile Footer Content Not Found |
| 17100 | Validation | Triggered Send Definition Customer Key Invalid |
| 17101 | Validation | Triggered Send Definition Name Invalid |
| 17102 | Validation | Triggered Send Definition Email Subject Invalid |
| 17103 | Validation | Triggered Send Definition Email Partner Key Invalid |
| 17104 | Validation | Triggered Send Definition List Partner Key Invalid |
| 17105 | Validation | Triggered Send Definition From Name Invalid |
| 17106 | Validation | Triggered Send Definition From Address Invalid |
| 17107 | Validation | Triggered Send Definition Keyword Invalid |
| 17108 | Validation | Triggered Send Definition BCC Email Invalid |
| 17110 | Validation | Triggered Send Definition Dynamic Email Subject Invalid |
| 17111 | Validation | Triggered Send Definition Email Invalid |
| 17112 | Validation | Invalid Personalization String |
| 17113 | Validation | Triggered Send Definition Send Window Open Invalid |
| 17114 | Validation | Triggered Send Definition Send Window Close Invalid |
| 17200 | Validation | Send Speed Governor Not Enabled |
| 17201 | Validation | BCC Email Not Enabled |
| 17203 | Validation | Multipart MIME Not Enabled |
| 17204 | Validation | Dynamic Content Not Enabled |
| 17205 | Validation | All Subscribers Access Not Enabled |
# 18000–18999
| Error | Type | Message | Resolution |
| ------ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 18000 | Validation | Triggered Send Object not found | Make sure that you’re passing a `TriggeredSend` object in the API call. |
| 18001 | Validation | The Triggered Send Definition is not completely configured or in a new status | Complete the configuration of the Triggered Send Definition or start the Triggered SendDefinition. |
| 18002 | Validation |
Triggered Send Definition ID/Customer Key don't match (misspelled in code)
Triggered Send must be in an Active or Inactive status
No Triggered Send Definition ID or External key supplied
Triggered Send Definition ID is invalid
The Triggered Send Object must contain the Triggered Send ID or the Customer Key
The TriggeredSendDefinitionID provided is not valid for this account
Invalid Customer Key
The Triggered Send Definition is not completely configured or in a new status
|
Ensure the Triggered Send Definition is started.
Complete the configuration of the Triggered Send Definition or start the Triggered SendDefinition.
Ensure the Triggered Send Definition object contains a populated CustomerKey or ObjectID property.
Ensure the Triggered Send Definition object CustomerKey or ObjectID property is valid.
If the message states "Exception occurred during [CreateTriggeredSend]", contact Salesforce Customer Support.
|
| 18003 | System | Exception occurred during [CreateTriggeredSend] | Contact Salesforce Customer Support. |
| 18004 | System | Exception occurred during [CreateTriggeredSend] | Contact Salesforce Customer Support. |
| 18005 | System | Exception occurred during [CreateTriggeredSend] | Contact Salesforce Customer Support. |
| 18006 | Validation or System |
Unhandled exceptions related to TriggeredSend subscriber processing
Subscriber was excluded by domain exclusion list
Subscriber Owner FromEmail property value is set to an invalid email address
|
If using the FromEmail property on the Subscriber's Owner object, ensure the value is a valid email address.
If this code is on the Subscriber in the SubscriberFailures array on the TriggeredSendCreateResult object, log the subscriber and mark them undeliverable (as the email address' domain in on the Marketing Cloud Engagement spam filter).
Contact Salesforce Customer Support.
|
| 180007 | Validation | The Triggered Send Object must have subscribers associated with it | Add one or many Subscribers to the TriggeredSend object. |
| 180008 | Validation |
Unable to queue Triggered Send request. There are no valid subscribers
Triggered Send request was not queued. There are no valid subscribers
|
If using SOAP, check the SubscriberFailures array on the TriggeredSendCreateResult object.
Ensure all required attributes of the subscriber are passed in.
|
| 180015 | Validation | Triggered Send Data Extension is missing or misconfigured | Modify the triggered send definition to point to an existing triggered send data extension. |
# 200–299 Asynchronous Operation
| Error | Message | Resolution |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `200` | CallsInConversation don’t match previous value in the Conversation. Conversation has been invalidated. | A conversation part has a `CallsInConversation` value that doesn’t match the value specified in the first conversation part. Use the same `CallsInConversation` value in all conversation parts. The value must equal the total number of conversation parts for the conversation. |
| `201` | Async API Collection Total Mismatch. | ― |
| `202` | Missing Required Conversation Property SequenceCode. ConversationID, SequenceCode, and CallsInConversation are required for Conversations Requests. | The request specifies a value for `Options.CallsInConversation`, but doesn’t include the `Options.SequenceCode` property. `Options.SequenceCode` and `Options.CallsInConversation` both default to `1` when neither is specified. |
| `203` | Async API Timeout. | The conversation context timed out. Ensure that you’re using a current and correct conversation ID in your calls. |
| `204` | Async API Error. | The object being created, updated, or deleted failed validation. Check the object syntax and structure in your code. |
| `205` | SequenceCode Out Of Bounds. Valid SequenceCode range is 1 to the value of CallsInConversation. | The `SequenceCode` denotes the sequential order to process the conversation parts. Set `SequenceCode` to an integer greater than or equal to 1 and less than or equal to the value of `CallsInConversation`. |
| `206` | CallsInConversation Out Of Bounds. CallsInConversation is expected to be a positive number. | Set `Options.CallsInConversation` to an integer greater than or equal to 1. |
| `207` | Missing Required Conversation Property ConversationID. ConversationID, SequenceCode, and CallsInConversation are required for Conversations Requests. | `ConversationID` isn’t specified in the `Options` object or its value is null. If the request specifies values for the `SequenceCode` and `CallsInConversation` properties, it must also include a unique value for `ConversationID`. Set `Options.ConversationID` to a non-null string value. |
| `208` | Missing Required Conversation Property CallsInConversation. ConversationID, SequenceCode, and CallsInConversation are required for Conversations Requests. | `CallsInConversation` hasn’t been specified in the `Options` object for the request. `CallsInConversation` is a required property for conversation requests that specify a `SequenceCode`, `ConversationID`, and that have a `RequestType` value of `Asynchronous`. If you didn’t specify a `SequenceCode` in the request, then `CallsInConversation` isn’t required. If you don’t provide values for `SequenceCode` and `CallsInConversation`, they both default to 1 and the request is interpreted as a single-part conversation. For multi-part conversations, you must specify a `CallsInConversation` value that’s greater than or equal to 1, and that equals the total number of conversation parts. |
| `209` | Options.RequestType is required to be set to RequestType.Asynchronous. | Set `Options.RequestType` to `Asynchronous`. |
| `211` | Invalid ConversationID. ConversationID has already been used. | Conversation IDs can’t be reused. This error is returned when a `ConversationID` is reused. It can occur even when the conversations associated with the ID have timed out or produced an error. If the conversation has multiple parts, then each part must use the same `ConversationID`. Set the value of `ConversationID` to a unique value for each set of conversations. |
| `212` | Invalid Conversation. | This general error indicates an unspecified problem with a conversation. The conversation doesn’t have a status of `Closed`, `Processing`, `Error`, `Complete`, or `Timeout`. Contact Global Support for help. |
| `213` | Conversation is in an error state and is no longer able to accept conversation parts. | When a conversation is in an error state, all conversation parts for its `ConversationID` return this message. Closing the conversation results in an error. Review the previous responses, locate the error, fix it, and then resubmit the entire conversation with a new `ConversationID`. |
| `214` | SequenceCode already used for Conversation. Conversation has been invalidated. | `SequenceCodes` within a conversation are unique. After a conversation part has been accepted with a particular `SequenceCode`, that value can’t be repeated in the conversation. This error results in the conversation being in an error state. Set `Options.SequenceCodes` in all conversation parts to sequential values. The first conversation part must have a `SequenceCode` value of 1, and the last part must equal the value of `CallsInConversation`. Resubmit the entire conversation with a new `ConversationID`. |
| `215` | Conversation is closed and cannot accept more parts. | Conversations are closed and ready for processing when all parts have been received. After a conversation is closed, no new parts are accepted. When you receive this error, you don’t need to do anything unless you intended for the rejected conversation part to be part of the closed conversation. |
| `218` | Too many objects. | Limit the number of API objects in each request. For more information, see [API Limits and Guidelines](https://help.salesforce.com/s/articleView?id=mktg.mc_overview_limits_api.htm). |
| `226` | A request may not have ScheduledTime greater than 30 days from now. | Schedule conversation and non-conversation messages 30 days in the future or fewer. |
| `227` | An unsecure response address specified in the SendResponseTo parameter. | Unsecured HTTP endpoints aren't supported. Use an HTTPS endpoint for HTTP callbacks. |
| `228` | A request cannot have a request expiration time before the current time. | Set the `RequestExpirationTime` to a later time so that the request can be added to the processing queue before it expires. |
| `229` | A request cannot have a request expiration time before the scheduled time. | Set the `RequestExpirationTime` to occur after the `ScheduledTime`. |
| `230` | Request Expired, expired time was 01/31/2024 12:01:00 UTC request start time was 01/31/2024 12:02:00 UTC. | Set the `RequestExpirationTime` to a later time. |
| `231` | A request with an expiration time requires a time zone offset. | Set the `RequestExpirationTime` in UTC or with a time zone offset. |
| `232` | A request with an expiration time requires Scheduled Time to have a time zone offset. | When a request includes a `RequestExpirationTime` and a `ScheduledTime`, you must specify the time zone offset for `ScheduledTime`. |
| `233` | A request with expiration time does not support multi-part conversation. | Remove the `Options.RequestExpirationTime` property, or send the request as a single-part conversation. |
# 20000-20099 SalesforceSend Object
| Error | Message |
| ----- | ------- |
| 20001 | Salesforce Send Unknown Email |
| 20002 | Salesforce Send Member Not Set Up |
| 20003 | Salesforce Send No Targets |
| 20004 | Salesforce Send Invalid Target |
| 20005 | Salesforce Send Invalid Exclusion |
| 20006 | Salesforce Send Invalid Email ID |
| 20007 | Salesforce Send Save Error |
| 20008 | Salesforce Send No Email Specified |
# 21000-21099 ContentArea Object
| Error | Message |
| ----- | ------------------------------------------------- |
| 21000 | Saved ContentArea General Error |
| 21001 | Saved ContentAreaInvalid Category Error |
| 21002 | Saved ContentAreaName Not Valid Error |
| 21003 | Saved ContentAreaNo HTML Content Error |
| 21004 | Saved ContentAreaNo Dynamic Content XML Error |
| 21005 | Saved ContentAreaNo Dynamic Content Default Error |
| 21006 | Saved ContentAreaCreate Error |
# 24000-24999 SendClassification Object
| Error | Message |
| ----- | ------- |
| 24000 | SC_SendClassification Not Specified |
| 24100 | SC_SendClassificationNot Found |
| 24101 | SC_Sender Profile Not Found |
| 24102 | SC_Delivery Profile Not Found |
| 24103 | SC_Customer Key Invalid |
| 24104 | SC_Name Invalid |
| 24105 | SC_Burst Sending Not Configured |
# 302000-302999 Template
| Error | Message |
| ----- | ------- |
| 302000 | Template Already Exists |
| 302001 | Template Header Content CustomerKey ObjectID Invalid |
| 302002 | Template Header ContentID, ObjectID, or CustomerKeyRequired |
| 302003 | Template HTML Required |
| 302004 | TemplateID or ObjectID Required |
| 302005 | TemplateLayoutID Required |
| 302006 | Template Name Required |
| 302007 | Template Not Found |
| 302008 | Template Layout Not Found |
| 302009 | Template Category Not Found |
| 302010 | Template Category Invalid |
| 302011 | Template CustomerKey Error |
# 303000-303999 Filter Activity
| Error | Message |
| ----- | ------- |
| 303000 | Filter Activity General Error |
| 303001 | Filter Activity Instance Not Created |
| 303002 | Filter Activity Not Found |
| 303003 | Filter Activity Instance Did Not Run |
# 31000-31999 ExtractRequest Object
| Error | Message |
| ----- | ------- |
| 31000 | Extract Invalid ID |
| 31001 | Extract Unknown ID |
| 31002 | User does not have access to the Extract ID |
| 31003 | ExtractNo Data Extract BR |
| 31004 | ExtractNo Enhanced FTP BR |
| 31005 | ExtractInvalid Parameter Name |
| 31006 | Missing required parameter: [parameter] |
| 31007 | Parameter [parameter] has an invalid value of [value] for parameter of type: [type] |
| 31008 | Input file not found: [file] for parameter: [parameter] |
| 31009 | No file path available |
# 310000-310099 DataExtension Object
| Error | Message | Resolution |
| ------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 310001 | DataExtensionStubValidationErrorNoKeyFound | You receive this error code if you don't provide any of the following three values: ObjectID, CustomerKey, Name. These three values are unique for a data extension for a memberID. |
| 310002 | DataExtensionProcessValidationErrorDeleteObjectNotFound | You supplied no valid keys and the object was not found for a delete operation. |
| 310003 | DataExtensionProcessValidationErrorUpdateNotAllowed | You requested an add-only operation, but the keys provided matched an existing data extension. |
| 310004 | DataExtensionProcessValidationErrorAddNotAllowed | You requested an update-only operation, but the keys provided did not match an existing data extension. |
| 310005 | DataExtensionProcessValidationErrorAddWithObjectID - InvalidEmailAddress | You requested an add-only operation but also provided an ObjectID. ObjectID is generated by the system and can’t be specified by the caller. |
| 310006 | DataExtensionProcessingError - InvalidEmailAddress | A data validation error occurred when trying to save a data extension. The status message might contain more details on the field that caused the error. |
| 310007 | DataExtensionValidationError | This error occurs when data provided for the data extension is not valid. The error message includes more information about the invalid data, and you can change or remove that data to eliminate the source of the error. |
# 32000-32099 VoiceTriggeredSend Object
| Error | Message |
| ----- | ------- |
| 32000 | Missing VoiceTriggeredSend Definiton |
| 32001 | Voice Only One Subscriber Supported |
| 32002 | Voice Error |
# 33000-33999 SMSTriggeredSend Object
**note:** Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.:
| Error | Type | Message | Resolution |
| ----- | ----------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 33000 | Client Validation Error | You must include a SMS Triggered Send Definition | Include a SMS triggered send definition in your API call. |
| 33001 | Client Validation Error | You must include a valid SMS Triggered Send Definition | Check to make sure the SMS triggered send definition you wish to use exists. |
| 33002 | Client Validation Error | You must include a customer key on the SMS Triggered Send Definition | Include a valid customer key in the SMS triggered send definition. |
| 33003 | Client Validation Error | SMSTrigSend_Client Error_Message Missing | Enter a valid message for the send. |
| 33004 | Client Validation Error | The message is too long. | Shorten message to accepted SMS standards. |
| 33005 | Client Validation Error | Invalid characters in message | Remove invalid characters in message. |
| 33006 | Client Validation Error | From address '{0}' Not Found |
If the From Address used belongs to you, contact Global Supportfor assistance in solving the error.
If the From Address does not belong to you, choose a valid From Address.
|
| 33100 | Client Validation Single Send Error | Single sends must include a subscriber | Add a valid subscriber to the send. |
| 33101 | Client Validation Single Send Error | This subscriber does not currently exist, you must include a mobile number | Include a valid mobile number in your send. |
| 33102 | Client Validation Single Send Error | Mobile number does not comply with NANPA | Resolve any error with the phone numbers associated with the send. |
| 33300 | Subscriber Opt Out Error | This subscriber has opted out of receiving messages | Remove the subscriber from the send. |
| 33301 | Subscriber Opt Out Error | This subscriber has globally opted out of receiving messages | Remove the subscriber from the send. |
| 33302 | Subscriber Opt Out Error | SMSTrigSend_Subscriber_InvalidBlackoutTime | |
| 33303 | Subscriber Opt Out Error | SMSTrigSend_Subscriber_InvalidBlackoutTimeZone | |
| 33500 | Critical Error | Unknown SMS Triggered Send Type | Correct the configuration of the SMS triggered send definition |
| 33501 | Critical Error | Critical Error contact your support representative | Contact Global Support- the error has been logged. |
| 33502 | Critical Error | Critical Error unable to send message | Contact Global Support- the error has been logged. |
| 33503 | Critical Error | Critical Error contact your support representative | The application can’t create the send job. Contact Global Support- the error has been logged. |
| 33504 | Critical Error | Critical Error contact your support representative | The application can’t create a new subscriber. Contact Global Support- the error has been logged. |
# 332000-332999 Role Validation
| Error | Message |
| ----- | ------- |
| 332000 | Role Invalid ID |
| 332001 | Role Invalid Action |
| 332002 | Role Invalid Object |
| 332003 | Role Invalid Data |
| 332004 | Role Permission Denied |
# 333000-333999 FeatureConfig Validation Codes
| Error | Message |
| ----- | ------- |
| 333000 | Feature Config Invalid ID |
| 333001 | Feature Config Invalid Action |
# 346000-346999 SMS Shared Short Code
| Error | Message |
| ----- | ------- |
| 346001 | SMSSharedKeyword may not be null; value is required |
| 346002 | SMSSharedKeyword may not be null; value is required |
| 346003 | SMS Shared Keyword Keyword Cannot be Requested |
| 346004 | SMS Shared Keyword Keyword Blocklisted |
| 346005 | ShortCode you have specified is either not a Shared ShortCode or you don't own this Shared ShortCode |
# 350000-350999 Content Validation
| Error | Message |
| ----- | ------- |
| 350000 | Unable to create validation task |
| 350001 | Unknown validation type supplied: [type] |
| 350002 | A valid Email object was not supplied |
| 350003 | Content Validation Send Creation Failed |
| 350004 | Content Validation Send Job Failed |
| 350005 | No valid subscribers were supplied |
| 350006 | All tasks did not complete before maximum time allowed |
| 350007 | Account does not have access to Spam Assassin validation feature |
# 355000-355999 Program
| Error | Message |
| ----- | ------- |
| 355000 | Program ObjectID Required |
| 355001 | Program Invalid ObjectID |
| 355002 | Program Activity Perform |
| 355003 | Program Creation Error |
| 355004 | Program Access Denied |
| 355005 | Program Delete Error |
| 355006 | Program Not Found |
| 355007 | Either ObjectID or CustomerKey is required. Both are empty. |
# 373000-373999 FilterDefinition Object Error Codes
| Error | Message |
| ----- | ------- |
| 373000 | Filter definition create calls cannot specify the ObjectID property |
| 373001 | Either object ID or customer key is required for the DataSource if the DataSource is a data extension |
| 373002 | The data extension specified as DataSource was not found |
| 373003 | Filter definition name is required for Create calls |
| 373004 | Filter definition name already exists. Please specify a unique name |
| 373005 | Filter definition customer key already exists. Please specify a unique customer key |
| 373006 | Either object ID or customer key is required to perform an update |
| 373007 | Filter definition was not found using either the ID or the name |
| 373008 | DataFilter is required for Create calls |
| 373009 | The DataFilter that was provided is invalid |
| 373010 | The type for [object] does not allow the operation specified: [operation] |
| 373011 | The property provided could not be found: [property] |
| 373012 | Invalid filter part. Only filter parts of ComplexFilterPart and SimpleFilterPart are allowed for filter definitions |
# 380000-380999 SMS MT Configuration
| Error | Message |
| ----- | ------- |
| 380000 | SMS MT Configuration Not Found |
| 380001 | SMS MT Configuration Cannot Add Duplicate |
| 380002 | SMS MT Configuration Sender Code Required |
| 380003 | SMS MT Configuration Vendor Required |
| 380004 | SMS MT Configuration Country Code Required |
| 380005 | SMS MT Configuration Vendor Resource Specification Required |
# 388000-389999 TimeZone and Locale Objects
| Error | Message |
| ----- | ------- |
| 388000 | An invalid LocaleCode was supplied |
| 388001 | An invalid ID was supplied |
| 389000 | An invalid ID was supplied |
| 389001 | Time Zone Invalid Abbreviation |
| 389002 | An invalid Name was supplied |
# 396000-396999 Data Folder
| Error | Message |
| ----- | ------- |
| 396000 | No ListAttribute objects found |
| 396001 | Data Folder Invalid Call |
| 396002 | Data Folder Customer Key Exists |
| 396003 | Data Folder Name Required |
| 396004 | Data Folder Content Type Required |
| 396005 | Data Folder Content Type Invalid |
| 396006 | Data Folder Inactive |
| 396007 | Data Folder Invalid Parent |
| 396008 | Data Folder Key Field Required |
| 396009 | Data Folder Key Field Invalid |
| 396010 | Data Folder Description Required |
| 396011 | Data Folder Only Owner Can Move To From Shared Parent |
| 396012 | Data Folder Name Invalid |
# 400-499 Subscription Validation
| Error | Message |
| ----- | ------- |
| 400 | The subscriber could not be found on the specified JobID |
| 401 | The subscriber is already unsubscribed from the specified list |
| 402 | The Parameters array did not contain any values or did not contain any of the Parameters we were looking for |
| 403 | The EmailAddress, SubscriberKey and SubscriberID parameters were not specified or they were empty |
| 404 | The SubscriberKey permission is turned on but only EmailAddress was provided. You MUST supply SubscriberKey and/or SubscriberID |
| 405 | You supplied SubscriberID along with SubscriberKey and/or EmailAddress. These values refer to different subscribers |
| 406 | You supplied SubscriberKey along with SubscriberID and/or EmailAddress. These values refer to different subscribers |
| 407 | You supplied EmailAddress along with SubscriberID and/or SubscriberKey. These values refer to different subscribers |
| 408 | SubscriberNullOrEmpty |
| 409 | SubscriberListNullOrEmpty |
# 4000-4099 Email Object
| Error | Message |
| ----- | ------- |
| 4000 | PersonList.AutomatedEmail: the Email identitfied by CustomerKey could not be found |
| 4001 | Email Does Not Exist |
| 4002 | Email Category ID Invalid |
| 4003 | Email ID Not Specified |
| 4004 | Email Invalid |
# 40000-40999 SenderProfile Object
| Error | Message |
| ----- | ------- |
| 40000 | SP_Sender Profile Not Specified |
| 40100 | SP_Sender Profile Not Found |
| 40101 | SP_From Name Not Specified |
| 40102 | SP_From Address Not Specified |
| 40103 | SP_Customer Key Invalid |
| 40104 | SP_Name Invalid |
| 40105 | SP_From Name Invalid |
| 40106 | SP_From Address Invalid |
| 40200 | SP_Reply Mail Management Business Rule Not Found |
| 40201 | SP_AutoForward Email Address Invalid |
| 40202 | SP_AutoForward From Name Invalid |
| 40203 | SP_AutoReplay Triggered Send Not Found |
| 40204 | SP_Sender Header Email Address Invalid |
| 40205 | Sender Header From Name Invalid |
| 40206 | SP_SENDER_HEADER Business Rule Not Found |
| 40207 | SP_RMManagement Rule Set Not Found |
# 402000-402999 Reply Mail Management Configuration Error Codes
| Error | Message | Resolution |
| ----- | ------- | ---------- |
| 402000 | Reply Mail Management is not activated in your account until the MX Record Redirect Complete is marked as True | Update your MX Record and Set DNSRedirectComplete to True. |
| 402001 | To activate Reply Mail Management Email Reply Name must be complete | |
| 402002 | To activate Reply Mail Management Reply Subdomain must be complete | |
| 402003 | Email reply address subdomain value has to be same with reply subdomain value | |
| 402004 | To activate Reply Mail Management Email From Address must be complete | |
| 402005 | Please enter valid Email Reply Address | |
| 402006 | To activate Reply Mail Management Forwarding Email Address must be complete | |
| 402007 | Please enter valid Forwarding Email Address | |
| 402008 | Reply Mail Management Business rule not enabled | |
| 402009 | You need to set true for at least one of the Unsubscribe terms | |
# 408000-408999 Navigation Tab
| Error | Message |
| ----- | ------- |
| 408001 | Navigation Tab Not Found |
| 408002 | Navigation Tab Invalid |
| 408003 | Navigation Tab Need ObjectID or Customer Key |
# 409000-409999 Audience Builder
| Error | Message |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 409001 | AddEntityHistory: [AddEntityHistory] could not be inserted due to unknown error in repository. Inner exception: [InnerException] |
| 409002 | GetFilterSQL: [GetFilterSQL] could not get filter SQL. Inner exception: [InnerException] |
| 409003 | CreateSingle: No objects found, APIObject was null or not of type AudienceDefinition. Type was [type] |
| 409004 | CreateSingle: Name missing on {0}. This is a required field |
| 409005 | CreateSingle: CustomerKey missing on {0}. This is a required field |
| 409006 | Audience Builder Create Single Null Audience Code |
| 409007 | CreateSingle: {0} already exists for this Name [name] |
| 409008 | CreateSingle: {0} already exists for this CustomerKey [CustomerKey] |
| 409009 | Audience Builder Create Single Audience Code Already Defined |
| 409010 | CreateSingle: [object] could not be created due to unknown error in repository. Inner exception: [exception] |
| 409011 | UpdateSingle: No objects found, APIObject was null or not of type AudienceDefinition. Type was [type] |
| 409012 | Audience Builder Update Single No Audience ID |
| 409013 | Audience Builder Update Single Audience Definition Not Found |
| 409014 | Audience Builder Update Single Segment Code Exists |
| 409015 | Audience Builder Single Audience Code Exists |
| 409016 | UpdateSingle: [object] could not be updated due to unknown error in repository. Inner exception: [exception] |
| 409017 | UpdateSingle: [object] could not be updated due to unknown error in repository. Inner exception: [exception] |
| 409018 | UpdateSingle: [object] could not be found for update, ID [ID] |
| 409019 | DeleteSingle: No objects found, APIObject was null or not of type AudienceDefinition. Type was [type] |
| 409020 | DeleteSingle: [object] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409021 | Audience Builder Delete Single Null Audience Definition |
| 409022 | Audience Builder Delete Single Child Audience Segments |
| 409023 | Audience Builder Delete Single Filter Definition Exception |
| 409024 | DeleteSingle: [object] could not be deleted due to unknown error in repository. Inner exception: [exception] |
| 409025 | Audience Builder Clone Audience ID Not Specified |
| 409026 | CreateSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409027 | CreateSingle: AudienceDefinitionID missing on [object]. Make sure you are setting AudienceDefinitionIDSpecified=true |
| 409028 | CreateSingle: SegmentDefinitionID missing on [object]. Make sure you are setting SegmentDefinitionIDSpecified=true |
| 409029 | CreateSingle: SegmentCode is missing on [object]. Make sure you set a unique SegmentCode |
| 409030 | CreateSingle: FK AudienceDefinitionID does not exsit in table [table] |
| 409031 | CreateSingle: SegmentCode [code] already exists on another [segment]. SegmentCode must be unique |
| 409032 |
CreateSingle: FK SegmentDefinitionID already exsits in table [table]. Segment is already part of this Audience
CreateSingle: [segment] already exists for this AudienceDefinitionID [AudienceDefinitionID], SegmentDefinitionID [SegmentDefinitionID]
|
| 409033 | Audience Builder Create Single Segment Code Exists |
| 409034 | CreateSingle: [object] could not be created due to unknown error in repository. Inner exception: [exception] |
| 409035 | UpdateSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409036 | UpdateSingle: [segment] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409037 | UpdateSingle: [definition] could not be found for update, ID [ID] |
| 409038 | UpdateSingle: Trying to update FK SegmentDefinitionID and it does not exsit in table [table] |
| 409039 | UpdateSingle: Trying to update FK SegmentDefinitionID and already exsits in table [table]. Segment is already part of this Audience |
| 409040 | UpdateSingle: SegmentCode [SegmentCode] already exists on another [segment]. SegmentCode must be unique |
| 409041 | DeleteSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409042 | DeleteSingle: [object] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409043 | DeleteSingle: [object] with ID [ID] could not be found |
| 409044 | DeleteSingle: [object] could not be deleted due to unknown error in repository. Inner exception: [exception] |
| 409045 | CreateSingle: No [type]objects found, APIObject was null or not of type [type]. Type was [type]. |
| 409046 | CreateSingle: Name missing on [object] |
| 409047 | CreateSingle: CustomerKey missing on [object] |
| 409048 | CreateSingle: [object] already exists for this Name [name] |
| 409049 | CreateSingle: [object]already exists for this CustomerKey [name] |
| 409050 | UpdateSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409051 | UpdateSingle: [object] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409052 | UpdateSingle: [object] with ID [ID] could not be found |
| 409053 | UpdateSingle: Name [name] already exists on another [object]. Name must be unique |
| 409054 | DeleteSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409055 | DeleteSingle: [object] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409056 | DeleteSingle: [object] with ID [ID] could not be found |
| 409057 | Deleting [object] had some issues deleting child AudienceSegmentDefinition rows. [object] with ID [ID] could be in an invalid state. Error message: [message] |
| 409058 | Deleting [object] had some issues deleteing the associated FilterDefinition ID [ID]. Error message: [message] |
| 409059 | CreateSingle: FK SegmentDefinitionID does not exsit in table [table] |
| 409060 | CreateSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409061 | UpdateSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409062 | UpdateSingle: [object] could not be found because no ID was specified. Make sure you are setting IDSpecified=true |
| 409063 | UpdateSingle: [object] with ID [ID] could not be found |
| 409064 | DeleteSingle: No [type] objects found, APIObject was null or not of type [type]. Type was [type] |
| 409065 | DeleteSingle: [object] with ID [ID] could not be found |
# 41000-41999 DeliveryProfile Object
| Error | Message |
| ----- | ------- |
| 41000 | DP_Not Implemented Exception |
| 41100 | DP_Source Address Type Not Specified |
| 41101 | DP_Private IP Not Specified |
| 41102 | DP_Content Area Not Specified |
| 41103 | DP_Delivery Profile Not Specified |
| 41104 | DP_Customer Key Invalid |
| 41105 | DP_Name Invalid |
| 41106 | DP_SMIME Signature Certificate Invalid |
| 41107 | DP_Private Domain Set Invalid |
| 41200 | DP_Private IP Invalid |
| 41300 | DP_Content Area Not Found |
| 41301 | DP_Delivery Profile Not Found |
# 42000-42999 EmailSendDefinition Object
| Error | Message |
| ----- | ------- |
| 42000 | ESD_Not Implemented Exception |
| 42001 | ESD_Not Specified |
| 42002 | ESD_Not Found |
| 42003 | ESD_Send Classification Not Found |
| 42004 | ESD_Email Not Found |
| 42005 | ESD_Email Not Specified |
| 42006 | ESD_Email ID Or Partner Key Not Found |
| 42007 | ESD_List Not Found |
| 42008 | ESD_Custom Object Not Found |
| 42009 | ESD_Tracking User Not Found |
| 42100 | ESD_Customer Key Invalid |
| 42101 | ESD_Name Invalid |
| 42102 | ESD_Email Partner Key Invalid |
| 42103 | ESD_Email Subject Invalid |
| 42104 | ESD_Dynamic Email Subject Invalid |
| 42105 | ESD_Email Invalid |
| 42106 | ESD_Invalid Personalization String |
| 42107 | ESD_BCC Email Invalid |
| 42108 | ESD_Send Window Open Invalid |
| 42109 | ESD_Send Window Close Invalid |
| 42110 | ESD_Send Definition List Invalid |
| 42111 | ESD_Tracking Users Invalid |
| 42112 | ESD_Test Email Address Invalid |
| 42113 | ESD_Exclusion Filter Invalid |
| 42114 | ESD_Deduplicate By Email Invalid |
| 42115 | ESD_CategoryID Invalid |
| 42116 | ESD_Null Value |
| 42117 | ESD_Invalid ObjectID |
# 43000-43999 ImportDefinition Object
| Error | Message |
| ----- | ------- |
| 43000 | ImportDefinition Customer Key Not Specified |
| 43010 | ImportDefinition Not Found |
| 43020 | ImportDefinition Object Not Supported |
| 43030 | ImportDefinition Exists |
| 43040 | ImportDefinition Insert Error |
| 43050 | ImportDefinition Update Error |
| 43060 | ImportDefinition Validation Error |
# 435000-435999 Send SMS MO Keyword
| Error | Message |
| ----- | ------- |
| 435000 | You are trying to create a SendSMSMOKeyword that already exists. You may either update this keyword or delete it and recreate it |
| 435001 | SMS Keyword verb is too long |
| 435002 | Send SMSMO keyword message is required |
| 435003 | Send SMSMO keyword customer key cannot contain commas |
| 435004 | Send SMSMO keyword customer key is required |
| 435005 | Send SMSMO keyword script error message is invalid: (error message) |
| 435006 | Send SMSMO keyword message is invalid: (message) |
# 439000-439999 Help MO Keyword
| Error | Message |
| ----- | ------- |
| 439000 | Help MO keyword FriendlyName is required |
| 439001 | Help MO keyword verb cannot contain commas |
| 439002 | Help MO keyword verb belongs to another state: (state named here) |
| 439003 | Help MO keyword verb cannot contain commas |
| 439004 | Help MO keyword verb is required |
| 439005 | Help MO keyword default help message is required |
# 44000-44999 Campaign Object
| Error | Message |
| ----- | ------- |
| 44000 | Campaign Not Implemented Exception |
| 44001 | Campaign Not Specified |
| 44002 | Campaign Not Found |
| 44100 | Campaign Customer Key Invalid |
| 44101 | Campaign Name Invalid |
# 440000-440999 Send Email MO Keyword
| Error | Message |
| ----- | ------- |
| 440000 | Send email MO keyword verb already in use |
| 440001 | Send email MO keyword verb must be 25 characters or less |
| 440002 | Send email MO keyword success message required |
| 440003 | Send email MO keyword missing email message required |
| 440004 | Send email MO keyword failure message required |
| 440005 | Send email MO keyword triggered send required |
| 440006 | {0} contained more than 160 GSM characters or more than 70 Unicode characters. Please modify the message and save |
| 440007 | {0} contained more than 160 GSM characters or more than 70 Unicode characters. Please modify the message and save |
| 440008 | {0} contained more than 160 GSM characters or more than 70 Unicode characters. Please modify the message and save |
# 441000-441999 SMS Triggered Send Definition
| Error | Message |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 441000 |
An ObjectID or a CustomerKey must be provided
ID Not Specified
SMSTriggeredSendDef could not be loaded
Publication was not successfully loaded
|
| 441001 | Object ID and Customer Key don't match |
| 441002 | The ClientID of the Publication doesn't match the ClientID of the Triggered Send Definition |
| 441003 |
A Data Extension is required when sending to a list
A Data Extension is specified but neither CustomerKey nor ObjectID is specified
|
| 441004 | SMS Triggered Send Definition name is required |
| 441005 | SMS Triggered Send Definition publication is required |
| 441006 |
The specified DataExtension could not be loaded by the given ID
The specified DataExtension could not be loaded by the given CustomerKey
|
| 441007 | The specified Content does not appear to be valid |
# 446000-446999 Double Opt In SMS Messages
| Error | Message |
| ----- | ------- |
| 446000 | CustomerKey is Required |
| 446001 | You are trying to create a DoubleOptInMOKeyword that already exists. You may either update this keyword or delete it and recreate it |
| 446002 | Verb cannot contain commas |
| 446003 | Double Opt In Text Invalid |
| 446004 | This verb is already associated with another action |
| 446005 | InvalidPublicationMessage is Required |
| 446006 | InvalidResponseMessage is Required |
| 446007 | MissingPublicationMessage is Required |
| 446008 | NeedPublicationMessage is Required |
| 446009 | PromptMessage is Required |
| 446010 | SuccessMessage is Required |
| 446011 | UnexpectedErrorMessage is Required |
| 446012 | ValidResponses is Required |
| 446013 | You are trying to update a DoubleOptInMOKeyword that could not be found. Try creating this first |
# 447000-447999 Unsubscribe From SMS Publication
| Error | Message |
| ----- | ------- |
| 447000 | CustomerKey is Required |
| 447001 | This verb belongs to another state: (state) |
| 447002 | Verb cannot contain commas |
| 447003 | (key)is Invalid: (error) |
| 447004 | This verb is already associated with another action |
| 447005 | AllUnsubSuccessMessage is Required |
| 447006 | InvalidPublicationMessage is Required |
| 447007 | SingleUnsubSuccessMessage is Required |
# 50000-50999 Notifications
| Error | Message |
| ----- | ------- |
| 50000 | Notification Entity Validation Exception |
| 50001 | Notification Value Type Mismatch Exception |
| 50002 | Notification Serialization Optimization Exception |
| 50003 | Notification Security Exception |
| 50004 | NotificationRelationException |
| 50005 | Notification Execution Exception |
| 50006 | Notification Query Construction Exception |
| 50007 | Notification Lock Timeout Exception |
| 50008 | Notification Invalid Field Read Exception |
| 50009 | Notification Interpretation Exception |
| 50010 | Notification Inheritance Info Exception |
| 50011 | Notification General Operation Exception |
| 50012 | Notification Field is Read-Only Exception |
| 50013 | Notification Field is Null Exception |
| 50014 | Notification Entity Out of Sync Exception |
| 50015 | Notification Entity is Deleted Exception |
| 50016 | Notification Concurrency Exception |
| 50017 | Notification Update Entity Not Found |
| 50018 | Notification Update ID Invalid |
# 54000-54999 User Access
| Error | Message |
| ----- | ------- |
| 54000 | User Access Invalid Permissions |
| 54001 | User Access ID Not Specified |
# 55000-55999 Salutation
| Error | Message |
| ----- | ------- |
| 55000 | Salutation Type or TypeID Not Specified |
| 55001 | Salutation ClientID Not Specified |
| 55002 | Salutation Member Specific ClientID/TypeID Mismatch |
| 55003 | Salutation List Specific Invalid ListID |
| 55004 | Salutation Email Specific Invalid EmailID |
# 56000-56999 Business Rule
| Error | Message |
| ----- | ------- |
| 56000 | Business Rule Save Exception |
| 56001 | Business Rule Name Not Specified |
| 56002 | Business Rule Invalid Business Rule Name |
# 63000-63999 Public Key Management
| Error | Message |
| ----- | ------- |
| 63000 | Public Key Management Record Not Found |
| 63001 | Public Key Management Name Already Exists |
| 63002 | Public Key Management Name Is Missing |
| 63003 | Public Key Management Key Is Missing |
# 67000-67999 Property Definition
| Error | Message |
| ----- | ------- |
| 67000 | Property Definition Min Length Greater than Max Length |
| 67001 | Property Definition Min Length or Max Length Not Defined |
| 67002 | Property Definition No Name |
| 67003 | Property Definition Name Does Not Start With Letter |
| 67004 | Property Definition Name Contains Non-Alphanumeric Characters |
| 67005 | Property Definition Name Is On List Of Restricted Words |
| 67006 | Property Definition Name Already Exists |
| 67007 | Property Definition Missing Picklist Items |
| 67008 | Property Definition Invalid Picklist Item |
| 67009 | Property Definition Multi-select Picklist Not Supported |
| 67010 | Property Definition No Picklist Item Selected |
| 67011 | Property Definition Selected Picklist Item Does Not Match Default Value |
| 67012 | Property Definition Invalid Default Value |
| 67013 | Property Definition Invalid Min Value |
| 67014 | Property Definition Default Less Than Min Value |
| 67015 | Property Definition Invalid Max Value |
| 67016 | Property Definition Default Greater Than Max Value |
| 67017 | Property Definition Default Too Short |
| 67018 | Property Definition Default Too Long |
| 67019 | Property Definition Min Value Or Max Value Not Defined |
| 67020 | Property Definition Not Found |
| 67021 | Property Definition Name Not Found |
| 67022 | Property Definition Error Deleting |
| 67023 | Property Definition ID Not Found |
| 67024 | Property Definition No Change Name |
| 67025 | Property Definition No Change Is Editable |
| 67026 | Property Definition No Change Is Required |
| 67027 | Property Definition No Change Is Send Time |
| 67028 | Property Definition No Change Is Viewable |
| 67029 | Property Definition No Change Min Value |
| 67030 | Property Definition No Change Max Value |
| 67031 | Property Definition No Change Min Length |
| 67032 | Property Definition No Change Max Length |
| 67033 | Property Definition No Change Default Value |
| 67034 | Property Definition Maximum Count Exceeded |
| 67035 | Property Definition Read Only Access |
# 68000-68099 SaveOption Object
| Error | Message |
| ----- | ------- |
| 68000 |
CreateSingle: SaveAction: Delete violation
CreateSingle: SaveAction: Nothing violation
CreateSingle: SaveAction: UpdateAdd violation
CreateSingle: SaveAction: UpdateOnly violation
|
| 68001 |
UpdateSingle: SaveAction: Delete violation
UpdateSingle: SaveAction: Nothing violation
UpdateSingle: SaveAction: UpdateAdd violation
UpdateSingle: SaveAction: AddOnly violation
UpdateSingle: SaveAction: [violation] violation
|
# 69000-69099 Portfolio Object
| Error | Message |
| ----- | ------- |
| 69000 | Portfolio General Error |
| 69001 | Portfolio Customer Key In Use Or Too Long |
| 69002 | Portfolio File Type Not Supported |
| 69003 | Portfolio File Size Too Big |
| 69004 | Portfolio Illegal Chars In File Name |
| 69005 | Portfolio File Name Already Exists |
| 69006 | Portfolio Category Invalid |
| 69007 | Portfolio Filename Too Short |
| 69008 | Portfolio Invalid URL |
| 69010 | Portfolio Business Rule Not Turned On |
# 7000–7099 Send Object
| Error | Type | Message | Resolution |
| ----- | -------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 7000 | Validation | Email failed validation: [validation error] | This error occurs when the email does not contain one of the required elements: An unsubscribe link, A physical mailing address, or Correct syntax for attributes. To correct this error, add the missing required element. |
| 7001 | Validation | An email ID, Partner Key, or body must be specified | Specify an identifier for an existing email (ID or PartnerKey) or specify a body for a new email. |
| 7002 | Validation | A list must be specified | Specify an identifier for an existing list (ID or PartnerKey) or specify subscribers for a new list. |
| 7003 | System | No lists were created to send to | Log the error and contact Salesforce Customer Support. |
| 7004 | System or Validation | Error creating/updating lists. List creations failed: [error message] | Log the error and contact Salesforce Customer Support. |
| 7005 | Validation | Invalid E-mail partner key: [PartnerKey] | Log the error and ensure the correct PartnerKey is set on the Email object. |
| 7006 | System or Validation |
Email Creation Failed
Email Creation Failed: [Email Error Message]
|
Check the properties of the email
This message is generic, therefore it is recommended to create the Email object prior to creating the Send object.
|
| 7007 | System | Unable to load email | Log the error and contact Salesforce Customer Support. |
| 7008 | System | Job Creation Failed | Log the error and contact Salesforce Customer Support. |
| 7009 | | Send Job Creation Failure | |
| 7010 | | Send Account Status Failure | |
# 70000-71999 Custom Object
| Error | Message |
| ----- | ---------------------------------------------------------------------------- |
| 70000 | Custom Object Data Validation General Error |
| 70001 | Custom Object Data Validation Null Value |
| 70002 | Custom Object Data Validation Max Length Exceeded |
| 70003 | Custom Object Invalid Data Extension Key |
| 70004 | Custom Object Null Or Empty |
| 71000 | Returns OK row level results when entire batch times out in singleton mode. |
| 71001 | Custom object data operation aborted before finishing |
| 71002 | Custom object data operation skipped rows to prevent a primary key violation |
| 71003 | Custom object data operation failed due to missing required fields |
| 71004 | Custom object data operation failed due to duplicate fields |
| 71005 | Custom object data operation error due to primary key operation |
| 71006 | Custom object data operation aborted before starting |
# Access Child Account Objects
To execute certain actions or view information related to a child account, use the permissions and roles assigned to a different user. You can also use impersonation to help another user and troubleshoot their problems or issues inside their own account. You need admin access to perform impersonation.
**note:** These examples are for agency or Enterprise 1.0 with Lock and Publish account types. For Enterprise 2.0 accounts, use the ClientIDs property on a retrieve request to specify multiple child accounts for a single call.
## Sample .NET Code
```csharp
//Options
deo.Client = new ClientID();
deo.Client.ID = Convert.ToInt32(txtMID.Text);
deo.Client.IDSpecified = true;
```
## Sample .NET Code - Retrieve Request with Impersonation
```csharp
RetrieveRequest rr = new RetrieveRequest();
rr.ObjectType = "Send";//required
ClientID rrclient = new ClientID();
rrclient.ID = 12345;
rrclient.IDSpecified = true;
RetrieveOptions ro = new RetrieveOptions();
ro.Client = rrclient;
rr.Options = ro;
```
## Sample SOAP Envelope
```xml
XXXXX
XXXXXXXXXXXX12345SubscriberIDPartnerKeyCreatedDateClient.IDClient.PartnerClientKeyEmailAddressSubscriberKeyStatusUnsubscribedDatetrue
```
# Access Token for Server-to-Server Integrations
## Access Token Request
Construct a static endpoint for your request by appending v2/token to the Authorization Base URI provided to you when you created the API integration in Installed Packages. You can’t use legacy endpoints. Request an access token by providing the client ID and secret that you received when you created the API integration in Installed Packages.
When the access token expires, your application must request a new access token using the same v2/token route as before. The lifetime of an access token is 20 minutes.
**note:** The `client_id`, `client_secret`, `access_token`, and instance URL values in this document are fictitious. Replace these values with the appropriate values for your own instance and account.
### JSON Parameters
| Name | Type | Required | Description |
| ------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| grant_type | string | Required | Type of grant. Must be "client_credentials" for server-to-server integrations. |
| client_id | string | Required | Client ID issued when you create the API integration in Installed Packages. |
| client_secret | string | Required | Client secret issued when you create the API integration in Installed Packages. |
| scope | string | no | Space-separated list of data-access permissions for your application. Review [REST API Permission IDs and Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/rest-permissions-and-scopes.md) for a full list of permissions. If you don’t include the scope parameter in the request, the token is issued with the scopes specified on the API integration in Installed Packages. If you include the scope parameter and use an empty string for the values, the token is generated with no scope permissions. |
| account_id | number | no | Account identifier, or MID, of the target business unit. Use to switch between business units. If you don’t specify account_id, the returned access token is in the context of the business unit that created the integration. |
### Example Request
```js
Host: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com
POST /v2/token
Content-Type: application/json
{
"grant_type": "client_credentials",
"client_id": "2bfe9d72a4aae8f06a31025b7536be80",
"client_secret": "9d667c2b7fae7a329f32b6df17926154",
"scope": "email_read email_write email_send",
"account_id": "12345"
}
```
## Important Considerations
Follow these considerations when using the API directly and doing your own OAuth token management.
1. Don’t request a new access token for every API call you make—each access token is reusable, and remains valid for 20 minutes. Making two API calls for every one operation is inefficient and causes throttling.
2. Be careful where you store your client ID and secret. Never expose this information about the client side via JavaScript or store it in a mobile application. Store these credentials securely in your application.
## Access Token Return
Marketing Cloud Engagement returns an access token. Your application must extract the access token and store it safely.
Protect the access token as you would protect user credentials.
### Response Parameters
| Name | Type | Description |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| access_token | string | Acts as a session ID that the application uses to make requests. The maximum length is 512 characters. Lifetime is 20 minutes. |
| token_type | string | The type of token that you requested. This parameter always has the value “Bearer”. |
| expires_in | number | Length of time in seconds that the token remains valid. The value has the value 1080, representing 1,080 seconds, or 18 minutes. The actual access token lifetime is 20 minutes, but the expires_in setting is 18 minutes because we recommend that you refresh your token two minutes before its lifetime ends. |
| scope | string | Scope values assigned to the client ID and secret pair. Returns all scopes for the integration in Installed Packages if the request doesn’t contain scopes. If scopes are included in the request, it returns these scopes, provided that the integration has these scopes in Installed Packages. |
| rest_instance_url | string | Your tenant’s REST base URL for making REST API calls. |
| soap_instance_url | string | Your tenant’s SOAP base URL for making SOAP API calls. |
### Example Response
```js
HTTP/1.1 200 OK
{
"access_token":"69d8034fa6b281ffa1ed622144b66a61.a2894b8614772e68432f89ce29b66873example",
"expires_in":1080,
"token_type":"Bearer",
"rest_instance_url":"mc563xyzgzs27c5t9-42k63xyzgm.rest.marketingcloudapis.com",
"soap_instance_url":"mc563xyzgzs27c5t9-42k63xyzgm.soap.marketingcloudapis.com",
"scope": "email_read email_write email_send"
}
```
### Example Error Response
```json
HTTP/1.1 401 Unauthorized
{
"error": "invalid_client"
"error_description": "Invalid client ID. Use the client ID in Marketing Cloud Installed Packages."
"error_uri": "https://developer.salesforce.com/docs"
}
```
## Related Items
- [Server-to-Server Integrations with Client Credentials Grant Type](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/integration-s2s-client-credentials.md)
- [Web and Public App Integrations with Authorization Code Grant Type](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/integration-app-auth-code.md)
- [Your Subdomain and Your Tenant's Endpoints](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/your-subdomain-tenant-specific-endpoints.md)
# Access Token for Web and Public App Integrations
Construct an endpoint for your request by appending `v2/token` to the Authorization Base URL that you obtained when you created the API integration. You can’t use legacy endpoints. After constructing the token endpoint, request an access token and refresh the token by posting the authorization code to the token endpoint. The authorization code was appended to the redirect URL after the user logged in.
By default, the tokens are revoked when the user signs out. To create a token that isn’t revoked, first select the offline access scope for your app in Installed Packages. You must also include the offline scope in your request. This request generates access and refresh tokens that you can use, even when the user isn’t logged in.
**note:** The `client_id`, `client_secret`, `access_token`, and instance URL values in this document are fictitious. Replace these values with the appropriate values for your own instance and account.
For AppExchange partners, the subdomain or TSSD that’s returned in the `/authorize` response is different from your own subdomain used as part of the `/authorize` request. Use the dynamic end-user subdomain returned from `/authorize` to construct subsequent token requests on your customer’s behalf.
## JSON Parameters
| Name | Type | Description |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `grant_type` | string | Required. The type of grant. For web apps and public apps, set this property to `authorization_code`. |
| `code` | string | Required. The authorization code obtained from the request to the `v2/authorize` endpoint. |
| `client_id` | string | Required. The client ID issued when you create the API integration in Installed Packages. |
| `client_secret` | string | Required for web apps. The client secret issued when you create the API integration in Installed Packages. |
| `redirect_uri` | string | Required. The redirect address. This value must match the redirect URL that was used to request the authorization code. Don’t URL-encode the address for this request. |
| `scope` | string | A space-separated list of data-access permissions for your application. See [REST API Permission IDs and Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/rest-permissions-and-scopes.md) for a list of permissions. The list you specify must exactly match or be a subset of the scopes requested as part of the authorization code request. If you don’t include the scope parameter in the request, the token is issued with the scopes specified on the API integration in Installed Packages. If you include the `scope` parameter and use an empty string for the values, the token is generated with no scope permissions. |
| `account_id` | number | The member ID (MID) of the target business unit. Include this property when your use case requires you to switch between business units. |
## Example Public App Request
```
Host: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com
POST /v2/token
Content-Type: application/json
{
"grant_type": "authorization_code",
"code": "69d8034fa6b281ffa1ed622144b66a61.a2894b8614772e68432f89ce29b66873example",
"client_id": "2bfe9d72a4aae8f06a31025b7536be80",
"redirect_uri": "https://127.0.0.1:80/",
"scope": "email_read email_write email_send offline"
}
```
## Example Web App Request
```
Host: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com
POST /v2/token
Content-Type: application/json
{
"grant_type": "authorization_code",
"code": "69d8034fa6b281ffa1ed622144b66a61.a2894b8614772e68432f89ce29b66873example",
"client_id": "2bfe9d72a4aae8f06a31025b7536be80",
"client_secret": "9d667c2b7fae7a329f32b6df17926154",
"redirect_uri": "https://127.0.0.1:80/",
"scope": "email_read email_write email_send offline"
}
```
## Access Token Return
After the request is successfully validated, the authorization service issues an access token and a refresh token. You can use the tokens returned from the `v2/token` endpoint only with marketingcloudapis.com endpoints. Always keep your access token secret.
## Response Parameters
| Name | Type | Description |
| ------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| `access_token` | string | Acts as a session ID that the application uses to make requests. Maximum length is 512 characters. Lifetime is 20 minutes. |
| `refresh_token` | string | Token that can be used in the future to obtain a new access token. Maximum length is 512 characters. Default lifetime is 30 days. |
| `expires_in` | number | Length of time in seconds that the access token is valid. |
| `scope` | string | List of scopes available for the access token. |
| `rest_instance_url` | string | Your tenant’s REST base URL for making REST API calls. |
| `soap_instance_url` | string | Your tenant’s SOAP base URL for making SOAP API calls. |
## Example Web App and Public App Response
```
HTTP/1.1 200 OK
{
"access_token":"9abd863f388a66e19ac4937b46448b0b.49934712976a934463e95f1e35fca2d1example",
"refresh_token":"8d4f6f77f544019327d10023d162ac01.6c663e9a2eda319ef382d5e2b1269cb7example",
"expires_in":1200,
"token_type":"Bearer",
"rest_instance_url":"mc563xyzgzs27c5t9-42k63xyzgm.rest.marketingcloudapis.com",
"soap_instance_url":"mc563xyzgzs27c5t9-42k63xyzgm.soap.marketingcloudapis.com",
"scope": "email_read email_write email_send offline"
}
```
## Example Error Response
Upon validation failure and for certain errors, the authorization service redirects the user’s web browser to the callback URL in the `redirect_uri` parameter with an error code and description.
```
HTTP/1.1 401 Unauthorized
{
"error": "unauthorized_client"
"error_description": "The client is not authorized to request an authorization code using this method."
"error_uri": "https://developer.salesforce.com/docs"
}
```
## Refresh Access Token
The lifetime of the access token is 20 minutes. When the access token expires, your application must use the same token endpoint and refresh token to request a new access and refresh token pair. Public apps don’t have a client secret.
The body of a refresh request contains the properties in this table.
| Name | Type | Description |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `grant_type` | string | Required. The type of grant. When you request a refresh token, specify `refresh_token` for this property. |
| `client_id` | string | Required. The client ID issued when you create the API integration in Installed Packages. |
| `client_secret` | string | Required for web apps. The client secret issued when you create the API integration in Installed Packages. |
| `refresh_token` | string | Required. The refresh token that was returned in the previous token request. |
| `scope` | string | A space-separated list of data-access permissions for your application. See [REST API Permission IDs and Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/rest-permissions-and-scopes.md) for a list of permissions. The list you specify must exactly match or be a subset of the scopes requested as part of the authorization code request. If you don’t include the scope parameter in the request, the token is issued with the scopes specified on the API integration in Installed Packages. If you include the `scope` parameter and use an empty string for the values, the token is generated with no scope permissions. |
| `account_id` | number | The member ID (MID) of the target business unit. Include this property when your use case requires you to switch between business units. |
This sample request shows how to request a refresh token.
```
POST /v2/token
Host: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com
Content-Type: application/json
{
"grant_type": "refresh_token",
"client_id": "2bfe9d72a4aae8f06a31025b7536be80",
"client_secret": "9d667c2b7fae7a329f32b6df17926154",
"refresh_token": "8d4f6f77f544019327d10023d162ac01.6c663e9a2eda319ef382d5e2b1269cb7example",
"account_id":"12345"
}
```
# Access Token Reference
You can request an access token for the two different grant types. For server-to-server API integrations, review [Access Token for Server-to-Server Integrations](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/access-token-s2s.md). For web or public app integrations, review [Access Token for Web and Public App Integrations](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/access-token-app.md).
# Account
Represents a Marketing Cloud Engagement account.
- To create or update Account subscription data, you need the **Administration | Account | Subscription** permission.
- To create or update Account private label data, you need the **Administration | Account | Private Labels** permission.
- To create or update Account business rule data, you need the **Administration | Account | Business Rules** permission.
- To create or update Account role data, you need the **Administration | Business Units | Manage Roles** permission.
## Using the Account Object
If the authenticated user exists in a Reseller or Enterprise account and there are more subaccounts available, you can create an `Account` object. If the authenticated user is a Core account, you can retrieve object attributes.
## Retrieving an Account Object
Retrieve an account by its `ID` or `PartnerKey`. Use filters to further refine the results, if necessary.
## Embedded Partner Usage
For Embedded partners, use the `PartnerKey` property to associate an external identifier with the account. You can’t change the `PartnerKey` after the Account is created, so we recommend using `CustomerKey` instead.
## Properties
| Name | Data Type | Description |
| ------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AccountType` | [AccountTypeEnum](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accounttypeenum.md) | The type of Marketing Cloud Engagement account. |
| `AccountUsers` | Array of [AccountUser](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accountuser.md) objects | An array of users associated with a specific account. |
| `Address` | String | The street address associated with the account. |
| `BrandID` | Int | The brand tags associated with the account. |
| `BusinessName` | String | The business name associated with an account. |
| `BusinessRules` | Array of BusinessRule objects | Not used. |
| `Children` | Array of [AccountDataItem](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accountdataitem.md) objects | An array of AccountDataItem objects that represent child accounts of this account. |
| `City` | String | The city associated with the account. |
| `Client` | [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md) object | Specifies the account ownership and context of an object. |
| `CorrelationID` | String | Identifies correlation of objects across several requests. |
| `Country` | String | The country associated with the account. |
| `CreatedDate` | DateTime | The date and time when the account was created. |
| `CustomerID` | Long | Not used. |
| `CustomerKey` | String | A user-supplied unique identifier for the account. |
| `DBID` | Int | Not used. |
| `DeletedDate` | DateTime | The date and time of an account’s deletion. The value of this property must be set before the account can be deleted. |
| `EditionID` | Int | Specifies the product edition of the account. |
| `Email` | String | The email address associated with the account. |
| `Fax` | String | The fax number associated with the account. |
| `FromName` | String | Specifies the default email message From Name. Deprecated for email send definitions and triggered send definitions. |
| `ID` | Int | Read-only identifier for an object. Some objects use the ObjectID property as a unique ID. |
| `InheritAddress` | Boolean | Specifies that an Enterprise 2.0 business unit inherits the address from the parent business unit. |
| `IsActive` | Int | Specifies whether the account is active. |
| `IsTestAccount` | Boolean | Specifies whether an account is a test account. |
| `IsTrialAccount` | Boolean | Not used. |
| `LanguageLocale` | [Locale](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/locale.md) object | Defines the language preferences associated with the account. |
| `Locale` | [Locale](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/locale.md) object | Contains the locale information for the account. The default value is `en-US`. |
| `ModifiedDate` | DateTime | The date and time when the account was last modified. |
| `Name` | String | The name of the account. |
| `ObjectID` | String | System-controlled, read-only text string identifier for object. |
| `ObjectState` | String | Not used. |
| `OrgID` | Int | Parent account ID for On-Your-Behalf or Lock-and-Publish accounts. |
| `Owner` | [Owner](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/owner.md) object | Describes the ownership the account in an on-your-behalf account. |
| `ParentAccount` | [Account](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/account.md) object | Provides information about the parent account. |
| `ParentID` | Int | The ID of the parent account for Lock and Publish, On Your Behalf, Enterprise, and Enterprise 2.0 account children and business units. |
| `ParentName` | String | The name of the Parent account. |
| `PartnerKey` | String | A unique identifier provided by partner for an object. This property is accessible only via API. |
| `PartnerProperties` | Array of [APIProperty](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/apiproperty.md) objects | A collection of metadata supplied by the client and stored by the system. These properties are accessible only via API. |
| `Phone` | String | The phone number associated with the account. |
| `PrivateLabelID` | Int | The private label ID for the account. |
| `PrivateLabels` | Array of [PrivateLabel](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/privatelabel.md) objects | Specifies UI modifications to use on child accounts. |
| `ReportingParentID` | Int | Not used. |
| `Roles` | Array of [Role](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/role.md) objects | Collection of roles defined for an account. |
| `State` | String | The state or region associated with the account. |
| `Subscription` | [Subscription](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/subscription.md) object | Contains information about the subscriptions that apply to the account. |
| `TimeZone` | [TimeZone](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/timezone.md) object | Contains time zone information for the account. For Create and Update calls, this property defines the time zone for an Account object. In a Retrieve call, TimeZone indicates which time zone is in effect for the Account object in question. Without a specific time zone, the Account defaults to Central Standard Time. |
| `Zip` | String | The ZIP code associated with the account. |
## Related Items
- [Supported Operations for Objects and Methods](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/supported_operations_for_objects_and_methods.md)
- [Create an Agency Client Object](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/creating_an_agency_client_object.md)
- [Manage Enterprise 2.0 Accounts](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/managing_enterprise_20_accounts_with_the_web_services_api.md)
- [Retrieve Account Object Using the CustomerKey Attribute](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/retrieving_account_object_using_the_partnerkey_attribute.md)
# AccountDataItem
Contains information regarding a child account within a parent account structure.
| Name | Data Type | Description |
| ---------------- | ------------------------------------- | ----------------------------------------------- |
| `AccountType` | [AccountTypeEnum](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accounttypeenum.md) | The type of Marketing Cloud Engagement account. |
| `BrandID` | Int | Specifies brand tags to use on an account. |
| `ChildAccountID` | Int | Specifies the identifiers for a child account. |
| `PrivateLabelID` | Int | Specifies the private label for an account. |
# AccountPrivateLabel
Contains information about the private labels for an account.
## Properties
| Name | Data Type | Description |
| ------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Client` | [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md) object | Specifies the account ownership and context of an object. |
| `ColorPaletteXML` | String | An XML string that defines colors for a private label. |
| `CorrelationID` | String | Identifies correlation of objects across several requests. |
| `CreatedDate` | DateTime | The date and time when the object was created. |
| `CustomerKey` | String | User-supplied unique identifier for an object. This property corresponds to the external key assigned to an object. |
| `ID` | Int | Read-only identifier for an object. Some objects use the ObjectID property as a unique ID. |
| `ModifiedDate` | DateTime | The date and time when the object was last modified. |
| `Name` | String | Name of the object or property. |
| `ObjectID` | String | System-controlled, read-only text string identifier for object. |
| `ObjectState` | String | Not used. |
| `Owner` | [Owner](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/owner.md) object | Describes account ownership of subscriber in an on-your-behalf account. |
| `OwnerMemberID` | Int | Identifies MID of AccountPrivateLabel owner. |
| `PartnerKey` | String | Unique identifier provided by partner for an object. This property is accessible only via API. |
| `PartnerProperties` | Array of [APIProperty](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/apiproperty.md) objects | A collection of metadata supplied by the client and stored by the system. These properties are accessible only via API. |
## Related Items
- [Supported Operations for Objects and Methods](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/supported_operations_for_objects_and_methods.md)
# AccountTypeEnum
The Marketing Cloud Engagement account classifications used on account and business unit objects.
## Values
| Name | Description |
| -------------------- | ----------------------------------------------------------- |
| `BUSINESS_UNIT` | Indicates a business unit account type. |
| `CHANNEL_CONNECT` | Indicates a legacy Channel Connect account type. |
| `CONNECT` | Indicates an advanced account type. |
| `DOTO_MEMBER` | Indicates an on-your-behalf account type. |
| `ENTERPRISE_2` | Indicates an Enterprise 2.0 account type. |
| `EXACTTARGET` | Indicates a core account type. |
| `LP_MEMBER` | Indicates a lock-and-publish account type. |
| `None` | Indicates that no account type is specified. |
| `PRO_CONNECT` | Indicates a legacy Pro Connect account type. |
| `PRO_CONNECT_CLIENT` | Indicates a client account in a legacy Pro Connect account. |
## Related Items
- [Account](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/account.md)
- [AccountDataItem](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accountdataitem.md)
- [BusinessUnit](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/businessunit.md)
# AccountUser
Represents an individual user in an account.
To create or update account user roles, your permissions must allow you to assign or manage roles. To associate business units to the account, you must also have permissions that allow you to manage business units.
## Properties
| Name | Data Type | Description |
| --------------------------- | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AccountUserID` | String | The ID of the account user. |
| `ActiveFlag` | Boolean | Indicates whether the account user is active. |
| `AssociatedBusinessUnits` | Array of [BusinessUnit](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/businessunit.md) objects | Indicates the business units the account user is associated with and is able to access. This property is non-retrievable. |
| `BusinessUnit` | Int | The account identifier of the business unit. |
| `ChallengeAnswer` | String | The challenge answer, which is used to help the user log in to their account if they forget their password. |
| `ChallengePhrase` | String | The challenge phrase, which is used to help the user log in to their account if they forget their password. |
| `Client` | [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md) object | The account ownership and context of the object. |
| `CorrelationID` | String | An ID that correlates objects across several requests. |
| `CreatedDate` | DateTime | The date and time when the object was created. |
| `CustomerKey` | String | A user-supplied unique identifier for the object. This property corresponds to the external key assigned to an object. |
| `DefaultApplication` | String | The application that the account user sees when they log in to their account. |
| `DefaultBusinessUnit` | Int | The account identifier of the business unit that the account user sees when they log in to their account. |
| `DefaultBusinessUnitObject` | [BusinessUnit](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/businessunit.md) object | The default business unit for the account user. |
| `Delete` | Int | Indicates whether an object gets deleted. |
| `Email` | String | The email address for the account user. |
| `ID` | Int | A unique identifier for the object. Some objects use the ObjectID property as a unique ID. |
| `IsAPIUser` | Boolean | Indicates whether the account user is an API user. If the value is `true`, the user's password remains the same until it is actively changed. |
| `IsLocked` | Boolean | Indicates whether the account user can log in to their account. |
| `LanguageLocale` | [Locale](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/locale.md) object | The location and language setting for the account user. |
| `LastSuccessfulLogin` | DateTime | The date and time when the user last successfully logged in. |
| `Locale` | [Locale](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/locale.md) object | Contains the locale information for an Account. The default value is `en-US`. |
| `ModifiedDate` | DateTime | The date and time when the object was last modified. |
| `MustChangePassword` | Boolean | Indicates whether user must change their password the next time they log in. |
| `Name` | String | Name of the object or property. |
| `NotificationEmailAddress` | String | The email address to send notifications to. |
| `ObjectID` | String | System-controlled, read-only text string identifier for object. |
| `ObjectState` | String | Not used. |
| `Owner` | [Owner](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/owner.md) object | Describes account ownership of subscriber in an on-your-behalf account. |
| `PartnerKey` | String | Unique identifier provided by partner for an object. This property is accessible only via API. |
| `PartnerProperties` | Array of [APIProperty](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/apiproperty.md) objects | A collection of metadata supplied by the client and stored by the system. These properties are accessible only via API. |
| `Password` | String | The login password for the user. |
| `Roles` | Array of [Role](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/role.md) objects | Collection of roles defined for an account. |
| `SsoIdentities` | Array of [SsoIdentity](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssoidentity.md) objects | Identifies single sign-on identities associated with the account user. |
| `TimeZone` | [TimeZone](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/timezone.md) object | Contains time zone information for an Account. For Create and Update calls, this property defines the time zone for an Account object. On a Retrieve call, TimeZone indicates which time zone is in effect for the Account object in question. Without a specific time zone, the Account defaults to Central Standard Time. |
| `Unlock` | Boolean | Indicates whether the account user is unlocked. |
| `UserID` | String | The username of the account user. |
| `UserPermissions` | Array of [UserAccess](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/useraccess.md) objects | Not used. |
## Related Items
- [Supported Operations for Objects and Methods](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/supported_operations_for_objects_and_methods.md)
- [Manage Enterprise 2.0 Accounts](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/managing_enterprise_20_accounts_with_the_web_services_api.md)
# Action Component Blocks
Action component blocks are interactive buttons for form submissions and custom actions.
## lightning/actionButton
Interactive button for form submissions and custom actions. Unlike `lightning/button`, which requires a destination URI for navigation, `lightning/actionButton` defaults to form submission behavior and supports custom click handlers.
| Attribute | Type | Description |
| ------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------- |
| `text` | string | Required. The label displayed on the button. The default value is `Button`. |
| `width` | object | Controls how wide the button is within its container. |
| `lightning:horizontalAlignment` | string | Specifies the horizontal position of the button within its column. Possible values are `left`, `center`, or `right`. |
This example shows how to create a centered submit button.
```json
{
"type": "block",
"definition": "lightning/actionButton",
"attributes": {
"text": "Submit",
"lightning:horizontalAlignment": "center"
}
}
```
## Related Items
- [Content Component Blocks](https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/guide/mc-manage-component-blocks.md)
# Activate
## Overview
Activates an account user
### Syntax
Activate()
## Example
This sample code initializes a specific account and activates that account:
```
var acctUser = AccountUser.Init('myAccountUser', 123456789);
var status = acctUser.Activate();
```
# Add
## Overview
Creates a new account user based on the passed parameters
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ----------------------------------------------------------------- |
| **1** | object | **Required** | A JSON object representing the properties of the new account user |
## Example
This sample code adds a new account user and specifies both a default business unit as well as associated business units for the user based on the provided external keys:
```
var newUser = {
"Name" : "Andrea Cruz",
"UserID" : "acruz",
"Password" : "PASSWORD",
"Email" : "acruz@example.com",
"ClientID" : 123456789,
"DefaultBusinessUnitKey": "childBUKey",
"AssociatedBusinessUnits" : ["childBUKey", "grandchildBUKey"]
};
var status = AccountUser.Add(newUser);
```
# Add
## Overview
Adds a new content area to your account and returns an initialized object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | --------------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing the properties of the new content area |
## Example
This sample code adds a content area to your account:
```
var exampleArea = {
"CustomerKey" : "exampleArea",
"Name" : "SSJS Content Area Example",
"CategoryID" : 123456 //Use only if you wish to assign the content area to a specific folder
"Layout" : "RawText", //Use only if you wish to create a specific layout format for a content area
"LayoutSpecified" : true, //Use only if you specify a layout type
"Content" : "This is example content"
};
var addedCA = ContentAreaObj.Add(exampleArea);
```
# Add
Creates a data extension and returns an initialized DataExtension object.
## Syntax
`Add(1)`
## Function Properties
| Ordinal | Type | Description |
| ------- | ------ | ---------------------------------------------------------------------------- |
| `1` | Object | Required. An object that specifies the properties of the new data extension. |
## Examples
This code example creates a sendable data extension that contains four fields. The field `SubKey` is associated with the contact’s subscriber key.
```
var deObj = {
CustomerKey : "SendableDE",
Name : "Sendable Data Extension",
Fields : [
{ "Name" : "SubKey", "FieldType" : "Text", "IsPrimaryKey" : true, "MaxLength" : 50, "IsRequired" : true },
{ "Name" : "SecondField", "FieldType" : "Text", "MaxLength" : 50 },
{ "Name" : "ThirdField", "FieldType" : "Text", "MaxLength" : 50 },
{ "Name" : "DifferentSubKey", "FieldType" : "Text", "MaxLength" : 50 }
],
SendableInfo : {
Field : { "Name" : "SubKey", "FieldType" : "Text" },
RelatesOn : "Subscriber Key"
}
};
var de = DataExtension.Add(deObj);
```
For information about specifying data extension fields, see [Fields.Add](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssjs_dataExtensionFieldsAdd.md).
# Add
## Overview
Adds a new delivery profile to the account and returns the created object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing the properties of the new delivery profile |
## Example
This sample code adds a delivery profile to your account:
```
var newDP = {
"Name" : "SSJS Added Delivery Profile",
"CustomerKey" : "test_delivery_profile",
"Description" : "An SSJS Added Profile",
"SourceAddressType" : "DefaultPrivateIPAddress"
};
var newProfile = DeliveryProfile.Add(newDP);
```
# Add
## Overview
Adds a new email to your account and returns an initialized object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------- |
| **1** | object | **Required** | JSON object containing new email properties |
## Example
This sample code adds an email to your account:
```
var newMail = {
"CustomerKey" : "test_email_key",
"Name" : "Test Email",
"CategoryID" : "123456",
"HTMLBody" : "This is a test email",
"TextBody" : "This is a test email",
"Subject" : "Test Email Subject",
"IsActive" : "true",
"IsHTMLPaste" : "true",
"Status" : "active",
"EmailType" : "HTML",
"CharacterSet" : "US-ASCII",
"HasDynamicSubjectLine" : "false"
};
var myEmail = Email.Add(newMail);
```
The CategoryID value in the above code sample assigns the new email message to a specific folder. To save the new email message to the default folder in your account, remove the CategoryID value entirely.
# Add
## Overview
Adds a new filter definition to your account
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | --------------------------------------------------------- |
| **1** | object | **Required** | JSON object including properties of new filter definition |
## Example
This example code adds a filter definition to your account.
```
var filterObj = { Property : "LuckyNumber", SimpleOperator : "equals", Value : 77 };
var newFD = {
Name : "SSJS Filter Definition"
CustomerKey : "myFilterDef",
Filter : filterObj,
DataSource : {
Type : "SubscriberList",
CustomerKey : "example_list_key"
}
};
var status = FilterDefinition.Add(newFD);
```
This example code adds a complex filter definition.
```
var filterObj = {
LeftOperand: {
Property: "LuckyNumber",
SimpleOperator: "equals",
Value: 77
},
LogicalOperator: "AND",
RightOperand: {
Property: "UnluckyNumber",
SimpleOperator: "equals",
Value: 13
}
};
var newFD = {
Name: "SSJS Filter Definition",
CustomerKey: "myFilterDef",
Filter: filterObj,
DataSource: {
Type: "DataExtension",
CustomerKey: "example_external_key"
}
};
try {
var result = FilterDefinition.Add(newFD);
Write(Stringify(result));
} catch (e) {
Write(Stringify(e));
}
```
# Add
## Overview
Adds a new folder to your account as a child to a previously existing folder and returns the status
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ---------------------------------------------- |
| **1** | object | **Required** | JSON object representing new folder properties |
## Example
This sample code adds a folder to your account:
```
var newFolder = {
"Name" : "Test Add Folder",
"CustomerKey" : "test_folder_key",
"Description" : "Test added",
"ContentType" : "email",
"IsActive" : "true",
"IsEditable" : "true",
"AllowChildren" : "false",
"ParentFolderID" : 123456
};
var status = Folder.Add(newFolder);
```
# Add
## Overview
Adds a new list to your account and returns the initialized list object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ---------------- |
| **1** | string | **Required** | Name of new list |
## Example
This sample code adds a list to your account.
```
var myNewList = List.Add({CustomerKey:"libList",Name:"testLib",Description:"desc"});
```
# Add
## Overview
Adds a new content area to your account and returns an initialized object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | -------------------------------------------------------------------- |
| **1** | object | **Required** | JSON object containing parameters associated with a Portfolio object |
## Example
This sample code adds a new portfolio object to the Portfolio folder specified by CategoryID.
```
var newPortfolio = {
DisplayName : "SSJS Portfolio Object",
CustomerKey : "myPortfolioCK",
CategoryID: 12345,
FileName : "logo.png",
FileLocation : "http://www.example.com/Portals/0/images/global/logo_main.png"
};
var status = Portfolio.Add(newPortfolio);
```
# Add
## Overview
Adds a new query defintion to your account
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | -------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing new query definition properties |
## Examples
This sample code adds a query definition to your account:
```
var queryDef = {
Name : "Example Query Definition",
CustomerKey : "myQueryDef",
TargetUpdateType : "Overwrite",
TargetType : "DE",
Target : {
Name : "Example Target DE",
CustomerKey : "example_target_de"
},
QueryText : "SELECT SubKey, Email, Name FROM [Example Target DE] where FavoriteItemID=77"
};
var status = QueryDefinition.Add(queryDef);
```
This sample code adds a query definition and places it inside a specific folder:
```
var queryDef = {
Name : "Example Query Definition",
CustomerKey : "myQueryDef",
CategoryID : 123456,
TargetUpdateType : "Overwrite",
TargetType : "DE",
Target : {
Name : "Example Target DE",
CustomerKey : "example_target_de"
},
QueryText : "SELECT SubKey, Email, Name FROM [Example Target DE] where FavoriteItemID=77"
};
var status = QueryDefinition.Add(queryDef);
```
# Add
## Overview
Adds a new send to your account and returns the status of the send's creation
### Syntax
Add(1, 2, 3)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------------------------------------------------ |
| **1** | string | **Required** | CustomerKey of email message to associate with send |
| **2** | array | **Required** | Array of list IDs to associate with send |
| **3** | string | **Required** | Options to associate with the send, such as a different message subject or send time |
## Examples
This sample code adds a send to your account, which sends the specified email message to the provided lists:
```
var status = Send.Add("test_email", [ 12345, 12346 ]);
```
This sample code adds a send to your account, which sends the specified email message to the provided lists using the additional From name, From email address, and subject specified in the options variable:
```
var options = {
FromName : "JSON Specified Name",
FromAddress : "aruiz@example.com",
Subject : "JSON Test Mail"
};
var status = Send.Add('test_email', [ 12345, 12346 ], options);
```
# Add
## Overview
Adds a send classification to the account
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ----------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing new send classification properties |
## Example
This sample code adds a send classification to your account:
```
var newSC = {
CustomerKey : "mySCKey",
Name : "SSJS Test SC",
Description : "Test SSJS description",
SenderProfileKey : "mySPKey",
DeliveryProfileKey : "myDPKey"
};
SendClassification.Add(newSC);
```
# Add
## Overview
Adds a new sender profile to the account and returns the created object
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------------------ |
| **1** | object | **Required** | JSON object representing new sender profile properties |
## Example
This sample code adds a sender profile to your account:
```
var newSP = {
"Name" : "SSJS Added Send Profile",
"CustomerKey" : "test_send_profile",
"Description" : "An SSJS Added Profile",
"FromName" : "Andrea Cruz",
"FromAddress" : "acruz@example.com"
};
var newSenderProfile = SenderProfile.Add(newSP);
```
# Add
## Overview
Adds a new subscriber to your list and returns a status
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing the properties of the new subscriber |
## Example
This sample code adds a subscriber to the specified list:
```
var newSubscriber = {
"EmailAddress": "test.008@example.com",
"SubscriberKey": "20100730001",
"EmailTypePreference": "Text",
"Attributes":{"First Name": "test.008", "Last Name": "test.008" },
"Lists": {"Status": "Active", "ID": 12345, "Action": "Create"}
};
var status = Subscriber.Add(newSubscriber);
```
# Add
## Overview
Adds a new template to your account and returns the status of the operation
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------------------------- |
| **1** | object | **Required** | JSON object representing properties of the new template |
## Example
This sample code adds a template to your account:
```
var myTemp = {
"CustomerKey":"test_template",
"TemplateName":"SSJS Test Template",
"LayoutHTML":"this is some HTML"
};
var status = Template.Add(myTemp);
```
# Add
## Overview
Adds a triggered send to your account and returns an initialized object if successful
### Syntax
Add(1)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ------------------------------------ |
| **1** | string | **Required** | Properties of the new triggered send |
## Example
This sample code adds a triggered send to your account:
```
var newTSD = {
"Name" : "Test TSD",
"CustomerKey" : "ssjs_tsd_key",
"FromName" : "Test From Name",
"FromAddress" : "me@example.com",
"EmailID" : 12345,
"SendClassificationID" : 54321
};
var tsd = TriggeredSend.Add(newTSD);
```
# Add a User to an Account
To give a new person access to your account and specify the actions that the user can perform, add a user to your account. You can perform this action via the SOAP API to add new users to accounts owned by embedded partners. You can also use this code to add users from information taken from third-party sources, such as HR systems.
## Sample SOAP Envelope
This example includes the required attributes for the user by using the `AccountUser` object.
```xml
Createhttps://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmxYOUR_ACCESS_TOKEN12345ACRUZXXXACRUZacruz@example.comtruetruetruetruetruetruetrue123453truetrueACRUZ
```
## Related Items
- [Add a User](https://help.salesforce.com/articleView?id=mktg.mc_overview_add_a_user.htm)
- [Roles and Permissions in Marketing Cloud Engagement](https://help.salesforce.com/articleView?id=mktg.mc_overview_roles.htm)
- [AccountUser Object](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/accountuser.md)
# Add an Asset
Create an asset and add it to the Einstein Content Selection asset pool. Asset class or type, and custom attributes are created implicitly if they don’t exist.
## Method and Endpoint
```
POST "/ecs/ecs/external/api/v1/asset"
```
## Request Body Parameters
| Name | Type | Description |
| ------------------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| availability | string, enum | Required. Set whether the asset can be selected. Possible values are: Y, N |
| content_builder_id | string, Content Builder ID | Instead of loading the image from a hosted URL or Data URL, create an image for this asset using HTML from the specified Content Builder item. |
| custom | map, string → string | The Asset Attributes to associate with this asset. New Attributes are created implicity if they don't exist. For example: locale: JP and segment: A3 |
| display_time_zone | string | The timezone to show in-app timestamps for this asset. For example: UTC, Eastern Time (US & Canada) |
| end_datetime | datetime, ISO-8601 | The date and time the asset is no longer allowed to be selected. For example: 2021-07-23T13:45:15Z |
| fallback | string, enum | Set whether the asset can be selected as a fallback when rules disqualify all other content. Possible values are: Y, N |
| image_url | string, URL, data URL | Required. Can be either a web-accessible URL hosting an image or a base-64 encoded Data URL containing image data. |
| key | string | Required. The asset's name. Must be unique to the account. |
| start_datetime | datetime, ISO-8601 | The start date and time the asset is allowed to be selected. For example: 2021-06-23T13:45:15Z |
| type | string | Required. Name of the asset's asset_class. |
| url | string, URL | The redirect link to use when an asset is clicked. |
## Example Request
```
POST "/ecs/ecs/external/api/v1/asset"
BODY:
{
"key": "Einstein Content",
"type": "Icon",
"availability": "Y",
"fallback": "N",
"start_datetime": "2021-06-23T00:00:00Z",
"end_datetime": "2221-06-23T23:59:59Z",
"display_time_zone": "Osaka",
"url": "https://www.example.com/einstein-content",
"custom": { "locale": "JP" },
"image_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAAXNSR0IArs4c6QAACJBJREFUaAXtWn1sHEcVn7d7Pn8kcMRJSgkgaCoQLQ1pVRAhCiRqQSpV2ioqjWigFQXUUPk+9i6OE0soWG1JwjX23dm+SlAhGlGRJuUPSosErRBEIqBSSptIFc0/2H+gpGpiJ07l5Hx3O8Pvnb32er23d3s5Ly4w0mVm3nsz7/32vTdfMQmUnp7YR4pTKk1CbFFKfYhpS6UQ0VklxB/DrdSTTg/9y69dxOBKU+okgHX6HRykPICOt7TSer8gNfbcUgfHH5JtZFv9flSNw9LvoP+UfCO2hpw5lx3MY56lU4x4F1JwujhttehetebF/G/g/R/ge92LoaAB7EokNpnC3I1E/5xSQgkSf9OF/kR/LvenxbAl0BBNGV29UpjHsebfPb1gqDXcZhrz3tMA2XNK0eMAtuCjMo15LNNskAuUNVuBNR+HpRs4i888lrH6zaoDA8g5V8voemRqzeHkBwbQqditX1l03BhXQQsMII4jr9a0EytqTRmfAoEB5K0ANwJZzT7msUw1fqP0wADyPkekvu8GkmnMW4y9MDCA7IGBbP6AJvTNgujXAHWWf9xmGvMa9ZLXuIZPMslksl2YpRM4ifwzkxv+mpcSO2/GS4tyarHrsdoNe1CZpR6ctG7B/nWvYcTqBmgpDqpuCCA/c+CO3WMZSVIe6uvra7P6S6luKETLBXkQIDosINgCPnZx/DyfQh6zaG41PkJ44sL5n+KIfTnSueoR9Kuuqm7jG6H59mAqFdsAq3YsVKb2Tnt2IceiTFwYexQh/U2E9sMA+j2L7lVjIZr04tfi+QII40iaMotJ3Z41OrwehaYP0sp21lT7DcOo+USpt7StBcgMdJZqgXHj+wrRXUbsGwivz7tNVKEpdb9hRPPZ7PAJuwxCcfnEhXOHcRSb/aBoR0iUc5DbzrLJROygUDKBC+Ik9sQ3oOfnkc7VRzH2HbBTyWTsD8pUz7GsnzKrsNYgKOpAaHHueRacVXKQnTfvpfGxDACtdQ5ERNyXisfvZDoppSOXsVCplZC9He2nJ8bPnQFwvoVQJjP0Ap4AH3DOUas/zxAvYeTPHij+sJcM8/ARbkV+PWTJpRJdW6WQ37X6zlqSmT927JguNXrFyQPIFUrJdMqIPcm8gdywbw+S/VmOJ3F7NkylUh9VZvE0vmQ7y9QqROIdvELfImVbuVwqnMKt/YOzY4guov0qkngUmRwWUnyhnfQvTYVCbWapMDor52iQrn81kxn8rYNcs1tXDgIcv37XBY41wtPXFAvqNNGVAly6yrICwN+MrFj1GYTwgu0BtPDF8YIlurA25eMgNh9gKhXfKMvm1xdqrElZDqDL7VLof+rSpbH1oL2eSkSxXYgtyL7TbR3iaQA8l0xEJ/Ehl9nHWG0OfSw0m5GLxy1aPbVnDnJyS9PkbaFZRVdl9RTPyxOi/g7n2JVJOQrA94Ey7qlIyrs8+S5MzxxMJWIPSiUPu4zzTcJeVsSgXwpNez4S6fwVPFZMxqNvwDPsUVwqsP4qVYRXsZK6F3yVtxXRW6TEGuTvFL7Ty6SLo/DqX91HCFE1B7u7u5eVi4WmXGFg2PN6i0geOjQ8YjcEoPLw4k+YhpqjqSq4iowQ10LwWnwEDKj8s06Z2CMTXYORFat34aOVmWovVQGapSt7IbjGLtxIGwvLDzK5/KM8lkMTOX07mfJbuOF+Gd5b3ciczjHI7Ti2prOgL9inqwKE8MPOiXz3iY7grlgBx8cyhPwRgNo8/fHR8j2h64ASImFfu9B/5satusjgyPS624B6afDcu4JCu1h+z549EaHKLzG4esf7kAshNDYWlXs0VPXg2uvpnpER2oAn59lrkVOpJK2qE0JKe/uJbJbDRhQLk/0w4ibn+Cb1seaIu8rCvNOIR9Mf6Fy1z56LVQHG40NTMOD41RqRTEY/i0Pyt692njrG68jyXpxfb0Sub0PYVj5+1RCtY8L6RKTgmz8W0mAKUN2DA0ElNVjj4gNU4tPBQJvTQlI91tMTrewAhOPRGbi05sVzbrh3iwSdzAwO32yX6u6OXmeWxG1YNh/BQnOrnbdYbSxyg9ieEmQkor/AAnB/ExVdRkQe1IT2Wusy85UDB/Jj1tx8LfrLieMDvG9ZNKtGDL+Acb9HTF2npNiKfLoePJzpaBQBjqsU/R12FkHYAln+/0XP6LM+9GL/IRAbeEppWn8mk3uGEx8rnIZN+WUYeNssOKInsV92WX2ue3u7VprmsmI6nX7XTud2Mt61DWe7Y5jDdZGEzrda2ugr/EdDleTnx6LF/FMuKHwJr2j3TkxMmEqWnoUn7raMBuhJXKGuAXB4vv5ixGP9QsiUcwTmezFCoQf6slm+dwa3urEyt3SwQon5fspew/h4QZZGrDHIuQkS2u6B3NBTFo1rzzi2C15tG/vhOrdcV6Q8brnVtR7MZkcB6vycBP3m/StWHp7rT7dcY9gp1Iw+HpW2VnZej8lSRhTvphTO5Ib4oF8pfIYlWT6qkx49lMudsuiVWhHyU1VeDJCPO/Byx4ATdpnAPLhh4+Y06eGbdE3bQaT9CKH5mt0QbkspHsK/+M0VTZU3YWv5YlmZd8xRZ1pkXa/oDLLth1pI+7FTJjAPbt++3YTyN2d+R9iQ3YZxMwzfxu2ZwiEWtjpch1rFiVJB/JlC9Ds7ndsAfhFJtu+GG9Yd3rlzZ0MPw845F72PUCO7EqyuHZXbiJ0402aeC3kead5k8zgBd3p7Y6sLl9WzULsJrvkHYJ7EcXk9vLQeS/8VLEa7s9l83q9ZgeVgLcOmJsV+3vzxCzMorLgPVmoMBK1dSOqHxzyfNNx0LBmAktT73Ayco6lWIcbm5eccr3pryQDUhHqmuplYI4me6+sbuuQl48ZbMgAHcvkXW4T+SWwln9AEDWEbGcFGvj8UprVhreVGHOd2uAH4n6f9GydjfCNTHqEaAAAAAElFTkSuQmCC"
}
```
## Example Response
```
CODE: 201 CREATED
BODY:
{
"key": "Einstein Content",
"uuid": "cf868607-9eec-4e2b-ae87-3d2ca7ed7911",
"type": "Icon",
"url": "https://www.example.com/einstein-content",
"image_url": null,
"custom": {
"locale": "JP"
},
"created_at": "2021-08-02T22:20:52.861Z",
"updated_at": "2021-08-02T22:20:53.215Z",
"availability": "Y",
"fallback": "N",
"file_ext": "png",
"status": "ready",
"image_updated_at": "2021-08-02T22:20:53.162Z",
"image_processing_completed_at": "2021-08-02T22:20:53.211Z",
"image_checksum": "1dc357753245e9b30fa20dde079734f9-1",
"asset_class_id": "de8f1883-5dec-4793-917f-3ca95306528c",
"content_builder_id": null,
"archived": false,
"ect_tags": null,
"start_datetime": "2021-06-23T00:00:00.000Z",
"end_datetime": "2221-06-23T23:59:59.000Z",
"display_time_zone": "Osaka",
"image_link": "https://ecs-asset-images-qa.s3.us-west-2.amazonaws.com/3612/21575198/f/cf868607-9eec-4e2b-ae87-3d2ca7ed7911.png?v=1dc357753245e9b30fa20dde079734f9-1",
"display_time_zone_name": "Asia/Tokyo",
"display_start_datetime": "2021-06-23T09:00:00+09:00",
"display_end_datetime": "2221-06-24T08:59:59+09:00"
}
```
# Add an Attribute
To retain more information about your subscriber, add an attribute. An attribute gives you more information to use when targeting or excluding subscribers from your sends.
You need to know this information to create an attribute:
- The name of the attribute
- The data type of the attribute
- Any applicable default value
- Whether the attribute accepts send time values
- Any required picklist options
- Minimum and maximum lengths
- Whether the attribute is required
- Whether the attribute is read-only
- Whether the attribute is hidden
You can’t create an attribute using the name of an existing attribute. After an attribute is added to a list, it’s available in all lists.
# Add Column to a Data Extension
To capture additional information in an existing data extension, add a column to it.
## Sample SOAP Envelope
```xml
Updatehttps://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmxYOUR_ACCESS_TOKENb9bdce33-b849-4298-a288-462535f8e145New Field200true
```
# Add Subscribers to a List
You can use SOAP API to add subscribers to a subscriber, publication, or suppression list. You can add a subscriber to a list when you create their subscriber record, or you can update an existing subscriber to add them to a list.
If your use case requires you to add a batch of subscribers to a list, start by performing an `Update` operation. After that, perform a `Create` operation to create the contacts that weren’t found during the `Update` operation.
## Sample SOAP Envelopes
Use these sample SOAP envelopes as guidelines for creating requests that suit your use case.
### Create a Subscriber and Add to List
This example shows how to create a subscriber and add that subscriber to a list.
```xml
Create
https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx
YOUR_ACCESS_TOKENdangelo.cunningham@example.comdangelo.cunningham@example.com99887766First NameD'AngeloLast NameCunninghamCompanyDreamHouse Realty
```
The body of the SOAP response contains information about the subscriber that you created and the list that they were added to.
```xml
OKCreated Subscriber.011069745562206d1db-0629-4a9d-8529-8036c06943a9OK
```
### Add Existing Subscriber to a List
Add an existing subscriber to a list by updating the subscriber record. This sample request updates the `List.ID` property for a specified contact.
```xml
Update
https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx
YOUR_ACCESS_TOKENdangelo.cunningham@example.com33445566
```
The response body includes information about the updated subscriber.
```xml
OKUpdated Subscriber.094e3b699-0501-443a-82e0-c717154f5c1dOK
```
# Add Subscribers to a Lock and Publish Account
Share content from a central administrator account to lock and publish accounts, which can edit selected content areas and send emails to their subscribers. Adding subscribers to a lock and publish account ensures that account users can send only to specific subscribers, and can only do so using approved content.
## Usage
Use this code example to construct your own calls to add subscribers at the lock and publish account level. You can use ClientID or ChannelMemberID to identify the account in which to add the subscriber.
```xml
USERNAMEPASSWORD123help@example.com123
```
# Add Subscribers to an On-Your-Behalf Account
Use On-Your-Behalf accounts to send messages from a central managing account. Messages that you send in this way include the From address of the On-Your-Behalf user.
When you add subscribers to an On-Your-Behalf account, messages sent from the managing account target the appropriate subscribers.
## Sample SOAP Envelope
This example code creates a subscriber in an On-Your-Behalf account.
```xml
Createhttps://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmxYOUR_ACCESS_TOKENhelp@example.comChannelMemberID123123
```
## Related Items
- [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md)
# Add()
Returns the sum of two numbers.
## Availability
Marketing Cloud Engagement
✅ Yes
Marketing Cloud Next
✅ Yes
This function became available in Marketing Cloud Next during the Summer ’26 release (API version 67.0).
## Syntax
```
Add(number1, number2)
```
The `Add()` function has two parameters:
- `number1` (number): Required. The first number to add.
- `number2` (number): Required. The second number to add.
## Usage
To use this function, pass it two numbers. The numbers can be positive or negative integer or decimal numbers.
```
%%=Add(512,256)=%%
```
The function outputs the sum of the two numbers: `768`.
# Adding AMPscript to Your Content
There are three ways to add AMPscript code to your content: by using inline code, by adding code blocks, or by using tag-based scripting. The first two of these methods use special delimiters to denote the beginning and ending of the code that you want Marketing Cloud Engagement to interpret. In the third method, you delineate the AMPscript code with `
```
# Adding Data to Data Extension Object
Add more data to an existing data extension object when you add new records to your data extension.
## Usage
This code example contains a SOAP envelope that you can use to add data to an existing data extension.
```xml
XXXXXXXXXXDefinition_KeyEmailAddressjohndoe@example.comFirstNameJohnLastNameDoePrimaryKeyPrimaryKey
```
# Additional Resources for Marketing Cloud
Marketing Cloud Next brings the power of the Salesforce platform to your team’s marketing efforts. Because it’s a tightly integrated component of the Salesforce platform, you can quickly learn important concepts by using existing content.
- [Documentation Resources](https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/guide/mc-resources-documentation.md)
- [Salesforce Platform Developer Tools](https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/guide/mc-resources-tools.md)
- [Learning Resources for Marketing Cloud](https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/guide/mc-resources-trailhead.md)
- [Marketing Cloud Next Video Library](https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/guide/mc-resources-videos.md)
# AddMscrmListMember()
Adds a record—such as a lead, contact, or account—to a Microsoft Dynamics CRM marketing list.
## Availability
Marketing Cloud Engagement
✅ Yes
Marketing Cloud Next
❌ No
## Syntax
```
AddMscrmListMember(recordGuid, listGuid)
```
The `AddMscrmListMember()` function has two parameters:
- `recordGuid` (string): Required. The GUID of the record that you want to add to the marketing list.
- `listGuid` (string): Required. The GUID of the marketing list that you want to add the record to.
## Usage
To use the function, pass it the GUID of the record that you want to add, and the GUID of the marketing list to add the record to.
This example adds a lead, contact, or account to a marketing list.
```
%%[
Var @guid, @list_guid
Set @guid = '58318475-9054-41e0-8b07-b66cedef9e72'
Set @list_guid = '1ba5b049-e65f-4576-b8c7-78fbcd9124eb'
AddMscrmListMember(@guid, @list_guid)
]%%
```
The function doesn’t return a value.
# AddObjectArrayItem
## Overview
Creates an item within an array for a specified API object
### Syntax
AddObjectArrayItem(1, 2, 3)
### Function Properties
| Ordinal | Type | | Description |
| ------- | ------ | ------------ | ---------------------------------- |
| **1** | string | **Required** | Object on which to set array value |
| **2** | string | **Required** | Name of array |
| **3** | string | **Required** | New array value |
## Example
```
```
# AddObjectArrayItem()
Adds an object to an array in a Marketing Cloud Engagement API object.
## Availability
Marketing Cloud Engagement
✅ Yes
Marketing Cloud Next
❌ No
## Syntax
```
AddObjectArrayItem(apiObject,
arrayProperty,
itemToAdd)
```
The `AddObjectArrayItem()` function has three parameters:
- `apiObject` (API Object): Required. The API object that contains the array that you want to modify.
- `arrayProperty` (string): Required. The array property to receive the new item.
- `itemToAdd` (string): Required. The item to add to the array.
## Usage
This example adds the attribute `myNewAttribute` to the `Attributes` array on the `mySubscriber` API object.
```
%%[
AddObjectArrayItem(@mySubscriber,'Attribute',@myNewAttribute)
]%%
```
Address
# Address
Validates email addresses to reduce the likelihood that sending an email to an address results in a bounce or spam complaint.
This table lists the use cases that the Email Address Validation API supports.
| Supported Use Case | HTTP Verb | URI |
| --- | --- | --- |
| Validate an email address | [POST](/docs/marketing/marketing-cloud/references/mc_rest_address?meta=Validate%2Ban%2Bemail%2Baddress) | /address/v1/validateEmail |
**Version:** 1
## Servers
* `https://{subdomain}.rest.marketingcloudapis.com`
* `subdomain (default N/A) The unique API subdomain for your Marketing Cloud Engagement tenant. You can find this value in the Installed Packages section of Marketing Cloud Engagement Setup.`
## Operations
### POST Validates an email address
`POST /address/v1/validateEmail`
Operation ID: `validateEmail`.
Processes an email address through one or more validators. This operation can perform three types of validation:
* `SyntaxValidator`: Validates that the email address includes a name, an at sign (@), and a domain.
* `MXValidator`: Validates that a DNS mail exchange (MX) record exists on the domain of the email address.
* `ListDetectiveValidator`: Validates the email address by using [List Detective](https://help.salesforce.com/s/articleView?id=mktg.mc_es_list_detective.htm), a proprietary database of email addresses that are known to be invalid or inactive.
#### Parameters
* `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to the Marketing Cloud Engagement API. Replace `YOUR_ACCESS_TOKEN` with your Marketing Cloud Engagement API authentication token.
_Example_
```
Bearer YOUR_ACCESS_TOKEN
```
#### Request body (required)
An object that contains the address to validate and the types of validation to perform against it.
Media type: `application/json`. Schema: `validationRequestBody`.
#### Responses
* **200** Provides the result of the validation tests specified in the request body. If the email address passed the validation tests, the `failedValidation` property isn’t included in the response. When an email address fails a validation test, we recommend that you stop sending email to that address. This step helps reduce your bounce and complaint rates.
Media type: `application/json`. Schema: `validationFail`.
* **400** Indicates that your request contained errors that prevented the validation process. When you receive a 400 response, verify that the request syntax is accurate. For example, this error can occur if you specify an invalid validator type.
Media type: `application/json`. Schema: `internalError`.
_Example_
```
{
"message": "JSON Deserialization Exception: Location Unknown",
"errorcode": 10004,
"documentation": ""
}
```
* **401** Indicates that Marketing Cloud Engagement wasn't able to authorize your request. When you receive a 401 response, verify that you obtained an authorization token and that the token is still valid.
Media type: `application/json`. Schema: `httpError`.
_Example_
```
{
"documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
"errorcode": 0,
"message": "Not Found"
}
```
* **404** Indicates that the URI in your request couldn't be reached. When you receive a 404 response, verify that the request contains the correct endpoint URI.
Media type: `application/json`. Schema: `httpError`.
_Example_
```
{
"documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
"errorcode": 404,
"message": "Not Found"
}
```
* **500** Indicates that Marketing Cloud Engagement encountered an error when processing the request. When you receive a 500 response, verify that the request uses the correct syntax. Specifically, verify that the filter query uses the required syntax and that it uses only the supported fields.
Media type: `application/json`. Schema: `httpError`.
_Example_
```
{
"documentation": "https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm",
"errorcode": 0,
"message": "Internal Server Error"
}
```
## Schemas
### validationRequestBody
* `email` (_string_) The email address to validate.
* `validators` (_array of string_) An array that lists the validators to run against the specified email address.
Items: Allowed values: `SyntaxValidator`, `MXValidator`, `ListDetectiveValidator`.
_Example_
```
{
"email": "rachel.rodriquez@example.com",
"validators": [
"SyntaxValidator",
"MXValidator",
"ListDetectiveValidator"
]
}
```
### validationFail
* `email` (_string_) The email address that was processed for validation.
* `valid` (_boolean_) If the value of this property is `true`, the email address passed all of the specified validations. If the value is `false`, the address failed one or more of the specified validations.
* `failedValidation` (_string_) The validation test that the email address failed. If the email address passed all of the specified validations, this property isn’t included in the response.
_Example_
```
{
"email": "rachel.rodriquez@example.com",
"valid": false,
"failedValidation": "ListDetectiveValidator"
}
```
### internalError
* `documentation` (_string_) An empty string.
* `errorcode` (_integer_) An internal error code.
* `message` (_string_) The error message.
### httpError
* `documentation` (_string_) Contains a link to [Marketing Cloud Engagement developer documentation about handling REST API errors](https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/error-handling.htm).
* `errorcode` (_integer_) The HTTP error code.
* `message` (_string_) The error message.
### validationPass
* `email` (_string_) The email address that was processed for validation.
* `valid` (_boolean_) If the value of this property is `true`, the email address passed all of the specified validations. If the value is `false`, the address failed one or more of the specified validations.
_Example_
```
{
"email": "rachel.rodriquez@example.com",
"valid": true
}
```
# AddressStatus
Indicates the status of a subscriber address.
## Properties
| Name | Data Type | Description |
| -------- | ---------------------------------------------- | ------------------------- |
| `Status` | [SubscriberStatus](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/subscriberstatus.md) object | The status of an address. |
## Related Items
- [Subscriber](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/subscriber_appex.md)
# AddressStatus
Indicates the status of a subscriber address.
## Properties
| Name | Data Type | Description |
| -------- | ------------------------------------------------------------ | ------------------------- |
| `Status` | [SubscriberAddressStatus](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/subscriberaddressstatus.md) object | The status of an address. |
## Related Items
- [Subscriber](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/subscriber.md)
# Administration
The following are administration technical articles for SOAP API.
- [Add a User to an Account](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/adding_a_new_user_to_an_existing_account.md)
- [Create an Account](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/creating_an_account.md)
- [Create an Agency Client Object](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/creating_an_agency_client_object.md)
- [Access Child Account Objects](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/impersonating_another_user.md)
- [Manage Enterprise 2.0 Accounts](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/managing_enterprise_20_accounts_with_the_web_services_api.md)
- [Retrieve Account Object Using the CustomerKey Attribute](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/retrieving_account_object_using_the_partnerkey_attribute.md)
- [Set User Permissions](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/setting_user_permissions_via_the_web_services_api.md)
- [Use ClientID for Account Association](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/using_clientid_in_your_soap_api_code.md)
- [Rate Limiting](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/rate-limiting.md)
# Advanced Retrieves via WSProxy
You can perform more complex retrieves, including the ability to set other properties on the retrieve request, including SOAP RetrieveOptions.
- The first three parameters are the same as the parameters in simple retrieves.
- The fourth parameter specifies the properties on the RetrieveOptions on the request.
- The fifth parameter specifies any remaining properties to set on the request. These properties include “QueryAllAccounts”, “RepeatLastResult”, “RepeatAllSinceLastBatch”, and so on.
```
var prox = new Script.Util.WSProxy();
var props = { QueryAllAccounts: true };
var cols = ["Name","CustomerKey","CategoryID","IsSendable"];
var filter = {
Property: "CategoryID",
SimpleOperator: "equals",
Value: 101367
};
var opts = {
BatchSize: 25
};
var data = prox.retrieve("DataExtension", cols, filter, opts, props);
```
## Pagination of Retrieves
To retrieve more pages, use the getNextBatch function.
- The first parameter is the object type.
- The second parameter is the RequestID from any previous retrieve.
This example loops through every email in an account and writes the Name property, then outputs the total number returned after outputting all of the items.
```
var prox = new Script.Util.WSProxy(),
objectType = "Email",
cols = ["Name"],
moreData = true,
reqID = null,
numItems = 0;
while(moreData) {
moreData = false;
var data = reqID == null ?
prox.retrieve(objectType, cols) :
prox.getNextBatch(objectType, reqID);
if(data != null) {
moreData = data.HasMoreRows;
reqID = data.RequestID;
if(data && data.Results) {
for(var i=0; i< data.Results.length; i++) {
Platform.Response.Write(data.Results[i].Name);
numItems++;
}
}
}
}
Platform.Response.Write(" " + numItems + " total " + objectType);
```
# AMPscript
AMPscript is a scripting language that you can embed within HTML emails, text emails, landing pages, SMS messages, and push notifications from MobilePush. The system processes the script at the point where you include it in the message to render content on a subscriber-by-subscriber basis. Marketing Cloud Engagement handles all AMPscript calls at the end of the email send.
AMPscript can also interact with your data extensions. Use AMPscript to include information from your data extensions in your messages and to update data extensions with information from your landing pages.
For more information about AMPscript, see the [AMPscript Developer Guide](/docs/marketing/marketing-cloud-ampscript/overview).
# AMPscript API Functions
Use the AMPscript API functions to interact with the [Marketing Cloud Engagement SOAP API](https://developer.salesforce.com/docs/marketing/guides/mc-apis/web_service_guide.md).
This table lists all the AMPscript functions related to the SOAP API. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------- | ----------- | ---------- |
| [AddObjectArrayItem()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-add-object-array.md) | Adds an object to an array in a Marketing Cloud Engagement API object. | ✅ Yes | ❌ No |
| [CreateObject()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-create-object.md) | Creates an API object. | ✅ Yes | ❌ No |
| [InvokeCreate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-create.md) | Invokes the Create method on an API object. | ✅ Yes | ❌ No |
| [InvokeDelete()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-delete.md) | Invokes the Delete method on an API object. | ✅ Yes | ❌ No |
| [InvokeExecute()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-execute.md) | Invokes the Execute method on an API object. | ✅ Yes | ❌ No |
| [InvokePerform()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-perform.md) | Invokes the Perform method on an API object. | ✅ Yes | ❌ No |
| [InvokeRetrieve()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-retrieve.md) | Invokes the Retrieve method on an API object. | ✅ Yes | ❌ No |
| [InvokeUpdate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-invoke-update.md) | Invokes the Update method on an API object. | ✅ Yes | ❌ No |
| [SetObjectProperty()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api-set-object-property.md) | Sets a value for an object created by the `CreateObject()` function. | ✅ Yes | ❌ No |
# AMPscript Built-In Variables
AMPscript includes several built-in variables that you can use to personalize your sites and messages.
- [Personalization Strings Related to the Recipient](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-recipient.md)
- [Personalization Strings Related to the Sender](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-sender.md)
- [System Time and Date Strings](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-system.md)
- [Message Context Variables](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-message-context.md)
These variable names are case-insensitive. For emails and SMS messages, the values of time and date variables equal the date each message was sent. For CloudPages, the values of time and date variables are based on the date and time the page was rendered.
# AMPscript Contact Functions
Use the AMPscript Contact functions to interact with contacts in Marketing Cloud Engagement.
There’s only one function related to managing contacts. You can use the [UpsertContacts()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-contacts/mc-ampscript-reference-contacts-upsert-contact.md) function to create or update contact records. This function isn’t supported in Marketing Cloud Next.
# AMPscript Core Extension for Visual Studio Code
Salesforce Labs has created the AMPscript Core extension for Visual Studio Code (VS Code). This extension provides AMPscript developers with several benefits, including syntax highlighting for AMPscript code. The extension can also create a server on your local computer that provides a live preview of your rendered HTML and AMPscript code.
**note:** The AMPscript Core extension is a community-supported project, not an official Salesforce product. Salesforce Support can’t assist with this extension. The extension uses the Apache License, version 2.0.
## Capabilities
The AMPscript Core extension for VS Code includes several capabilities:
- AMPscript syntax highlighting.
- A server that runs on your computer, providing a live preview of HTML and AMPscript content in your browser.
- The ability to test data extension functions using local .csv files.
## Syntax Support
The extension supports the majority of AMPscript keywords and syntactical elements.
| Element | Example | Currently Supported? |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------- | -------------------- |
| [Inline AMPscript](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-adding-to-content.md#inline-ampscript) | `%%=...=%%` | ✅ Yes |
| [AMPscript blocks](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-adding-to-content.md#ampscript-code-blocks) | `%%[...]%%` | ✅ Yes |
| [AMPscript tag syntax](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-adding-to-content.md#ampscript-tag-based-syntax) | `` | ✅ Yes |
| [AMPscript variables](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-variables.md) | `@varName` | ✅ Yes |
| [Logical operators](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-condition-evaluation.md) | `==`, `>=`, `<=`, `!=` | ✅ Yes |
| [Loops](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-for-loops.md) | `For @counter = 1 to @repetitions do ...` | ✅ Yes |
| [`If` statements](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-if-statements.md) | `If @value == 42 then ...` | ✅ Yes |
| [System time & date strings](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-personalization-strings-system.md) | `xtlongdate`, `xtyear`, `xtmonth` | 🚫 No |
| System [sender](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-personalization-strings-sender.md) and [recipient](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/language-basics/mc-ampscript-guide-language-basics-personalization-strings-recipient.md) variables | `_emailaddr`, `_fullname`, `replyname` | 🚫 No |
## Function Support
The extension supports AMPscript functions that are commonly used to personalize messages and evaluate conditions.
| Function category | Supported? | Notes |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Marketing Cloud Engagement SOAP API functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-api/mc-ampscript-reference-api.html) | 🚫 No | |
| [Contact model functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-contacts/mc-ampscript-reference-contacts.html) | 🚫 No | |
| [Content functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-content/mc-ampscript-reference-content.html) | 🟡 Partial | The extension can’t retrieve content from your Marketing Cloud Engagement account, but it can use data from files stored on your computer. |
| [Data extension functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension.html) | 🟡 Partial | The extension can’t retrieve data extensions from your Marketing Cloud Engagement account, but it can retrieve data from CSV files stored on your computer. |
| [Date and time functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time.html) | 🟡 Partial | The extension can’t retrieve information from your Marketing Cloud Engagement account, such as the timestamp for the beginning of a send. |
| [Encryption functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption.html) | 🚫 No | |
| [HTTP functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http.html) | 🚫 No | |
| [Math functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math.html) | ✅ Yes | |
| [Microsoft Dynamics CRM functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-mscrm/mc-ampscript-reference-microsoft-dynamics-crm.html) | 🚫 No | |
| [Sales and Service Cloud functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce.html) | 🚫 No | |
| [Site functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites.html) | 🚫 No | |
| [SMS functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms.html) | 🚫 No | |
| [Social functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-social/mc-ampscript-reference-social.html) | 🚫 No | |
| [String functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string.html) | 🟡 Partial | `StringToDate()` and `StringToHex()` functions aren’t available. |
| [Utility functions](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities.html) | 🟡 Partial | The extension can’t interact with your Marketing Cloud Engagement account. For example, you can’t use the `RaiseError()` function to cancel an email send. |
# AMPscript Data Extension & Marketing Object Functions
Use the AMPscript Data Extension functions to manage data extensions and marketing objects and work with the data that they contain.
This table lists all AMPscript functions related to managing data extensions. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- | ----------- |
| [ClaimRow()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-claim-row.md) | Returns the first unclaimed row from a data extension. | ✅ Yes | ✅ Yes |
| [ClaimRowValue()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-claim-row-value.md) | Searches a data extension for an unclaimed row and returns a value from that row. | ✅ Yes | ✅ Yes |
| [DataExtensionRowCount()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-de-row-count.md) | Returns the number of rows in a data extension. | ✅ Yes | ❌ No |
| [DeleteData()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-delete-data.md) | Deletes rows from a data extension in CloudPages, microsites, landing pages, and SMS messages. | ✅ Yes | ❌ No |
| [DeleteDE()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-delete-de.md) | Deletes rows from a data extension in an email. | ✅ Yes | ❌ No |
| [ExecuteFilter()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-execute-filter.md) | Executes a data filter and returns an unordered rowset that contains the results. | ✅ Yes | ❌ No |
| [ExecuteFilterOrderedRows()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-execute-filter-ordered-rows.md) | Executes a data filter and returns an ordered rowset that contains the results. | ✅ Yes | ❌ No |
| [InsertData()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-insert-data.md) | Inserts rows into a data extension in CloudPages, microsites, landing pages, and SMS messages. | ✅ Yes | ❌ No |
| [InsertDE()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-insert-de.md) | Inserts rows into a data extension in emails. | ✅ Yes | ❌ No |
| [Field()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-field.md) | Returns a specific field from a data row or record. | ✅ Yes | ✅ Yes |
| [Lookup()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup.md) | Returns a value from a data extension or marketing object. | ✅ Yes | ✅ Yes |
| [LookupOrderedRows()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows.md) | Returns rows from a data extension sorted in ascending or descending order (case-insensitive). | ✅ Yes | ✅ Yes |
| [LookupOrderedRowsCS()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows-cs.md) | Returns rows from a data extension sorted in ascending or descending order (case-sensitive). | ✅ Yes | ❌ No |
| [LookupRows()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-rows.md) | Returns an unordered rowset from a data extension (case-insensitive). | ✅ Yes | ✅ Yes |
| [LookupRowsCS()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-rows-cs.md) | Returns an unordered rowset from a data extension (case-sensitive). | ✅ Yes | ❌ No |
| [Row()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-row.md) | Returns a row from a rowset, array, or object. | ✅ Yes | ✅ Yes |
| [RowCount()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-row-count.md) | Returns the number of rows in a rowset, array, or object. | ✅ Yes | ✅ Yes |
| [UpdateData()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-update-data.md) | Updates data in a data extension in CloudPages, microsites, landing pages, and SMS messages. | ✅ Yes | ❌ No |
| [UpdateDE()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-update-de.md) | Updates data in a data extension in emails. | ✅ Yes | ❌ No |
| [UpsertData()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-upsert-data.md) | Upserts data in a data extension in CloudPages, microsites, landing pages, and SMS messages. | ✅ Yes | ❌ No |
| [UpsertDE()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-upsert-de.md) | Upserts data in a data extension in emails. | ✅ Yes | ❌ No |
# AMPscript Date and Time Functions
Use the AMPscript Date and Time functions to retrieve, transform, and display times and dates.
This table lists all of the AMPscript functions related to dates and times. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------- | ----------- |
| [DateAdd()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-date-add.md) | Adds a specified time value to a date. | ✅ Yes | ✅ Yes |
| [DateDiff()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-date-diff.md) | Returns the difference between two dates or times. | ✅ Yes | ✅ Yes |
| [DateParse()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-date-parse.md) | Returns a DateTime object from a date string. | ✅ Yes | ✅ Yes |
| [DatePart()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-date-part.md) | Extracts a date part from a date or timestamp string. | ✅ Yes | ✅ Yes |
| [FormatDate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-format-date.md) | Formats a string as a date value. | ✅ Yes | ✅ Yes |
| [GetSendTime()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-get-send-time.md) | Returns a timestamp for the beginning or end of a send. | ✅ Yes | ❌ No |
| [LocalDateToSystemDate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-local-date-to-system-date.md) | Converts a local datetime string to the system time. | ✅ Yes | ❌ No |
| [Now()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-now.md) | Returns the current system timestamp. | ✅ Yes | ✅ Yes |
| [StringToDate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-string-to-date.md) | Converts a date string to a .NET datetime object. | ✅ Yes | ✅ Yes |
| [SystemDateToLocalDate()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-date-time/mc-ampscript-reference-date-time-system-date-to-local-date.md) | Converts the system time to a local datetime string. | ✅ Yes | ❌ No |
# AMPscript Encryption Functions
Use the AMPscript encryption functions to encrypt or encode data.
This table lists all of the AMPscript functions related to encryption. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------- | ---------- |
| [DecryptSymmetric()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-decrypt-symmetric.md) | Decrypts encrypted data using the supplied algorithm and encryption values. | ✅ Yes | ❌ No |
| [EncryptSymmetric()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-encrypt-symmetric.md) | Encrypts plain text data using the supplied algorithm and encryption values. | ✅ Yes | ❌ No |
| [GetJwt()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-get-jwt.md) | Creates a JSON Web Token (JWT). | ✅ Yes | ❌ No |
| [GetJwtByKeyName()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-get-jwt-by-key-name.md) | Creates a JSON Web Token (JWT) by using a key stored in Key Management. | ✅ Yes | ❌ No |
| [MD5()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-md5.md) | Converts a string to a 128-bit hexadecimal MD5 hash. | ✅ Yes | ✅ Yes |
| [SHA1()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-sha1.md) | Converts a string to a 160-bit hexadecimal SHA-1 hash. | ✅ Yes | ✅ Yes |
| [SHA256()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-sha256.md) | Converts a string to a 256-bit hexadecimal SHA-2 hash. | ✅ Yes | ✅ Yes |
| [SHA512()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-encryption/mc-ampscript-reference-encryption-sha512.md) | Converts a string to a 512-bit hexadecimal SHA-2 hash. | ✅ Yes | ✅ Yes |
# AMPscript Examples
These examples demonstrate how you can use AMPscript in your Marketing Cloud Engagement account to accomplish specific tasks. Each example includes sample AMPscript code that you can modify and use in your own account.
- [Display Send-Time Content Contextually](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-examples-send-time-content.md)
- [Include Content from an RSS Feed in an Email Message](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-examples-rss-feed-email.md)
# AMPscript Function Parameters
AMPscript functions use parameters that you must specify in a specific order. The reference section of this guide lists the parameters for each function in the order in which they must be passed. For example, the entry for the `FormatCurrency()` function shows that it has this syntax:
`FormatCurrency(number, cultureCode, decimalPlaces, currencySymbol)`
In this function, the number that you want to convert to a currency value (`number`), must always be listed first, followed by the locale code to use when formatting the string (`cultureCode`), and so on.
## Optional Parameters
Some functions have one or more optional parameters. In the `FormatCurrency()` function, the last two parameters (`decimalPlaces` and `currencySymbol`) are optional. If you want to pass a value for the `currencySymbol`, you must also pass a value for the parameter that precedes it in order (`decimalPlaces`). In this situation, you can pass `null` or an empty string ("") to skip over parameters that you don’t want to specify.
## Function Input Types
AMPscript functions accept any of these input types:
- Constant values, such as `Lowercase("Mary Smith")`
- Attribute values, such as `Lowercase(Name)`
- Variable values, such as `Lowercase(@Name)`
To prevent infinite loops, you can’t call AMPscript functions recursively. Recursive functions result in a "104 - RecursiveScriptError" exception. Email, SMS, and push messages that result in this type of exception are considered "Errored/NotSent," and count against the subscriber error limit threshold.
# AMPscript Function Reference
AMPscript is a scripting language for Marketing Cloud Engagement and Marketing Cloud Next. With AMPscript, you can integrate the data in your customer database with your marketing content. This integration helps you send highly personalized messages across all communication channels, including email, SMS, and mobile app messaging. In Marketing Cloud Engagement, you can also use AMPscript to create customized landing pages and microsites.
This document contains reference information for AMPscript functions. For an overview of AMPscript syntax, click the [Guides](/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-get-started.html) tab.
# AMPscript Functions for Mobile Messages
Use these functions with mobile messages that you send using MobileConnect. These functions return values that only apply to mobile messages. You can’t use these functions in email messages, landing pages, or other content types.
- `Msg(0)`
- : The [Msg()](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-msg.html) function returns the entire content of a mobile-originated (MO) message. A mobile-originated message is a message sent from the mobile device of a subscriber to your SMS phone number. Compare MO messages to mobile-terminated (MT) messages, which are messages that you send to a subscriber’s mobile device.
The function only accepts a value of `0` as its parameter.
- `Verb`
- : The [Verb](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-verb.html) helper function, used together with `Msg(0)`, returns the keyword from an MO message. The function doesn’t accept any arguments. It can only retrieve the current keyword specified in MobileConnect. For example, if the keyword is “OFFER” and the MO message is “OFFER 2065550042”, then the function `Msg(0).Verb` returns a value of “OFFER”.
- `Nouns`
- : The [Nouns](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-nouns.html) helper function, used together with `Msg(0)`, returns all of the message content that follows the keyword. For example, if the keyword is “OFFER” and the MO message is “OFFER John Smith”, then the function `Msg(0).Nouns` returns a value of “John Smith”.
- `Noun()`
- : The [Noun()](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-noun.html) helper function, used together with `Msg(0)`, returns a specific word in a mobile message. This function requires you to pass a parameter that indicates the position of the word in the message. A value of `0` indicates the first word in a message after the keyword, a value of `1` indicates the next word in a message, and so on. For example, `Msg(0).Noun(1)` returns the second word in the message after the keyword.
- MMS_Content_URL()
- : The [MMS_Content_URL()](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-mms-content-url.html) function returns the URL of incoming MMS content used in a mobile message. This function works only with MobileConnect accounts when sending MMS messages. You must retrieve and store this data within your own system for later usage. For example, you can send the URL to another program that distributes the content residing at the URL to another person for review. We recommend that you use this feature with an approval filter in Media Share and Media Response message templates to prevent unauthorized content from reaching your contacts.
This function requires you to provide the ordinal of the MMS content contained in the MO MMS message. A value of `0` indicates the MMS content in the current MO message.
## Usage Examples
These examples illustrate common use cases for mobile-specific functions in SMS messages.
### `Msg(0)` and `Noun()` Functions
This example checks the MO message for the presence of a specific word.
```
%%[
Var @msg
If (Uppercase([Msg(0).Noun(0)]) == "PARTY") then
Set @msg = "Downtown Luxury Hotel, 7pm, May 2"
Else
Set @msg = "We're sorry, but that's incorrect"
EndIf
]%%
%%= v(@msg) =%%
```
If the MO message contains the specified word, the value of the `@msg` variable contains a string that provides additional information. If the MO message contains a different word, then the variable contains a string that tells the subscriber that they provided the wrong keyword.
### MMS_Content_URL() Function
In the Media Share template, enter an outbound response.
```
Thanks for Responding YOURKEYWORD %%=MMS_Content_URL(0)=%%.
```
The outbound message takes the URL of the MMS content from the incoming MO message. You can then take the URL and forward it to another source, such as an external site or an RSS feed.
## Other Functions
In addition to these mobile-specific functions, you can also use the [InsertData()](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-insert-data.html) and [DeleteData()](/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-delete-data.html) functions in MobileConnect messages.
# AMPscript Functions for Salesforce Sales Cloud and Service Cloud
Use the Salesforce AMPscript functions to interact with data in Salesforce Sales Cloud and Service Cloud.
This section contains information about these AMPscript functions.
| Function Name | Description | Engagement | Next |
| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------- | ---------- |
| [CreateSalesforceObject()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce-create-object.md) | Creates a record in a Sales Cloud or Service Cloud object. | ✅ Yes | ❌ No |
| [LongSfid()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce-long-sfid.md) | Returns an 18-character Salesforce ID when provided with a 15-character ID. | ✅ Yes | ❌ No |
| [RetrieveSalesforceJobSources()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce-retrieve-job-sources.md) | Returns a rowset that contains information about a send. | ✅ Yes | ❌ No |
| [RetrieveSalesforceObjects()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce-retrieve-objects.md) | Returns a rowset that contains data that matches the criteria you specify. | ✅ Yes | ✅ Yes |
| [UpdateSingleSalesforceObject()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-salesforce/mc-ampscript-reference-salesforce-update-single-object.md) | Updates a record in a Salesforce object. | ✅ Yes | ❌ No |
# AMPscript HTTP Functions
Use the AMPscript HTTP functions to retrieve and transform web data.
This table lists all of the AMPscript functions related to working with web content. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------- | ----------- |
| [HttpGet()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-get.md) | Returns the content from a specified URL. | ✅ Yes | ❌ No |
| [HttpPost()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-post.md) | Sends data to a URL using the POST method. | ✅ Yes | ❌ No |
| [HttpPost2()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-post2.md) | Sends data to a URL using the POST method with additional error handling. | ✅ Yes | ❌ No |
| [IsChtmlBrowser()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-is-chtml-browser.md) | Returns a value that indicates if a device’s user agent is a CHTML browser. | ✅ Yes | ❌ No |
| [RedirectTo()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-redirect-to.md) | Creates a link using data from an attribute, data extension field, or variable. | ✅ Yes | ❌ No |
| [RequestHeader()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-request-header.md) | Retrieves the header from an HTTP request for a landing page. | ✅ Yes | ❌ No |
| [UrlEncode()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-url-encode.md) | Modifies a string to only include characters that are safe to use in URLs. | ✅ Yes | ✅ Yes |
| [WrapLongURL()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-http/mc-ampscript-reference-http-wrap-long-url.md) | Returns a shortened URL when provided with a long URL. | ✅ Yes | ❌ No |
# AMPscript Math Functions
Use the math AMPscript functions to perform mathematical operations on numeric values.
This table lists all of the math-related AMPscript functions. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ----------------------------------------------------- | --------------------------------------------------------------------------------- | ----------- | ----------- |
| [Add()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math-add.md) | Returns the sum of two numbers. | ✅ Yes | ✅ Yes |
| [Divide()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math-divide.md) | Returns the result of dividing the first parameter by the second parameter. | ✅ Yes | ✅ Yes |
| [Mod()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math-mod.md) | Returns the remainder after dividing the first parameter by the second parameter. | ✅ Yes | ✅ Yes |
| [Multiply()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math-multiply.md) | Returns the product of two numbers. | ✅ Yes | ✅ Yes |
| [Subtract()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-math/mc-ampscript-reference-math-subtract.md) | Returns the result of subtracting the second parameter from the first parameter. | ✅ Yes | ✅ Yes |
# AMPscript Personalization Strings Related to the Recipient
AMPscript includes several strings that you can use to personalize the messages that you send to your subscribers. For a complete list of supported strings, see [Personalization Strings in Email Studio](https://help.salesforce.com/s/articleView?language=en_US&id=mc_es_available_personalization_strings.htm).
## Commonly Used Strings
This table shows some of the most commonly used strings related to the message recipient.
| String | Description | Example |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| `_carrierId` | An ID associated with the subscriber's mobile carrier. Based on the profile attribute "CarrierID." | 4 |
| `_channel` | The messaging channel associated with the contact, as entered in the "Channel" field. | Mobile |
| `_city` | The city associated with the contact, as entered in the "City" field. | Seattle |
| `_createdBy` | The entity that created the contact, as entered in the contact "CreatedBy" field. | 9230589 |
| `_createdDate` | The date on which the contact was created, contained in the contact CreatedDate field. | 2023-08-05 13:41:59 |
| `_country_code` | Country code associated with the contact, contained in the contact CountryCode field. | US |
| `_emailaddr` | The subscriber's email address. | pooja@example.com |
| `_firstname` | The subscriber's first name, as entered in the profile attribute "Full Name." This string extracts the word before the first space. | Pooja |
| `_fullname` | The subscriber's full name, as entered in the profile attribute "Full Name." | Pooja Chatterjee |
| `_lastname` | The subscriber's last name, as entered in the profile attribute "Full Name." This string extracts the words after the first space. | Chatterjee |
| `_messageTypePreference` | The subscriber's text or HTML preference. | TEXT |
| `_mobileNumber` | The contact mobile number, as entered in the "MobileNumber" field. | 12065550042 |
| `_modifiedBy` | The last user to modify contact information, contained in the contact ModifiedBy field. | 39958224 |
| `_modifiedDate` | The last time a process modified the contact information for the subscriber. | 2023-08-05 11:31:42 |
| `_priority` | The priority to use when sending a message to a contact, contained in the contact "Priority" field. | 1 |
| `_source` | The source of contact information, contained in the contact "Source" field. | Mobile Opt-In |
| `_sourceObjectID` | The object ID of the source of contact information, contained in the contact "SourceObjectID" field. | 4 |
| `_state` | The state associated with a contact, contained in the contact "State" field. | WA |
| `_status` | The send status associated with a contact, contained in the contact `Status` field. Possible values:
`-1`: Unspecified
`1`: Active
`2`: Bounced
`3`: Held
`4`: Unsubscribed
| -1 |
| `_UTCOffset` | The time offset from UTC associated with a contact, contained in the contact "UTCOffset" field. | -8 |
| `_zipCode` | The ZIP code associated with a contact, contained in the contact "ZipCode" field. | 98105 |
## See Also
- [Personalization Strings Related to the Sender](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-sender.md)
- [System Time and Date Strings](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-system.md)
# AMPscript Personalization Strings Related to the Sender
AMPscript includes several strings that you can use to personalize the messages that you send to your subscribers. For a complete list of supported strings, see [Personalization Strings in Email Studio](https://help.salesforce.com/s/articleView?language=en_US&id=mc_es_available_personalization_strings.htm).
## Commonly Used Strings
This table shows some of the most commonly used strings related to the sender of the message.
| String | Description | Example |
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `memberid` | Your account ID (MID). | 98765 |
| `replyname` | Your reply name, as defined in your account settings. | NTO Support |
| `replyemailaddress` | Your reply email address. | reply-to@example.com |
| `member_busname`, `member_addr`, `member_city`, `member_state`, `member_postalcode`, and `member_country` | The data entered in the Address in Email Footer fields located in your Account Information workspace. If you're creating an email based on a standard template, this data is included by default in the email footer. | Northern Trail Outfitters, 415 Mission Street, San Francisco, CA, 94105, United States |
## See Also
- [Personalization Strings Related to the Recipient](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-recipient.md)
- [System Time and Date Strings](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-system.md)
# AMPscript Site Functions
Use the functions to interact with site content in Marketing Cloud Engagement, such as CloudPages and microsites.
This table lists all of the AMPscript functions related to sites. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ----------- | ----------- |
| [AuthenticatedEmployeeId()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-employee-id.md) | Returns the employee ID of the current Marketing Cloud Engagement user. | ✅ Yes | ❌ No |
| [AuthenticatedEmployeeNotificationAddress()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-employee-notification-address.md) | Returns the email address of the current Marketing Cloud Engagement user. | ✅ Yes | ❌ No |
| [AuthenticatedEmployeeUserName()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-employee-username.md) | Returns the username of the current Marketing Cloud Engagement user. | ✅ Yes | ❌ No |
| [AuthenticatedEnterpriseID()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-enterprise-id.md) | Returns the enterprise ID of the current authenticated landing page user. | ✅ Yes | ❌ No |
| [AuthenticatedMemberID()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-member-id.md) | Returns the member ID of the authenticated landing page user. | ✅ Yes | ❌ No |
| [AuthenticatedMemberName()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-authenticated-member-name.md) | Returns the member name of the authenticated landing page user. | ✅ Yes | ❌ No |
| [CloudPagesURL()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-cloud-pages-url.md) | Returns a CloudPages URL with an encrypted query string. | ✅ Yes | ❌ No |
| [IsNullDefault()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-is-null-default.md) | Lets you create default values for empty fields in Smart Capture forms. | ✅ Yes | ✅ Yes |
| [LiveContentMicrositeURL()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-live-content-microsite-url.md) | Returns a link to view live content on a microsite. | ✅ Yes | ❌ No |
| [MicrositeURL()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-microsite-url.md) | Returns a microsite URL with an encrypted query string. | ✅ Yes | ❌ No |
| [QueryParameter()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-query-parameter.md) | Retrieves a value from a URL query string. | ✅ Yes | ❌ No |
| [Redirect()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-redirect.md) | Redirects landing page visitors to a different URL. | ✅ Yes | ❌ No |
| [RequestParameter()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sites/mc-ampscript-reference-sites-request-parameter.md) | Returns the value of a parameter from a form field or landing page URL parameter. | ✅ Yes | ❌ No |
# AMPscript SMS Functions
Use the SMS AMPscript functions to manage SMS conversations with your contacts.
This table lists all of the AMPscript functions related to SMS messaging. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------- | ---------- |
| [CreateSmsConversation()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-create-sms-conversation.md) | Creates an SMS conversation. | ✅ Yes | ❌ No |
| [EndSmsConversation()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-end-sms-conversation.md) | End an active SMS conversation. | ✅ Yes | ❌ No |
| [SetSmsConversationNextKeyword()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-set-sms-conversation-next-keyword.md) | Sets the keyword in an SMS conversation. | ✅ Yes | ❌ No |
| [Msg()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-msg.md) | Returns the body of an incoming message. | ✅ Yes | ❌ No |
| [Noun()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-noun.md) | Returns a word from an incoming message based on its position. | ✅ Yes | ❌ No |
| [Nouns](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-nouns.md) | Returns all of the message content after the keyword in an incoming message. | ✅ Yes | ❌ No |
| [Verb](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-verb.md) | Returns the keyword from an incoming message. | ✅ Yes | ❌ No |
| [MMS_Content_URL()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-sms/mc-ampscript-reference-sms-mms-content-url.md) | Returns the URL of a content item from an inbound MMS message. | ✅ Yes | ❌ No |
# AMPscript Social Functions
Use the AMPscript Social functions to interact with the Social Forward feature in Marketing Cloud Engagement.
This table lists all of the AMPscript functions related to social forwarding. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------- | ---------- |
| [GetPublishedSocialContent()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-social/mc-ampscript-reference-social-get-published-social-content.md) | Returns content to share on a social media site. | ✅ Yes | ❌ No |
| [GetSocialPublishUrl()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-social/mc-ampscript-reference-social-get-social-publish-url.md) | Returns HTML code for sharing a content region on a supported social network. | ✅ Yes | ❌ No |
| [GetSocialPublishUrlByName()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-social/mc-ampscript-reference-social-get-social-publish-url-by-name.md) | Returns HTML code for sharing a content region on a supported social network. | ✅ Yes | ❌ No |
# AMPscript String Functions
Use the AMPscript string functions to display and manipulate strings.
This table lists all of the AMPscript functions related to modifying strings. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| -------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------- | ----------- |
| [Char()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-char.md) | Returns a character when passed an ASCII character code. | ✅ Yes | ✅ Yes |
| [Concat()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-concat.md) | Concatenates strings of text. | ✅ Yes | ✅ Yes |
| [Format()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-format.md) | Formats a string in the specified format. | ✅ Yes | ✅ Yes |
| [IndexOf()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-index-of.md) | Returns the position at which a substring occurs within a string. | ✅ Yes | ✅ Yes |
| [Length()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-length.md) | Returns the number of characters in a string. | ✅ Yes | ✅ Yes |
| [Lowercase()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-lowercase.md) | Returns the provided string using only lowercase letters. | ✅ Yes | ✅ Yes |
| [ProperCase()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-propercase.md) | Returns specified string with the first letter of each word capitalized. | ✅ Yes | ✅ Yes |
| [RegExMatch()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-regex-match.md) | Searches for a pattern in a string using a regular expression. | ✅ Yes | ✅ Yes |
| [Replace()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-replace.md) | Replaces every occurrence of one substring with a different substring. | ✅ Yes | ✅ Yes |
| [ReplaceList()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-replace-list.md) | Replaces one or more substrings with another string. | ✅ Yes | ✅ Yes |
| [StringToHex()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-to-hex.md) | Converts each character in a string to its hexadecimal equivalent. | ✅ Yes | ✅ Yes |
| [Substring()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-substring.md) | Returns a portion of a string, beginning at a specified character position. | ✅ Yes | ✅ Yes |
| [Trim()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-trim.md) | Removes white space from the beginning and end of a string. | ✅ Yes | ✅ Yes |
| [Uppercase()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-string/mc-ampscript-reference-string-uppercase.md) | Returns the provided string using only uppercase letters. | ✅ Yes | ✅ Yes |
# AMPscript System Time and Date Strings
You can use the system date and time strings to output or log the date.
For emails and SMS messages, the values of time and date strings are fixed to the date on which the messages were sent. For CloudPages, the values of time and date strings are based on the date on which the page was rendered.
| String | Description | Example |
| ---------------- | -------------------------------------------- | ------------------------ |
| `xtmonth` | The full name of the month. | August |
| `xtmonthnumeric` | The month expressed as a number from 1-12. | 8 |
| `xtday` | The day of the month, expressed as a number. | 5 |
| `xtdayofweek` | The day of the week. | Saturday |
| `xtyear` | The year, expressed in four digits | 2023 |
| `xtshortdate` | The full date in short format. | 08/05/2023 |
| `xtlongdate` | The full date in long format. | Saturday, August 5, 2023 |
## Using Time and Date Strings with AMPscript Functions
You can combine system date strings with AMPscript functions. This example shows how to change the way that the system date is presented using the `FormatDate()` function.
```
This email was sent %%=v(xtdayofweek)=%%, %%=FormatDate(xtlongdate, "d MMMM YYYY")=%%.
```
This example outputs the day, month, and year in the specified format:
```
This email was sent Saturday, 5 August 2023.
```
## See Also
- [Personalization Strings Related to the Sender](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-sender.md)
- [Personalization Strings Related to the Recipient](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/guide/mc-ampscript-guide-language-basics-personalization-strings-recipient.md)
# AMPscript Utility Functions
Use the AMPscript utility functions to perform several different types of tasks. The utility functions evaluate conditions, format numbers, output text, and more.
This table lists all the AMPscript utility functions. The value in the Engagement column indicates whether Marketing Cloud Engagement supports the function. The value in the Next column indicates whether Marketing Cloud Next supports the function.
| Function Name | Description | Engagement | Next |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ----------- | ----------- |
| [AttributeValue()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-attribute-value.md) | Returns the value of an attribute. | ✅ Yes | ❌ No |
| [Base64Decode](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-base64-decode.md) | Converts Base64-encoded binary data to a string of plain text. | ✅ Yes | ✅ Yes |
| [Base64Encode](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-base64-encode.md) | Converts plain text to Base64-encoded binary data. | ✅ Yes | ✅ Yes |
| [Domain()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-domain.md) | Returns the domain part of an email address. | ✅ Yes | ✅ Yes |
| [Empty()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-empty.md) | Tests to see if a variable has a value. | ✅ Yes | ✅ Yes |
| [FormatCurrency()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-formatCurrency.md) | Formats a number as a currency value. | ✅ Yes | ✅ Yes |
| [FormatNumber()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-formatNumber.md) | Formats a number as a numeric type. | ✅ Yes | ✅ Yes |
| [Guid()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-guid.md) | Returns a Globally Unique Identifier (GUID). | ✅ Yes | ✅ Yes |
| [Iif()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-iif.md) | Returns one parameter if a condition is true and a different parameter if it’s false. | ✅ Yes | ✅ Yes |
| [IsEmailAddress()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-is-email-address.md) | Tests whether an email address is well-formed. | ✅ Yes | ✅ Yes |
| [IsNull()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-is-null.md) | Tests whether the value of a variable or function is null. | ✅ Yes | ✅ Yes |
| [IsPhoneNumber()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-is-phone-number.md) | Tests whether the supplied parameter is a valid North American phone number. | ✅ Yes | ❌ No |
| [Output()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-output.md) | Returns the result of an AMPscript function. | ✅ Yes | ✅ Yes |
| [OutputLine()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-output-line.md) | Returns the result of an AMPscript function followed by a newline character. | ✅ Yes | ✅ Yes |
| [RaiseError()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-raise-error.md) | Raises an error and stops the processing of an email job. | ✅ Yes | ✅ Yes |
| [Random()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-random.md) | Returns a random number within a defined range. | ✅ Yes | ✅ Yes |
| [v()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-utilities/mc-ampscript-reference-utilities-v.md) | Outputs the value of a variable. | ✅ Yes | ✅ Yes |
# AMPscript Variable Functions
The Variable object retrieves values from declared AMPscript variable in the JavaScript context, allowing you to use both languages as necessary for your activities. All variables must follow the AMPscript variable-naming syntax. Variable server-side JavaScript functions will add a @ prefix to any variable that does not include that prefix. These functions can only work with AMPscript variables in the current context.
# API Best Practices and Use Cases
Review the following API best practices and use cases:
- [Best Practices to Prevent Rate-Limiting](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/rate-limiting-best-practices.md)
- [Developer Community Integration Scenario](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/developer_community_integration_scenario.md)
- [Developer Community Triggered Send Scenario](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/developer_community_triggered_send_scenario.md)
- [Working with Triggered Emails in Email Studio](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/triggered_email_scenario_guide_for_developers.md)
- [Optimize API Calls and Data Structures to Improve Performance](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/sfmc_data_struct_and_api_call_optimzn.md)
# API Call Volume History and Usage Health
Evaluate and optimize your API requests by using the API Call Volume History and Usage Health report. The report includes the API call volumes and success rates for your Marketing Cloud Engagement account.
To get this report, contact your account executive. The report is available as a PDF or CSV file.
## Metrics Included in the API Call Volume History and Usage Health Report
The API Call Volume History and Usage Health report includes metrics related to inbound SOAP and REST API requests made to Marketing Cloud Engagement from other applications. The report counts a batched API request as an individual request.
The report also includes metrics for outbound Journey Builder custom API requests. It doesn’t count other types of outbound API requests, such as Event Notification Service requests or HTTPS postbacks for asynchronous SOAP API requests.
The report also doesn’t count API requests that initiate message sends on the email, SMS, and push channels. Message sends for these channels count as super messages. See your monthly super message usage report.
## API Call Volume History and Usage Health Fields
The API Call Volume History and Usage Health report includes these fields.
| Field | Description |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Protocol** | The API type associated with the request. For inbound requests, the value can be either `SOAP` or `REST`. Outbound requests are identified as `Outbound`, regardless of whether the API that receives the request is a SOAP or REST API. |
| **Client ID** | The client ID that was used to authenticate the request. This field is populated only for REST API requests that were authenticated using OAuth2. For all inbound SOAP API requests and outbound requests, the value of this field is `N/A`. |
| **API** | The feature or service that the API request invoked. For REST requests, this field maps to the API service listed in the URL. For example, in the URL `{subdomain}.auth.marketingcloudapis.com/hub/v1/rest`, the value of the `API` field is `hub`. For SOAP requests, this field maps to a SOAP [object type](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/soap_web_service_objects.md). The value of this field is `Other` for SOAP API requests that contain no objects, requests that contain a batch of mixed object types, and requests that fail to authenticate. For example, `GetSystemStatus` requests or requests to describe a subscriber have no objects, so the result is a value of `Other` in this field. |
| **Route or Object** | For REST API requests, this field contains the endpoint URL of the request. For SOAP API requests, this field contains the name of the object that the request invoked. |
| **Method** | For REST API requests, this field contains the HTTP verb that's associated with the request, such as `GET` or `POST`. For SOAP API requests, this field contains the web service API method for the request, such as `Create` or `Update`. |
| **Last Month Volume** | The number of requests for the API during the most recent full calendar month. |
| **Last Month Success Rate** | The percentage of requests that were completed successfully during the most recent full calendar month. The success rate is calculated by dividing the number of successful requests by the total number of requests. |
| **Peak Month Volume** | The number of requests during the full calendar month that had the highest total volume of requests. |
| **Overall Volume** | The total number of API requests over the specified time period. The time period can contain data from the most recent 24 calendar months. The report is sorted in descending order based on the values in this column. |
## Status Messages
Whether a request counts as a success or failure depends on the response that the API returns.
This table shows which SOAP API responses count as successes and which count as failures.
| API Response | Status Used in Success Rate | Description |
| --------------------- | --------------------------- | ------------------------------------------------------------------------------- |
| **OK** | Success | All objects in the request were processed. |
| **HasErrors** | Success | Some objects in the request failed, but at least one object was processed. |
| **MoreDataAvailable** | Success | Additional pages of data can be retrieved. Returned only on a Retrieve request. |
| **Error** | Error | None of the objects in the request were processed. |
For REST requests, whether a request counts as a success or failure depends on the HTTP status code the API returns. This table shows which HTTP status codes count as successes and which count as failures.
| API Response | Status Used in Success Rate | Description |
| ---------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **HTTP status code 100–199** | Success | These status codes are informational messages. |
| **HTTP status code 200–299** | Success | These status codes indicate that the request was completed successfully. |
| **HTTP status code 300–399** | Success | These status codes indicate that the URL of the resource has changed. |
| **HTTP status code 400–499** | Failure | These status codes indicate a client-side error, such as an incorrectly formatted request, a lack of authorization, or an incorrect resource URL. |
| **HTTP status code 500–599** | Failure | These status codes indicate a server-side error, such as the temporary or permanent unavailability of a resource. |
Marketing Cloud Engagement doesn’t monitor success or failure responses for external APIs. As a result, all outbound requests count as successes.
## API Usage Health Indicators in the API Call Volume History and Usage Health Report
Use the API Call Volume History and Usage Health report to improve the overall health of your API usage. For example, use the report to identify API types that have a low success rate. Investigate and resolve errors that occur in these APIs based on the status returned in the API response.
The API Call Volume History and Usage Health report also helps you optimize your API requests so that you don’t exceed the API request limits for your account. Use the report to identify APIs with a high request volume. Next, consider batching objects in each API request to reduce the overall request volume.
You can also use the report to optimize performance. For example, you can replace data extension API requests with data imports for large data extension updates. You can also use list-based sending instead of using the API to issue high-volume triggered sends.
## See Also
- [Best Practices to Prevent Rate-Limiting](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/rate-limiting-best-practices.md)
- [Optimize API Calls and Data Structures to Improve Performance](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/sfmc_data_struct_and_api_call_optimzn.md)
- [SOAP API Performance](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/api-performance.md)
# API Errors
For information about common API errors and resolutions, see:
- [REST API Errors](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/error-handling.md)
- [SOAP Error Codes](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/error_codes.md)
- [SOAP Faults](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/soap_faults.md)
# API Functions
Access the SOAP API using these functions, allowing you to create objects using SOAP API. These objects can include new messages, subscribers, or other entities within your account.
For a more performant way to make API calls, see [Use Server-Side JavaScript via WSProxy with the SOAP API](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssjs_WSProxy_useSSJS.md).
# API Integration
To obtain credentials for authentication, add an API integration to your installed package. Under the component details, locate the client ID and client secret, if applicable. Use these credentials with your Authentication Base URI to get an access token to authenticate your API requests.
Store your client ID and secret securely. Never expose this information about the client side via JavaScript or store it in a mobile application.
To create an API integration, you must have the `Installed Package | Administer` permission. This permission is automatically applied to the Administrator and Marketing Cloud Administrator system-defined roles. Add the permission for a role or user in the Administration area.
An enhanced package can have a server-to-server integration or a web or public app integration. These types of integration use OAuth 2.0 authentication to obtain an access token. Legacy packages don’t support OAuth 2.0, and they use legacy routes for API authentication.
## Related Items
- [Installed Packages Scope](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/data-access-permissions.md)
- [Your Subdomain and Your Tenant's Endpoints](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/your-subdomain-tenant-specific-endpoints.md)
- [Create an OAuth 2.0 API Integration in Enhanced Packages](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/create-integration-enhanced.md)
- [Create an API Integration in Legacy Packages](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/create-integration-legacy.md)
# API Integration Permission Scopes
To give your API integration access to the capabilities of Marketing Cloud Engagement, assign it permission scopes in Installed Packages. A scope usually represents a collection of related permissions and behaviors. Assign only the scopes that your package needs. To learn about how these scopes map to permission IDs and API resources, see [REST Permissions and Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/rest-permissions-and-scopes.md).
Server-to-server integrations that use the Client Credentials grant type perform tasks on behalf of the integration. The scopes that you assign to these integrations represent the capabilities that the integration can access.
Web app and public app integrations that use the Authorization Code grant type perform tasks on behalf of an end user. These integrations use the permissions that the app and the user have in common. The scopes that you assign to these integrations represent which features the integration can access. However, the scopes don’t account for the functionality that the end user can access. To request and compare scopes against user permissions, issue a GET request to the [v2/userinfo](/docs/marketing/marketing-cloud/references/mc_rest_auth?meta=getUserInfo) endpoint after your app completes the authorization code flow.
## Channels
- Email
- : Enables email message management and sending. Available scopes: Read, Write, and Send.
- OTT
- : Enables Chat message management and sending. Available scopes: Read and Send.
- Push
- : Enables Push message management and sending. Available scopes: Read, Write, and Send
- SMS
- : Enables SMS message management and sending. Available scopes: Read, Write, and Send.
- Social
- : Available scopes: Read, Write, Publish, and Post.
- Web
- : Available scopes: Read, Write, and Publish.
## Assets
- Documents and Images
- : Enables management of documents and images in the portfolio or image library. Available scopes: Read and Write.
- Saved Content
- : Enables management of content saved in content areas, surveys, and coupons. Available scopes: Read and Write.
## Automation
- Automations
- : Enables management of Programs and activities. Available scopes: Read, Write, and Execute.
- Journeys (Interactions)
- : Enables management of Journeys. Available scopes: Read, Write, and Execute.
## Contacts
- Audiences
- : Available scopes: Read and Write
- Lists and Subscribers
- : Enables management of subscribers, lists, groups, filters, measures, and preference management. Available scopes: Read, Write
## Data
- Data Extensions
- : Enables management of data extensions and relationships. Available scopes: Read and Write.
- File Locations
- : Available scopes: Read, Write
- Tracking Events
- : Enables management of tracking event data associated with channels. Available scope: Read
## Hub
- Approvals
- : Enables management of approval items. Can edit and delete approval comments. Can enable approvals for any channel. Available scope: Write.
- Calendar
- : Enables management of calendar events. Available scopes: Read and Write.
- Campaign
- : Enables management of campaigns. Available scopes: Read and Write.
- Tags
- : Available scope: Write.
- Workflows
- : Enables management of workflow teams. Available scope: Write.
## Provisioning
- Organizations
- : Enables management of accounts, business units, and child accounts. Available scopes: Read and Write.
- OTT Channels
- : Enables management of Chat message resources. Available scopes: Read and Write.
- Users
- : Enables management of users, roles, and permissions. Available scopes: Read and Write.
## Webhooks
- Webhooks
- : Available scopes: Read, Write
## Operations That Don’t Require Permissions
This table lists SOAP API operations that Installed Packages can access. You can’t change the ability of Installed Packages to access these operations.
| Object | Operation | Description |
| -------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------- |
| `AccountTrackingAggregate` | Retrieve | Contains email tracking information aggregated at the account level. |
| `Activity` | Retrieve | Contains the definition of a workflow step or action in an automation. |
| `ActivityInstance` | Retrieve | Contains information about the execution of an activity in an automation instance. |
| `AsyncActivityStatus` | Retrieve | Contains information about the status of an asynchronous job. |
| `AutomationInstance` | Retrieve | Contains information about the execution of an automation. |
| `FrameworkHealthCheck` | Create, Delete, Retrieve, Update | Provides system health information. |
| `ImportResultsSummary` | Retrieve | Contains status and summary information about an import job. |
| `LinkClickTrackingAggregate` | Retrieve | Contains aggregated tracking data for link clicks. |
| `ListSendTrackingAggregate` | Retrieve | Contains email tracking information aggregated by list send. |
| `LowLatencyTransactionalSend` | Create | Send a transactional email. |
| `Program` | Create, Delete, Perform, Retrieve, Update | Contains the definition of an automation, including its schedule and tasks. |
| `ProgramInstance` | Retrieve | Contains information about a single run or execution of an automation. |
| `ResultItem` | Retrieve | Contains result data for API operations. |
| `ResultMessage` | Retrieve | Contains result and error messages from API operations. |
| `ScheduledConversation` | Delete | Asynchronously delete a scheduled conversation. |
| `ScheduledRequest` | Delete | Asynchronously delete a scheduled request. |
| `SubscriberTrackingAggregate` | Retrieve | Contains email tracking information aggregated at the subscriber level. |
| `Task` | Retrieve | Contains the definition of a group of activities in an automation. |
| `TaskInstance` | Retrieve | Contains information about the execution of a task in an automation instance. |
| `TrackingEvent` | Retrieve | Contains generic tracking events. |
| `TriggeredSendTrackingAggregate` | Retrieve | Contains email tracking information aggregated by triggered send. |
## See Also
- [REST API Permission IDs and Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/rest-permissions-and-scopes.md)
- [v2/userinfo Resource](/docs/marketing/marketing-cloud/references/mc_rest_auth?meta=getUserInfo)
- [Server-to-Server Integrations with Client Credentials Grant Type](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/integration-s2s-client-credentials.md)
- [Web and Public App Integrations with Authorization Code Grant Type](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-app-development/integration-app-auth-code.md)
# API Integration Security
Keep the following security considerations in mind when integrating your Salesforce apps with the Marketing Cloud Engagement API. For general guidelines around web application penetration testing for your composite app, review the [OWASP Top Ten checklist](https://www.owasp.org/index.php/Top_10_2013-Top_10).
## Enforce Least Privilege
Request minimum required scope for the OAuth token for your app API token. This follows the principle of least privilege and reduces risk associated with the API token.
## Secure Storage
Store only the refresh token on your external web server. Keep the access token in memory only and request a new access token when needed. Follow industry best practices to securely store the refresh token on an external platform. Treat the refresh token like a Salesforce credential.
## Secure in Transit
Always enforce TLS when making calls to the Marketing Cloud Engagement APIs. Provide the access token only as the authorization header and never as query parameters. Maintain up-to-date TLS configurations on your external web server.
## Authentication and Session Management
Implement authentication and session management correctly by using secure procedures to create, manage, and end a session for each authorized user. Rotate session IDs out and set them with the correct cookie flags. We recommend you use your framework’s session management features as they’re thoroughly tested and more frequently updated.
## Access Control
Your app must verify the user’s session and permission levels before giving access to any restricted data or function. For example, a standard user shouldn't be able to access admin-only pages, or user A shouldn't view user B’s purchase history.
## Sensitive Information in Errors
Your app must handle errors and responses correctly to avoid most of the fingerprinting and enumeration process by a possible attacker. Hide common error responses from the user, such as stack traces and debug logs, because an attacker can use these to gain more information about the server or app.
## Cross Site Request Forgery (CSRF)
Attackers use this vulnerability to trick an authenticated user into performing an unwanted action on the vulnerable server. The attacker crafts a URL or a FORM inside a malicious page and tricks the user to access to it. CSRF attacks typically target state-changing requests, as there is no way for the attacker to see the response of the forged request.
## HTML Injection and Cross Site Scripting (XSS)
HTML injection vulnerabilities occur when an attacker injects HTML into a vulnerable website and makes it appear as if it was originally there. For example, the attacker injects an iframe and displays a completely different page. With Cross Site Scripting, an attacker injects Javascript that executes in the context of a vulnerable domain. The attacker then crafts a payload and tricks a user into visiting the link. The attacker’s Javascript then executes on the user’s browser.
## Arbitrary Redirects
A vulnerable server may perform a redirect function using user-controlled data in some URL. This allows an attacker to use a normal-looking server URL to redirect a user to a malicious site. In addition, if your site uses one page to perform forwards to other resources, an attacker could modify the input parameter and bypass permission checks.
## Remote Code Execution
A web app or server may run some code that is vulnerable to specially crafted input data. That input data executes commands in the target machine. Attackers typically execute code remotely from one of three sources:
1. Web server runs some vulnerable service that listens to open ports on the internet. Resolution: Check each service that is listening at a port on your web server for vulnerabilities or public exploits.
2. Web app uses vulnerable components. Resolution: Double check every software package in your app, such as gems, nodes, or libraries, that support process documents, process images, open connections like external URI, or parse XML.
3. Application is processing user input as serialized data. Resolution: Execute deserialized user data cautiously as it could lead to remote code execution.
## Insecure Software
Most applications use some kind of third-party components, such as Javascript libraries, server side frameworks, and application servers. Ensure you are using the latest available version with no known security vulnerabilities. Vulnerable versions are easy to identify and can open up your application to a broader attack surface.
## SQL Injection
A SQL injection attack inserts a SQL query via the input data from the client to the application. In SQL injection attacks, SQL commands are injected as a part of user supplied input in order to effect the execution of predefined SQL commands.
## Storage of Sensitive Data
Store sensitive data, such as passwords, credit card information, Social Security Numbers, and other PII, securely on servers using your platform's industry best practices for secure storage.
# API Objects for Triggered Email Sends
Use these API objects when you send triggered emails with Email Studio.
## TriggeredSend Objects
- `TriggeredSendDefinition`
- : The triggered email interaction
- `TriggeredSend`
- : An instance of the email being triggered.
- `TriggeredSendCreateResult`
- : The result of creating a TriggeredSend object.
- `TriggeredSendExclusionList`
- : Used to exclude subscribers from a send definition.
- `TriggeredSendType`
- : The triggered send type, represented by a numeric value.
- `TriggeredSendStatus`
- : The triggered send status, represented by a numeric value.
- `SendClassification`
- : The send classification of the triggered email interaction.
- `DeliveryProfile`
- : The record that contains the IP address, domain, header inclusion, and footer inclusion information for the triggered email interaction.
- `SenderProfile`
- : The record that contains the sender name and address for the triggered email interaction.
## Tracking Objects
- `OpenEvent`
- : An instance of a subscriber opening an email.
- `SentEvent`
- : An instance of a subscriber being sent an email.
- `NotSentEvent`
- : An instance of an email not being sent to a subscriber due to an issue with the subscriber information-for example, the subscriber being unsubscribed.
- `BounceEvent`
- : An instance of an email bouncing.
- `UnsubEvent`
- : An instance of a subscriber unsubscribing.
- `ClickEvent`
- : An instance of a subscriber clicking a link in an email.
- `ForwardedEmailEvent`
- : An instance of a subscriber forwarding an email message using the Forward-to-a-Friend feature.
- `ForwardedEmailOptinEvent`
- : An instance of a new subscriber opting in to a mailing list after receiving an email forwarded using the Forward-to-a-Friend feature.
## Related Items
- [Working with Triggered Emails in Email Studio](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/triggered_email_scenario_guide_for_developers.md)
- [Triggered Email Error Codes](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/triggered_email_scenario_guide_for_developers_errors.md)
- [Triggered Email Timezone Strings](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/triggered_email_scenario_guide_for_developers_timezones.md)
# APIObject
The base object that other SOAP API objects inherit.
## Properties
| Name | Data Type | Description |
| ------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Client` | [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md) object | Specifies the account ownership and context of an object. |
| `CorrelationID` | String | Identifies correlation of objects across several requests. |
| `CreatedDate` | DateTime | The date and time when the object was created. |
| `CustomerKey` | String | User-supplied unique identifier for an object within an object type. |
| `ID` | Int | Read-only legacy identifier for an object. Not supported on all objects. |
| `ModifiedDate` | DateTime | Last time object information was modified. |
| `ObjectID` | String | System-controlled, read-only text string identifier for object. |
| `Owner` | [Owner](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/owner.md) object | Describes account ownership of subscriber in an on-your-behalf account. |
| `PartnerKey` | String | Unique identifier provided by partner for an object. This property is accessible only via API. |
| `PartnerProperties` | Array of [APIProperty](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/apiproperty.md) objects | A collection of metadata supplied by the client and stored by the system. These properties are accessible only via API. |
# APIObject
The base object that other SOAP API objects inherit.
## Properties
| Name | Data Type | Description |
| ------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `Client` | [ClientID](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/clientid.md) object | Specifies the account ownership and context of an object. |
| `CorrelationID` | String | Identifies correlation of objects across several requests. |
| `CreatedDate` | DateTime | The date and time when the object was created. |
| `CustomerKey` | String | User-supplied unique identifier for an object within an object type. This property corresponds to the external key assigned to an object. |
| `ID` | Int | Read-only identifier for an object. Some objects use the ObjectID property as a unique ID. |
| `ModifiedDate` | DateTime | The date and time when the object was last modified. |
| `ObjectID` | String | System-controlled, read-only text string identifier for object. |
| `ObjectState` | String | Not used. |
| `Owner` | [Owner](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/owner.md) object | Describes account ownership of subscriber in an on-your-behalf account. |
| `PartnerKey` | String | Unique identifier provided by partner for an object. This property is accessible only via API. |
| `PartnerProperties` | Array of [APIProperty](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/apiproperty.md) objects | A collection of metadata supplied by the client and stored by the system. These properties are accessible only via API. |
# APIProperty
Contains information related to an object, stored as a name-value pair.
## Properties
| Name | Data Type | Description |
| ------- | --------- | --------------------------------------------------- |
| `Name` | String | Name of the object or property. |
| `Value` | String | Defines value to be used in filter or other object. |
# APIProperty
Contains information related to an object, stored as a name-value pair.
## Properties
| Name | Data Type | Description |
| ------- | --------- | -------------------------- |
| `Name` | String | The name of the property. |
| `Value` | String | The value of the property. |
## Related Items
- [Add Data to a Data Extension](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/adding_data_to_data_extension_object.md)
# Appexchange API Methods
The following are soap_web_service_methods for Appexchange API.
# Appexchange Objects
This section provides objects related to AppExchange API.
# Appexchange Parameters
This section provides parameters related to AppExchange API.
# AppExchange Partners, Upgrade SSO Claim v2
**note:** These instructions apply only to multi-tenant applications, such as apps on AppExchange.
Ensure that your multi-tenant applications use the tenant-specific endpoints returned in the Claim v2 JWT for new customers on an instance other than S1 through S10. For customers on S1 through S10, your multi-tenant applications continue to make calls against the legacy ExactTarget endpoints.
To support customers using tenant-specific endpoints, your app must:
- Use the SSO Claim v2 JSON Web Token, or JWT, found in the App component. To update your app, contact your Partner Account Manager and see [Upgrade SSO Claim Version](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/upgrade-sso.md).
- Correctly consume the Claim v2 JWT with tenant-specific endpoints.
For REST API requests, make sure that your app constructs its requests using the account-specific values for the `authEndpoint` and the `apiEndpointBase` parameters.
For SOAP API requests, make a REST call to request an access token. Next, issue a [GET request to the platform/v1/endpoints endpoint](https://developer.salesforce.com/docs/marketing/marketing-cloud/references/mc_rest_platform?meta=Get%2BEndpoints) to find the SOAP endpoint for your account.
## Decoded JWT Before and After Upgrade

## See Also
- [Upgrade SSO Claim Version](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/upgrade-sso.md)
- [Single Sign-On](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/single-sign-on.md)
- [Explanation of Decoded JWT](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/explanation-decoded-jwt.md)
- [Your Subdomain and Your Tenant's Endpoints](https://developer.salesforce.com/docs/marketing/marketing-cloud/mc-apis/your-subdomain-tenant-specific-endpoints.md)
# Application Utility Functions
Use these functions to interact with the Marketing Cloud Engagement application.
## Load
In your Server-side JavaScript code, first load the core library using this syntax:
```
Platform.Load("core","1");
```
Use the associated sample code as models to construct your own Server-side JavaScript code.
# Apply Filter to Subscriber List
Use the FilterActivity object to associate a data filter to a filter activity to be used in an automation. A FilterActivity applies the logic of a data filter to a subscriber list you select to create a group of subscribers who satisfy the filter criteria.
## Sample SOAP Envelope
```xml
XXXXXXXXXXeSTcdVv9GBJGgiTLlEPDuRnpTXk=2011-05-20T14:57:13ZFilterActivityAPIFilterActivityAPIdf07a3ad-cc8c-475b-bc74-b6ebe68d3892bab35f2e-9c18-e711-ada2-38eaa791d4a1dd4e5eee-e829-e711-ada2-38eaa791d4a122
```
## See Also
- [FilterActivity Object](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/filteractivity.md)
# Archive an Asset
Remove an asset from the Einstein Content Selection asset pool. The asset is also marked as unavailable for selection.
## Method and Endpoint
```
POST "/ecs/ecs/external/api/v1/asset//archive"
```
## Example Request
```
POST "/ecs/ecs/external/api/v1/asset/cf868607-9eec-4e2b-ae87-3d2ca7ed7911/archive"
BODY:
{}
```
## Example Response
```
{
"key": "Einstein Content",
"uuid": "cf868607-9eec-4e2b-ae87-3d2ca7ed7911",
"type": "Other-Icons",
"url": "https://www.example.com/einstein-content",
"image_url": null,
"custom": {
"locale": "SE"
},
"created_at": "2021-08-02T22:20:52.861Z",
"updated_at": "2021-08-02T22:38:28.804Z",
"availability": "N",
"fallback": "N",
"file_ext": "png",
"status": "ready",
"image_updated_at": "2021-08-02T22:38:28.755Z",
"image_processing_completed_at": "2021-08-02T22:38:28.802Z",
"image_checksum": "16afe520c3489cc77f668cb2dcfa571c-1",
"asset_class_id": "f0bc4b14-c19c-49a5-a72f-1736a2afa8f9",
"content_builder_id": null,
"archived": true,
"ect_tags": null,
"start_datetime": "2021-07-23T00:00:00.000Z",
"end_datetime": null,
"display_time_zone": "Helsinki",
"image_link": "https://ecs-asset-images-qa.s3.us-west-2.amazonaws.com/3612/21575198/f/cf868607-9eec-4e2b-ae87-3d2ca7ed7911.png?v=16afe520c3489cc77f668cb2dcfa571c-1",
"display_time_zone_name": "Europe/Helsinki",
"display_start_datetime": "2021-07-23T03:00:00+03:00",
"display_end_datetime": null
}
```
# Asset Model Examples
Use these examples to created basic HTML paste and template-based emails.
:::Note
When pasting HTML into the content attribute, HTML contains certain reserved chars that need to be escaped in JSON. Run the HTML through a JSON escape tool first to ensure that the HTML is valid in the JSON payload.
:::
- [Asset Model Examples](#asset-model-examples)
- [HTML Paste Email Example](#html-paste-email-example)
- [Simple Template Based Email Example](#simple-template-based-email-example)
- [Complex Template Based Email Example](#complex-template-based-email-example)
- [Related Items](#related-items)
## HTML Paste Email Example
```json
{
"name": "my first message",
"channels": {
"email": true,
"web": false
},
"views": {
"html": {
"content": "This is a simple html paste email.