Total 196 Questions
Last Updated On : 11-Dec-2025
Northern Trail Outfitters' legal team is concerned about the daily import process that brings in subscribers to a Sendable Data Extension, even when records have already been targeted for deletion. Which two true expected behaviors for these records occur in the event a send is initiated directly to this Sendable Data Extension? (Choose 2 answers)
A. Records still in the suppression phase will only be excluded if manually specified during send time.
B. Records still in the suppression phase will beexcluded from sends.
C. Records that have already been deleted will be treated as new records.
D. Records that have been deleted will be excluded from sends Indefinitely.
Summary 📝
The concern here relates to the interaction between the Contact Deletion process (governed by the Contact Builder Delete Contact API or Contact Delete utility) and the daily import of data. When a contact is targeted for deletion, they enter a suppression period before final deletion. During this suppression phase, the system actively excludes them from sends. However, once a contact is fully deleted, if they are subsequently re-imported into a Sendable Data Extension, Marketing Cloud treats them as a brand new record because the system-wide unique identifier (the Contact ID/Subscriber ID) associated with the deletion has been removed.
Expected Behaviors ✅
B. Records still in the suppression phase will be excluded from sends.
The suppression period (a holding state before final deletion, usually 14 days) is a built-in safeguard in Marketing Cloud's contact deletion process.
During this phase, any email send initiated will automatically check the contact's status and exclude them from receiving the message, ensuring compliance while the system prepares for permanent deletion.
C. Records that have already been deleted will be treated as new records.
Once a contact is fully deleted from Marketing Cloud, their unique system identifier (Contact ID/Subscriber ID) is removed.
If that same individual's data (same Email Address and Contact Key) is re-imported later, Marketing Cloud sees no matching system ID and re-creates the contact. This means they are treated as a new subscriber, overriding the previous deletion status, and they will be available to receive sends.
Incorrect Options ❌
A. Records still in the suppression phase will only be excluded if manually specified during send time.
Exclusion during the suppression phase is a system-level, automatic function of the Contact Delete process. It does not require the user to manually select a suppression list or perform any extra steps during the send flow; the system handles the exclusion automatically.
D. Records that have been deleted will be excluded from sends indefinitely.
The deletion is not permanent if the record is imported back into a sendable data extension. As per Option C, once the contact is fully deleted, re-importing them creates a new contact. The system does not retain a permanent memory to exclude the deleted record from future imports and sends indefinitely.
Reference 🔗
Salesforce Help Documentation - Contact Delete Process: (Covers the suppression period and the final deletion phase, explaining how records are treated during each stage.)
Salesforce Help Documentation - Contact Builder: Managing Contacts: (Explains how a contact is identified by a unique key and how re-importing a deleted key results in a new record.)
A field value returned from a DE lookup contains a tab-delimited list of values. Which AMPscript function could easily determine if a specific text string exist anywhere in the list?
A. SubstringBuildRowSetFromString
B. IndexOf
C. Length
Summary:
This question involves searching for a specific text string within a larger, delimited string (a tab-delimited list). The goal is to check for the presence of the string, not to parse the list into individual items. The correct function is one that scans the entire string and returns the position of the first occurrence of the search text, which can be used to determine if the text exists.
Correct Option:
B. IndexOf:
This is the correct function. The IndexOf function searches for the first occurrence of a specified substring within a string and returns its starting position. If the substring is not found, it returns 0. By checking if the result is greater than 0, you can easily determine if the specific text string exists anywhere in the tab-delimited list.
Incorrect Option:
A. SubstringBuildRowSetFromString:
This is incorrect. BuildRowSetFromString is the correct function for splitting a delimited string into a rowset object that can be looped through. However, the function name in the option is misspelled as SubstringBuildRowSetFromString, which is invalid. Even if spelled correctly, it is overkill for simply checking if a value exists, as it requires looping through the entire rowset.
C. Length:
The Length function returns the total number of characters in a string. It cannot determine if a specific substring exists within that string. It would only tell you how long the entire delimited list is, which is not useful for this search task.
Reference:
Salesforce Official Documentation: IndexOf Function
NTO is reconsidering the requirement to have English, Spanish and French versions of their email campaigns. They request a developer to create a query which aggregates clicks grouped by language of the recipient. Language is stored in a Profile Attribute. Which two Data Views would be included in the query? (Choose 2 answer)
A. _Subscribers
B. _Subscribers
C. _AllSubscribers
D. _Click
Summary:
To aggregate clicks by recipient language, the query must join two types of data: the click event data and the subscriber profile data that contains the language attribute. Data Views are the system tables that store this information. The _Click Data View records all click events, while the _Subscribers Data View (or its synonym _AllSubscribers) contains the profile attributes for each subscriber, including the language field.
Correct Option:
B. _Subscribers and D. _Click
_Subscribers: This Data View contains the core subscriber profile attributes, including the "Language" field mentioned in the question. It is the source for the data used to group the results.
_Click: This Data View contains a record for every click made by a subscriber, including the Subscriber Key and the Job ID. This is the source for the click data that needs to be counted and aggregated.
Incorrect Option:
A. _Subscribers:
While this is a correct answer, it is listed twice in the options (A and B). Selecting both A and B would be redundant as they refer to the same Data View. Only one instance of it is needed for the query.
C. _AllSubscribers:
This is a synonym for the _Subscribers Data View. In a SQL query, using _Subscribers or _AllSubscribers would reference the same underlying table. Therefore, it is functionally identical to option B and would not be chosen as a second, distinct Data View. The two distinct Data Views required are _Subscribers (or _AllSubscribers) and _Click.
Reference:
Salesforce Marketing Cloud Data Views Documentation
NTO is using a mobile campaign to collect an email addresses of interested subscribers. Using AMPscript's API functions they will send a confirmation email when an email is texted into their short code. Which two objects are required to successfully create a TriggerSend object? (Choose 2)
A. Attribute
B. TriggerSendDefinition
C. Contact
D. Subscribers
Summary 📝
When using AMPScript API functions (specifically functions like CreateObject) to initiate an email send programmatically via an API call (which a Triggered Send essentially is), the system requires two core objects to execute the send. It needs the TriggerSendDefinition object to identify the specific email configuration (like the email content, subject, and suppression lists), and it needs the Subscribers object (or Recipient object in some newer contexts) to define the individual recipient's details (like their email address and unique identifier) for whom the send is being initiated.
Correct Options ✅
B. TriggerSendDefinition
This object contains the configuration details for the email, including the External Key which is used to identify the specific Triggered Send Definition created in Email Studio (or Journey Builder).
It references the actual email content, the associated Data Extension, the Sender Profile, and the Delivery Profile. It tells the API what to send.
D. Subscribers
In the context of the older SOAP API structure (which AMPScript API functions often model), the Subscribers object defines the recipient of the email.
It contains the required recipient attributes, such as the EmailAddress (which is being collected via the mobile campaign) and the SubscriberKey (or Contact Key) which uniquely identifies the individual contact. It tells the API who to send the email to.
Incorrect Options ❌
A. Attribute
The term Attribute is too generic. While subscriber attributes (like EmailAddress) are necessary for the send and are housed within the Subscribers object, "Attribute" itself is not a standalone top-level object required to create the TriggerSend object.
C. Contact
The Contact object is the overarching entity in Contact Builder that represents the individual across all channels. While the TriggerSend ultimately targets a contact, the specific objects required in the SOAP/AMPScript API call structure to define the recipient are the Subscribers object (which holds the context of the email address and key) and the TriggerSendDefinition.
Reference 🔗
Salesforce Developers Documentation - SOAP API Object Model (TriggeredSend)
Which of the following statements are correct concerning Populations in Contact Builder? Choose 2.
A. Populations are used to create largesubgroups Contacts.
B. Populations need to be added to an Attribute Group.
C. No more than three Populations should be created.
D. Populations should be used for segmentation
Summary:
In Marketing Cloud Contact Builder, a Population is a foundational concept representing the entire base audience for a business unit, such as "All Customers" or "All Subscribers." It is defined by a primary Data Extension (the Population Data Extension) that contains the master list of Contact Keys. Populations are used as the source for large-scale, strategic segmentation and are linked to Attribute Groups that provide additional descriptive data about the contacts.
Correct Option:
A. Populations are used to create large subgroups of Contacts.
This is correct. A Population defines your entire targetable audience. From this master Population, you can create Audiences, which are large subgroups defined by SQL queries. These Audiences are used for major marketing initiatives, making Populations the source for large-scale segmentation.
B. Populations need to be added to an Attribute Group.
This is correct. An Attribute Group is a collection of related data (from one or more Data Extensions) that describes the contacts in your Population. To use this descriptive data for segmentation or personalization, you must explicitly link the Attribute Group to your Population. This connection enriches the contact profiles within that Population.
Incorrect Option:
C. No more than three Populations should be created.
This is incorrect. There is no prescribed limit of three Populations. The number of Populations you create depends on your business needs. A common use case is having separate Populations for different brands or lines of business within a single Marketing Cloud account. You can create multiple Populations as required.
D. Populations should be used for segmentation.
This statement is misleading and therefore incorrect. While Audiences derived from a Population are used for segmentation, the Population itself is not a segmentation tool. The Population is the master source list. You do not segment with the Population; you segment from the Population by creating Audiences. The Population defines "who we can market to," while Audiences define "which segment we will market to."
Reference:
Salesforce Marketing Cloud Contact Builder Documentation
A developer is troubleshooting why an API client Jd and chent_secret are authenticating yet failing to access data from a child business unit. What should be checked to validate the installed package can access the child business unit data?
A. The Installed Package has full Enterprise access to all available child business units
B. The Installed Package has access to the selected child business unit
C. The account id and parent MIDare included in the authorization call
Summary 📝
When an API client authenticates successfully but fails to access data in a specific child Business Unit (BU) within an Enterprise 2.0 account, the most likely cause is that the Installed Package (which holds the Client ID and Client Secret) has not been granted explicit permissions for that BU. In SFMC Enterprise accounts, access must be individually configured. The installed package's permissions must be verified and updated in the Setup area to ensure the API user has the necessary Business Unit Access to read or write data in the target child BU.
Correct Option ✅
B. The Installed Package has access to the selected child business unit
In an Enterprise 2.0 account structure, API access is controlled via the Installed Package.
After initial creation, the package must be manually configured under Setup > Installed Packages to grant access to one or more specific Business Units.
If the target child BU is not checked in the package's permissions, any API call (even with a valid token) attempting to interact with data in that BU will fail with a permission or access error.
Incorrect Option ❌
A. The Installed Package has full Enterprise access to all available child business units
This is incorrect. Full Enterprise access is a potential configuration but is not the default setting. For security and segmentation, access is often restricted. Therefore, the specific child BU must be checked, as the absence of a check is the likely cause of the failure, making this a poor diagnostic step.
C. The account id and parent MID are included in the authorization call
While the MID (Member ID) of the target BU is required for the correct API calls (often passed in the REST API header as client_request_id or onBehalfOfSub for SOAP), the initial authorization call (requesting the access token) typically only requires the client_id and client_secret. The system infers the parent context from these credentials. The target BU's MID is usually a data access requirement, not an authentication requirement, and is managed after the token is received.
Reference 🔗
Salesforce Developers Documentation - Permissions for Installed Packages
A developer needs to determine why a Query Activity in an Automation has failed. Which three scenarios could have caused this? (Choose 3 answers)
A. The query takes more than 60 minutes to run.
B. The query is returning more than one million rows.
C. The query results in duplicate rows not allowed by the primary key.
D. The query is not returning a value for a non-nullable field.
E. The query is inserting a value that is larger than the size of a field.
Summary:
A Query Activity in Automation Studio can fail for several reasons, primarily related to system limits, data integrity violations, or logical errors in the SQL. The platform enforces timeouts, row limits, and strict adherence to the target Data Extension's schema. A failure occurs when the query's execution or its resulting data violates any of these constraints.
Correct Option:
A. The query takes more than 30 minutes to run.
Automation Studio queries have a strict timeout limit. While the exact time can vary by account and system load, a query that runs too long will be terminated by the system, resulting in a failure. A 60-minute query would almost certainly exceed this limit.
C. The query results in duplicate rows not allowed by the primary key.
If the target Data Extension has a primary key defined, it enforces uniqueness. If the query's result set contains duplicate values for this primary key field, the insert operation will fail because it cannot create two identical records, violating the data integrity rule.
E. The query is inserting a value that is larger than the size of a field.
Each field in a Data Extension has a defined maximum length (e.g., EmailAddress, 100 characters). If the query attempts to insert a string that exceeds this defined length, the operation will fail, as it cannot truncate data automatically without potential data loss.
Incorrect Option:
B. The query is returning more than one million rows.
This is not a direct cause of failure for a standard Query Activity. While large queries can be inefficient and slow, Marketing Cloud can process result sets well over one million rows. Performance may degrade, but the query will not fail solely due to a high row count.
D. The query is not returning a value for a non-nullable field.
This is a critical point: This will cause a failure. If the target Data Extension has a field marked as "Required" (non-nullable) and the query does not provide a value for that field for any row, the entire insert operation will fail. The system cannot create a record without a value for a mandatory field.
(Correction and Apology): Upon review, option D is also a correct cause of failure. Therefore, the three correct answers are C, D, and E. My initial assessment of option D was incorrect.
Reference:
Salesforce Developers Documentation - Permissions for Installed Packages
Northern Trail Outfitters uses a number to uniquely identify contacts across different marketing channels. Which two actions should the developer take to ensure the contacts relate across channels in Marketing Cloud when working with the data model? (Choose 2 answers)
A. store the numeric unique identifier value as a Text data type In data extensions.
B. Link the numeric field value to the Contact IDin Attribute Groups in Contact Builder.
C. Use a unique identifier spec fie to each channel and automatically connect then-..
D. Create Attribute Groups linking the unique identifier to the Contact for each channel.
Summary 📝:
To ensure contacts are uniquely identified and linked across all marketing channels in Marketing Cloud Engagement (e.g., Email, Mobile, Advertising), the developer must use the consistent Contact Key (NTO's unique number) across the data model. To prevent issues with leading zeros or calculation errors, this unique numeric identifier should be stored as a Text data type. Furthermore, Attribute Groups must be created in Contact Builder to logically link the data extensions holding channel-specific data back to the central Contact record using this shared unique number.
Required Actions ✅
A.store the numeric unique identifier value as a Text data type In data extensions.
This is a critical best practice in Marketing Cloud. Even if the unique identifier is a number (like a Customer ID), storing it as a Text data type ensures that Marketing Cloud handles it as a unique identifier string, rather than a quantifiable number.This prevents issues like leading zeros being stripped (e.g., $00123$ becoming $123$), which would break the unique relationship with external systems, and avoids mathematical confusion.
D. Create Attribute Groups linking the unique identifier to the Contact for each channel.
Attribute Groups are the foundational component of the Contact Builder data model. They define the schema and relationships between the central Contact record (using the Contact Key) and all other associated Data Extensions across different channels.The developer must create these groups, explicitly defining the relationship between the unique identifier field in the channel's Data Extension and the Contact Key to enable cross-channel data retrieval and personalization.
Incorrect Options ❌
B. Link the numeric field value to the Contact ID in Attribute Groups in Contact Builder.
This is incorrect terminology. The data extensions must be linked to the Contact Key (the unique number provided by NTO), not the Contact ID. The Contact ID is an internal, system-generated, non-user-facing identifier that should not be used for external data relationships.
C. Use a unique identifier spec fie to each channel and automatically connect then-..
The core principle of the Marketing Cloud Contact Model is to use a single, consistent unique identifier (the Contact Key) across all channels. Using a different identifier for each channel would prevent a unified view of the customer and make cross-channel communication impossible without complex manual reconciliation.
Northtrn Trail Outfitters mistakenly synced the User_Salesforce object which added to their billable contact count. What should be recommended to remove these contacts?
A. Update the sync to remove these contacts from the All Contacts table.
B. Use the REST API to delete the contacts from the All Subscribers table.
C. Put the synced records into a sendable data extension and use Contact Delete.
D. Use the SOAP API to delete the contacts from theAll Contacts table.
Summary 📝
The most effective and compliant method to remove unwanted, billable contacts (such as the accidentally synced User_Salesforce records) from the Marketing Cloud Engagement platform is by using the official Contact Delete utility in Contact Builder. This utility requires the contacts' unique identifiers (Contact Keys) to be placed in a Data Extension. The Contact Delete process then permanently removes these contacts from the All Contacts list and tracking tables, ensuring they no longer contribute to the billable contact count and adheres to data governance policies.
Correct Option ✅
C. Put the synced records into a sendable data extension and use Contact Delete.
Contact Delete is the correct administrative tool, found in Contact Builder, designed for permanent, system-wide removal of contact records from Marketing Cloud, which reduces the billable contact count.
The prerequisite for using this tool is to provide the list of Contact Keys to be deleted, typically by loading them into a Data Extension that is referenced by the Contact Delete process.
This process initiates a system-level deletion that includes a suppression period to ensure compliance.
Incorrect Options ❌
A. Update the sync to remove these contacts from the All Contacts table.
Updating the sync filter will stop new User_Salesforce records from being imported, but it will not remove the records that have already been synced and added to the All Contacts table. Manual deletion via the Contact Delete tool is required for already billable contacts.
B. Use the REST API to delete the contacts from the All Subscribers table.
The All Subscribers table is part of Email Studio (legacy List model) and does not govern the billable contact count, which is managed by the All Contacts table in Contact Builder. Additionally, using the REST API for contact deletion is a separate, more complex method than the dedicated Contact Delete utility and is often reserved for programmatic integration.
D. Use the SOAP API to delete the contacts from the All Contacts table.
The SOAP API can be used to perform some contact-related operations, but the system-wide deletion that permanently removes the contacts from the billable count is officially handled by the Contact Delete utility within Contact Builder (which internally uses the Contact Delete API). Attempting direct deletion via SOAP API can be inconsistent and is not the recommended administrative solution for bulk data removal.
Reference 🔗
Salesforce Help Documentation - Contact Delete
A developer wants to retrieve all records in the OrderDetails data extension which are associated with a particular customer. Which two AMPscript functions would return a suitable rowset? (Choose 2 answers)
A. LookupRows
B. LookupOrderedRows
C. Row
D. Lookup
Summary:
The requirement is to retrieve multiple records (a rowset) from a Data Extension where a field (like CustomerID) matches a specific value. In AMPscript, a "rowset" is a collection of rows returned by a function. The task requires functions designed to return multiple matching records based on a filter condition, not just a single value.
Correct Option:
A. LookupRows
This function is designed to retrieve multiple rows from a Data Extension that match a specified condition. The syntax LookupRows("OrderDetails", "CustomerID", @custID) would return a rowset containing all orders for that particular customer, which is the exact requirement.
B. LookupOrderedRows
This function performs the same core task as LookupRows but adds the ability to sort the resulting rowset by a specified field. Using LookupOrderedRows("OrderDetails", "OrderDate", "CustomerID", @custID) would return all orders for the customer and sort them by date. It still returns a suitable rowset for the task.
Incorrect Option:
C. Row
Row is not a function used to retrieve data. It is a function used to access a specific, single row from a rowset that has already been retrieved. For example, you would use Row(@rowset, 1) to get the first row from a rowset returned by LookupRows. It cannot query a Data Extension on its own.
D. Lookup
The Lookup function is used to retrieve a single value from a single row in a Data Extension. It is unsuitable for this task because it will only return one value from the first matching record it finds (e.g., the first OrderID). If a customer has multiple orders, it will not retrieve all of them, as it stops after the first match.
Reference:
Salesforce Marketing Cloud AMPscript Syntax Guide
| Page 6 out of 20 Pages |
| Salesforce-Marketing-Cloud-Engagement-Developer Practice Test Home | Previous |
Our new timed Salesforce-Marketing-Cloud-Engagement-Developer practice test mirrors the exact 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. Our new simulation builds your speed and stamina.
You've studied the concepts. You've learned the material. But are you truly prepared for the pressure of the real Salesforce Agentforce Specialist exam?
We've launched a brand-new, timed Salesforce-Marketing-Cloud-Engagement-Developer practice exam that perfectly mirrors the official exam:
✅ Same Number of Questions
✅ Same Time Limit
✅ Same Exam Feel
✅ Unique Exam Every Time
This isn't just another Salesforce-Marketing-Cloud-Engagement-Developer practice questions bank. It's your ultimate preparation engine.
Enroll now and gain the unbeatable advantage of: