Salesforce-Marketing-Cloud-Engagement-Developer Practice Test

Salesforce Spring 25 Release -
Updated On 18-Sep-2025

196 Questions

A field value returned from a DE lookup contains a tab-delimited list of values. Which AMPscriptfunction could easily determine if a specific text string exist anywhere in the list?

A. Substring

B. BuildRowSetFromString

C. IndexOf

D. Length

B.   BuildRowSetFromString

Explanation:

✅ B. BuildRowSetFromString
This AMPscript function splits a delimited string (such as a tab-delimited list) into individual elements and creates a rowset. You can then iterate through or search the rowset to see if a specific value exists. This is the most flexible and scalable method for checking membership in a delimited string, particularly for tab-separated values.

❌ A. Substring
Substring extracts a portion of a string based on a starting index and length. It is not suitable for searching within a delimited list, especially when trying to detect if a value exists across different positions.

❌ C. IndexOf
IndexOf returns the position of the first instance of a substring in a string. While it could technically find if a string exists, it's not robust for tab-delimited lists—e.g., it might return a false positive if a substring exists as part of a larger value.

❌ D. Length
Length returns the number of characters in a string. It does not perform any search or matching operations, so it’s not relevant to checking whether a specific string exists.

Certification Aid wants to import data from a CSV file into a Data Extension. The CSV file contains all relevant data. New records should be added to the Data Extension, and records which are not in the file should be removed from the Data Extension. Which import operation should be chosen for this?

A. Add only

B. Overwrite

C. Add andupdate

D. Update only

B.   Overwrite

Explanation:

A. Add only ❌
This import operation appends new records to the Data Extension but does not update existing records or remove any records that are missing from the file. If a record already exists in the Data Extension, it will remain unchanged, and any records not in the file will still exist in the DE after the import. This is not the behavior desired in this scenario since the requirement is to also remove records not present in the CSV. Therefore, this is not the correct choice.

B. Overwrite ✅ (Correct Answer)
The "Overwrite" import option completely replaces all data in the target Data Extension with the data from the imported file. This means that any records not included in the CSV file will be removed from the Data Extension, and the existing records will be replaced with the new version. This perfectly matches the scenario where only the records in the file should remain in the Data Extension after the import. It's the best fit for a full data sync when the file is authoritative.

C. Add and update ❌
This operation will add new records and update any matching existing records based on the primary key but will not remove records that are missing from the import file. It is ideal when your CSV includes partial data and you want to supplement or correct the DE without deleting anything. However, since the scenario explicitly says that records not in the file should be removed, this operation would not meet the requirement.

D. Update only ❌
This option updates records that already exist in the Data Extension (based on primary key match) but does not add new records or remove any that are not present in the import file. In this case, since the file contains all relevant data, we must be able to add new rows and remove others — which this option does not support. Thus, it's not suitable for this scenario.

Northern Trails Outfitters (NTO)has a sendable data extension with 1,500,000 contact records they want to delete. Which step is required before deleting the contacts?

A. Query the records into a new sendable data extension and delete it

B. Navigate to Contact Builder and delete the dataextension

C. Divide the records in half and delete each resulting data extension

D. Navigate to Email Studio and delete the data extension

C.   Divide the records in half and delete each resulting data extension

Explanation:

✅ C. Divide the records in half and delete each resulting data extension
Marketing Cloud limits Contact Deletes to 500,000 records at a time, so deleting 1.5 million contacts requires splitting the data into batches—typically into three separate data extensions of 500,000 records each. Then you can delete them in sequence via the Contact Delete process from Contact Builder or API. This ensures performance and system constraints are respected.

❌ A. Query the records into a new sendable data extension and delete it
While querying into a new DE may help organize records, deleting a DE does not delete the contact records from the All Contacts table. You must use Contact Delete functionality (in Contact Builder or via API) to remove contacts from the system, not just from a DE.

❌ B. Navigate to Contact Builder and delete the data extension
Deleting the DE does not remove contacts from the system. Contacts remain in All Contacts even if their DEs are removed. To delete the actual contacts, you must use Contact Delete processes, which are different from DE deletion.

❌ D. Navigate to Email Studio and delete the data extension
As with option B, this only removes the container holding contact records, not the contact records themselves from All Contacts. Email Studio is not where you delete contacts in a compliant and system-recognized way.

What can be created in Attribute Groups within Contact Builder? Choose 2.

A. Data Extensions

B. Relationships

C. Populations

D. Attribute Groups

A.   Data Extensions
B.   Relationships

Explanation:

✅ A. Data Extensions
When working in Contact Builder, you can add data extensions to Attribute Groups. These data extensions hold the contact-related data and are then linked to the All Contacts table through sendable fields or contact keys. This allows you to build a unified contact model. Note: While you can’t “create” DEs directly inside the Attribute Group interface, you can associate existing data extensions to them, which is what the question implies.

✅ B. Relationships
Relationships are a fundamental part of Attribute Groups in Contact Builder. After adding Data Extensions, you define relationships (1-to-1 or 1-to-many) between those DEs and the Contact Record using contact keys. These relationships allow data modeling, segmentation, and personalization across related data.

❌ C. Populations
Populations are separate from Attribute Groups. You create Populations to segment large groups of contacts (like “Leads” vs “Customers”) when you have multiple root contact types. Populations exist independently in Contact Builder and aren’t created inside Attribute Groups.

❌ D. Attribute Groups
Attribute Groups are containers, not child elements. You don’t create Attribute Groups within other Attribute Groups. Instead, you create Attribute Groups as top-level groupings to logically organize related data and relationships tied to Contacts.

A developer wants to set a variable to use a field from a Sendable Data Extension. Which two options could be used in an AMPscript block to set the variable as a 'First Name" field from a Sendable Data Extension used to send the email?

A. SET @firstName = [First Name]

B. SET @firstName = %%First Name%%

C. SET @firstName = attributeValue (''First Name'')

D. SET @firstName = ''First Name'']

C.   SET @firstName = attributeValue (''First Name'')

Explanation:

✅ C. SET @firstName = AttributeValue("First Name")
This is the recommended and safest method to retrieve a value from a Sendable Data Extension inside AMPscript. AttributeValue() retrieves the field based on subscriber context and handles special characters, spaces, and fallback logic gracefully. It avoids runtime errors when the field doesn't exist.

❌ A. SET @firstName = [First Name]
This syntax works in inline AMPscript, typically used inside HTML content like:
%%[ SET @firstName = [First Name] ]%%
While it is valid, it’s not recommended for values with spaces or special characters in the field name. It can fail if not properly escaped, so AttributeValue() is safer.

❌ B. SET @firstName = %%First Name%%
This syntax is incorrect for setting a variable. %%First Name%% is a content substitution tag used in HTML output, not within AMPscript logic. You can display a field this way, but not assign it to a variable.

❌ D. SET @firstName = "First Name"]
This is invalid syntax in AMPscript. The brackets don't match, and the field is treated as a plain string, not as a variable or DE field. This would cause a parsing error.

Salesforce-Marketing-Cloud-Engagement-Developer Exam Questions - Home
Page 2 out of 40 Pages