Free Salesforce Marketing Cloud Engagement Developer Practice Test Questions (2026)
196 questionsUpdated 2-Nov-2026Page 3 of 20
Question 21Choose 1
Which SSJS library can be used in email messages?
Correct answer:
D. Core
Summary:
This question tests the understanding of Server-Side JavaScript (SSJS) library availability within different Marketing Cloud contexts. SSJS functionality is divided into two main libraries: Core and Platform. Core provides basic functions, while Platform offers more advanced, server-specific capabilities. For security and performance reasons, the more powerful Platform library is restricted from use within the context of email messages to prevent potential abuse or instability during mass sends.
Correct Option:
D. Core:
The Core SSJS library is the only one available for use within Email Messages. It contains a limited set of functions for fundamental operations like string manipulation, dates, and simple logic. This restriction is a security and stability measure to ensure email rendering is not negatively impacted by more complex server-side operations.
Incorrect Option:
A. Both:
This is incorrect. The Platform library is explicitly disabled and cannot be used in email messages. Attempting to use Platform functions in an email will result in an error.
B. Platform:
This is incorrect. The Platform library, which includes functions for interacting with Data Extensions, external APIs, and file system operations, is restricted for use in more controlled environments like CloudPages and API integrations. It is not permitted in emails.
C. None:
This is incorrect. While the Platform library is unavailable, the Core SSJS library is indeed supported and can be used within email messages for basic scripting tasks.
A developer wants to retrieve a row of data from a data extension using the SOAP API. Which API Object should be used for this call?
Correct answer:
C. DataExtensionObject
Summary:
This question focuses on identifying the correct SOAP API object for retrieving the actual data records (rows) from a Data Extension. The Marketing Cloud SOAP API has distinct objects for managing the schema (structure) of a Data Extension versus the data contained within it. The correct object is the one specifically designed for performing CRUD operations on the rows of data, not the definition of the table itself.
Correct Option:
C. DataExtensionObject:
This is the correct API object. The DataExtensionObject is used to interact with the rows of a Data Extension. Its Retrieve method allows you to fetch one or more records by specifying the Data Extension's Customer Key and using a filter to define which rows to return, making it the proper choice for retrieving a row of data.
Incorrect Option:
A. DataExtensionField:
This object is used to manage the columns (fields) of a Data Extension. It is used for retrieving, creating, or updating the schema information (e.g., field name, data type), not the data values stored in those columns.
B. DataExtension:
This object is used to manage the definition of the Data Extension itself. It is used for operations like creating a new Data Extension, setting its name, or specifying its category. It is not used for retrieving the rows of data contained within it.
D. Row:
This is not a valid standard object in the Marketing Cloud SOAP API. The correct object for row-level operations is DataExtensionObject.
A developer wants to upload a base64-encoded file to Content Builder using an API Installed Package but receives an insufficient Privileges error. What should the developer check to troubleshoot the error?
Correct answer:
A. Validate Client Id and Client Secret are correct
Summary:
This question involves troubleshooting an "insufficient Privileges" error during an API call to Content Builder. While several issues can cause authentication failures, this specific error points directly to a problem with the application's authorization level. The credentials (Client ID & Secret) grant access, but the permissions (scopes) associated with those credentials are inadequate for the requested operation. The solution is to verify the configuration that defines these permissions.
Correct Option:
A. Validate Client Id and Client Secret are correct:
This is the correct first step. An "insufficient Privileges" error strongly indicates that the API user associated with the Client ID and Secret lacks the necessary permissions. The developer must check the Installed Package configuration to ensure the asset_create scope (or a broader scope like content or full) has been selected for the API Integration component. Correct credentials with incorrect scopes will result in this error.
Incorrect Option:
B. Verify the Asset Type Id matches the Asset Type Name:
This is related to the payload structure of the API call itself, not the authentication or authorization. An incorrect Asset Type ID would typically result in a "Bad Request" or similar validation error, not an "insufficient Privileges" error.
C. Confirm the REST Base URI uses the correct subdomain:
An incorrect REST endpoint would generally cause a connection failure, a "Not Found" error (404), or an authentication failure if pointing to the wrong tenant. It would not typically result in an "insufficient Privileges" message, which is returned after the request is received and authenticated but before authorization is checked.
D. Confirm the Component's Channel options are available:
This refers to the configuration of the Installed Package's component. The "Channel" setting defines the type of access (e.g., Web App, Public App), not the specific permissions. The core issue is the lack of assigned scopes, not the channel configuration.
A developer needs to process a payload from an external system in a CloudPage. What Marketing Cloud Server-Side JavaScript Platform function should be used for converting a string payload in JSON format to a JavaScript object?
Correct answer:
B. ParseJSON
Summary:
This question focuses on the correct Server-Side JavaScript (SSJS) function for converting a JSON-formatted string into a manipulable JavaScript object within a CloudPage. This is a fundamental step when processing data received from an external API or system, as it allows the developer to access the individual properties and values contained within the JSON structure using standard object notation.
Correct Option:
B. ParseJSON:
This is the correct SSJS Platform function. The ParseJSON function is specifically designed to take a string that is valid JSON and convert it into a native JavaScript object. Once parsed, you can access the data using dot notation (e.g., objectName.property), which is essential for processing the payload's contents.
Incorrect Option:
A. Base64Decode:
This function is used to decode a string that has been encoded using Base64 encoding. It returns a plain string, not a JavaScript object. If the JSON payload were Base64-encoded, you would need to decode it first and then use ParseJSON on the resulting string.
C. CreateObject:
This function is used to instantiate a server-side object, such as an APIObject for use with the SOAP API or other specific platform objects. It is not used for parsing a JSON string into a generic JavaScript object.
D. Stringify:
This function performs the inverse operation of ParseJSON. The Stringify function takes a JavaScript object or value and converts it into a JSON string. It is used for preparing data to be sent to an external system, not for processing incoming data.
A sendable data extension with a text field named 'Balance' contains the value S6.96 for a particular record. The following AMPscript statement is included in an email:
IF (Balance > 6.00) THEN
SET @Result = 'Balance is more than $6.00
ENDIF
Why would this IF statement yield unintended results?
Correct answer:
A. The operands are not the same data type.
Summary:
The IF statement produces unintended results because the 'Balance' field is stored as a Text data type in the data extension, even though its value looks numeric (e.g., "S6.96"). When AMPscript retrieves the value, it remains a string. String-to-string comparison is performed, causing "S6.96" to be evaluated as less than "6.00" due to lexicographical (alphabetical) ordering, not numerical ordering.
Correct Option:
A. The operands are not the same data type.
The field Balance is a Text field containing the string "S6.96". In the comparison Balance > 6.00, AMPscript treats Balance as a string and implicitly converts 6.00 to the string "6.00". The comparison becomes "S6.96" > "6.00", which is false because the first character "S" has a higher ASCII value than "6". This leads to the condition failing even though numerically 6.96 > 6.00. The root cause is the mismatch in data types (Text vs Number).
Incorrect Option:
B. The comparison should use the < operator.
The logic requires checking if the balance exceeds $6.00, so the greater-than (>) operator is correct. Using < would reverse the condition and produce the opposite (wrong) outcome.
C. Balance is a protected keyword.
"Balance" is not a reserved or protected keyword in AMPscript. It is a perfectly valid field name and variable name.
D. Double quotes should be used instead of single quotes.
The string literal 'Balance is more than $6.00' uses single quotes, which is the correct syntax in AMPscript. Double quotes would cause a syntax error.
Northern Trail Outfitters has an Enterprise 2.0 account with 15 business units. Each business unit can access a Shared Data Extension named 'Inventory', which contains the details for each product. A Boolean field named 'InStock' indicates whether the item is available. Which snippet of AMPscript would return all products which are currently available?
Correct answer:
C. LookupRows ('Ent. Inventory*, 'InStock', 'true', )
Summary:
In an Enterprise 2.0 account, shared data extensions are located in the "Ent." shared folder. The correct syntax for the LookupRows function requires: the exact data extension name (including the "Ent." prefix), the filter column name, and the value to match. To return all rows where the Boolean field InStock equals true, the minimum required parameters are the data extension name and one filter pair ('InStock', 'true').
Correct Option:
C. LookupRows('Ent.Inventory', 'InStock', 'true')
This is the correct syntax. "Ent.Inventory" is the proper external key for the shared data extension visible to child business units. The LookupRows function is used with three parameters: data extension name, filter field, and filter value. Since 'InStock' is a Boolean field, the text value 'true' (case-insensitive) correctly matches when the checkbox is checked, returning all available products.
Incorrect Option:
A. LookupRows('Ent. Inventory', 'true', 'InStock')*
Wrong parameter order and syntax. The second and third parameters are swapped — the column name must come first, then the value. Also, there is an unnecessary space and asterisk.
B. LookupRows('Ent. Inventory, itemName, 'InStock', 'true')*
This is syntactically invalid. The function mixes optional return columns (which would come after the filter) incorrectly and uses a comma before itemName without proper structure. Additionally, no such field "itemName" is mentioned in the question.
D. LookupRows('Inventory', 'InStock' 'true',)*
Multiple errors: missing the required "Ent." prefix for shared items, invalid comma placement, missing comma between parameters, and an unnecessary trailing comma.
A developer wants to create a CloudPage which is linked from an email. %%[SET @point = RequestParameter(x) SET @value = 5 IF Length(@point) > 1 THEN SET @value = 1 ELSEIF Length(@point)>2 THEN SET @value = 2 ELSEIF Length(@point) >3 THEN SET@value = 3 ELSEIF Length(@point) >4 THEN SET @value = 4 ENDIF]%% Which is the expected value of @value if x = 'Tacos'?
Correct answer:
B. 1
Summary:
This question tests the logic flow of an IF/ELSEIF statement in AMPscript. The code checks the length of the parameter x (which is 'Tacos') against a series of conditions. The key to understanding the result is that AMPscript executes the first condition that evaluates to true and then skips all subsequent ELSEIF and ELSE blocks. The length of the string 'Tacos' is 5 characters.
Correct Option:
B. 1:
This is the correct value. The first condition, IF Length(@point) > 1, checks if the length of 'Tacos' (which is 5) is greater than 1. Since 5 > 1 is true, the code inside this IF block runs, setting @value = 1. The script then exits the conditional block entirely, and none of the subsequent ELSEIF conditions are evaluated, even though they are also mathematically true.
Incorrect Option:
A. 3:
This would be the result if the condition Length(@point) > 3 were the first true condition encountered. However, the earlier condition Length(@point) > 1 is true and is evaluated first, so the script never reaches the check for > 3.
C. 5:
This is the initial default value set for @value. It would only remain as 5 if none of the conditions in the IF/ELSEIF block were true, which is not the case here.
D. 4:
This would be the result if the condition Length(@point) > 4 were the first true condition. However, the condition for > 1 is true and is evaluated first, preventing the script from reaching the > 4 check.
Which statements are true regarding the Marketing Cloud SOAP API? (Choose 2)
Correct answer:
B. Most SOAP calls can be synchronous or asynchronous
C. Uses XML in request and response body.
Summary:
The Marketing Cloud SOAP API is built on the legacy SOAP protocol, which uses XML for both request and response payloads. It is primarily synchronous by nature, though some objects support an optional Asynchronous request header. The API enforces rate limits far below 2000 calls per minute (typically around 120–300 depending on the account tier).
Correct Option:
C. Uses XML in request and response body.
The SOAP API exclusively uses XML format for both the request envelope and the response. This is a fundamental characteristic of all SOAP-based web services in Marketing Cloud.
B. Most SOAP calls can be synchronous or asynchronous
Many SOAP API objects support both modes via the optional header inside the SOAP envelope. When omitted, calls are synchronous; when included, they are processed asynchronously and return a request ID immediately.
Incorrect Option:
A. More than 2000 SOAP calls can be performed per minute.
False. The standard SOAP API limit is much lower (typically 120–300 calls per hour for most accounts, or up to ~5 per second in high-tier accounts). 2000 calls per minute would far exceed documented limits.
D. Uses JSON in request and response body.
False. JSON is used by the Marketing Cloud REST API, not the SOAP API. The SOAP API always uses XML.
A developer is notified the View Email As Web Page (VAWP) link, when clicked, displays the message, The system is temporarily unavailable. We apologize for any inconvenience. Please try again later. What could be a possible cause for the error
Correct answer:
B. The email used at the time of send was deleted, updated, or moved.
Summary 📝
The View Email As Web Page (VAWP) link works by referencing the exact content and data context of the email at the moment it was sent. This functionality relies on the Job ID and Subscriber ID to dynamically reconstruct the message. If the underlying Email asset in Marketing Cloud is deleted, moved, or updated to a new version after the send job completes, the system loses the essential reference needed to retrieve and render the static content, resulting in the generic "temporarily unavailable" error.
Correct Option ✅
B. The email used at the time of send was deleted, updated, or moved.
The VAWP link's URL contains parameters that reference the original Job ID and the Email ID (or its equivalent in the system). If the email asset is removed from its original location (moved), deleted, or overwritten by a new version (updated), the system cannot find the correct content asset linked to that specific send job. This disruption in the asset path is a primary cause for the "temporarily unavailable" error message when trying to view the static web version.
Incorrect Options ❌
A. The data in the data extensions used at the time of send was overwritten.
This is incorrect because the VAWP feature saves a static snapshot of the email content and the subscriber's personalized data at the time of send. Once the email is sent, changes to the source Data Extension data (like overwriting or updating rows) will not affect the already rendered and stored web page version.
C. The sender profile used at the time of send was overwritten.
This is incorrect. The Sender Profile primarily dictates the From Name and From Email Address. While important for the send process, changes to this profile after the send has completed will not break the ability of the system to retrieve and display the static HTML content of the email linked to the VAWP.
D. The data extension used at the time of send was moved to another folder.
This is incorrect for two reasons. First, the VAWP uses the snapshot of the data, not a live reference. Second, moving a Data Extension to a different folder generally does not break the internal system references tied to a completed send job, as the unique Data Extension Customer Key remains the same.
Northern Trail Outfitters (NTO) stores most of their customer data in Marketing Cloud. They do not mind their data being viewed in clear text within SFMC to users who have access, but they want to ensure the underlying database files are encrypted at rest in case the physical media is stolen. Which encryption method should NTO use?
Correct answer:
D. Transparent Data Encryption
Summary:
This scenario describes a requirement for database-level security without altering how data is accessed or viewed within the Marketing Cloud application. The goal is to protect the physical database files on the server's disk from being read if the underlying storage media is compromised. This points to a solution that encrypts the entire database at the storage level, operating transparently for authorized users and applications.
Correct Option:
D. Transparent Data Encryption (TDE):
This is the correct method. TDE performs real-time encryption of the entire database at the file level, including its data files, log files, and backups. It is "transparent" because it requires no changes to the application; users with proper access in Marketing Cloud can still view and use the data in clear text, but the underlying files are encrypted and unreadable without the encryption keys, protecting against physical media theft.
Incorrect Option:
A. Encrypted Data Sending:
This refers to securing data in transit (e.g., using TLS/SSL for email or API calls), not while it is at rest in the database. It does not address the risk of stolen physical media.
B. Field-Level Encryption:
This method encrypts specific, sensitive fields (e.g., Social Security Numbers) within the database. It is not transparent, as it requires the application logic to encrypt and decrypt the data, and it would prevent the data from being viewed in clear text within the SFMC UI, which contradicts the business requirement.
C. Tokenized Sending:
Tokenization is the process of replacing sensitive data with a non-sensitive equivalent (a token) that has no extrinsic meaning. It is primarily used for securing data during transmission or for masking data in user interfaces, not for encrypting entire database files at rest.
Our timed 2026 Salesforce Marketing Cloud Engagement Developer practice test mirrors the format, number of questions and time limit of the official exam.
The #1 challenge isn't just knowing the material, it's managing the clock. The simulation builds your speed and stamina, so you walk in knowing exactly what to expect.