Platform-App-Builder Practice Test Questions

Total 289 Questions


Last Updated On : 26-Sep-2025 - Spring 25 release



Preparing with Platform-App-Builder practice test is essential to ensure success on the exam. This Salesforce SP25 test allows you to familiarize yourself with the Platform-App-Builder exam questions format and identify your strengths and weaknesses. By practicing thoroughly, you can maximize your chances of passing the Salesforce certification spring 2025 release exam on your first attempt.

Surveys from different platforms and user-reported pass rates suggest Platform-App-Builder practice exam users are ~30-40% more likely to pass.

Cloud Kicks (CK) wants to quickly insert a list of over 60,000 net new Accounts. The template based on CK's data model was used to populate the list.
Which tool should be used?



A. Data Loader


B. A Lightning Object Creator


C. Import Wizard


D. Schema Builder





A.
  Data Loader

Explanation:

Why: 60,000+ records exceeds the Data Import Wizard limit (50k per load). Data Loader is built for bulk operations (up to millions of rows), supports CSV templates aligned to your data model, and is the standard tool for inserting a large volume of Account records quickly.

Why not the others:
B. Lightning Object Creator: Creates a new custom object from a spreadsheet; it doesn’t bulk-insert into standard Accounts.
C. Import Wizard: Easy UI, but capped at 50,000 records per job—too small for 60k+.
D. Schema Builder: For designing metadata (objects/fields/relationships), not loading data.

Duplicate management for Leads has been implemented at Universal Containers but it seems duplicate leads are still being created. The Org Wide Default (OWD) is set to "Private" for Leads.
Which two actions help prevent duplicate Leads from being created?
(Choose 2 answers)



A. Change the lead Hatching Rule to Block on create.


B. Change OWD for Leads to Public Read.


C. Change the Lead Duplicate Rule details to Bypass Sharing Rules.


D. Change the Lead Assignment Rule to check for duplicates.





A.
  Change the lead Hatching Rule to Block on create.

C.
  Change the Lead Duplicate Rule details to Bypass Sharing Rules.

Explanation:

Universal Containers has implemented duplicate management for Leads, but duplicates are still being created despite the Organization-Wide Default (OWD) for Leads being set to Private. This suggests issues with how duplicate rules or sharing settings are configured. The goal is to prevent duplicate Leads from being created. Below is a concise analysis of each option:

A. Change the lead Matching Rule to Block on create (Correct):
Salesforce Duplicate Rules work with Matching Rules to identify and prevent duplicate records. By default, a Duplicate Rule may be set to Alert (notifying users of potential duplicates) or Allow (permitting duplicates with a warning). Changing the Duplicate Rule to Block on create ensures that if a Lead matches the criteria defined in the associated Matching Rule (e.g., same email or name), the system prevents the record from being created. This directly addresses the issue of duplicate Leads being created.
Steps: Go to Setup > Duplicate Rules > [Lead Duplicate Rule], edit the rule, and set the action to Block for record creation.
Reference: Salesforce Help - Duplicate Rules

B. Change OWD for Leads to Public Read (Incorrect):
Changing the OWD for Leads to Public Read affects record visibility, allowing all users to view all Leads, but it does not prevent the creation of duplicate Leads. OWD settings control access, not data quality or duplicate prevention, making this option irrelevant to the requirement.
Reference: Salesforce Help - Organization-Wide Defaults

C. Change the Lead Duplicate Rule details to Bypass Sharing Rules (Correct):
With the OWD for Leads set to Private, users can only see Leads they own or have access to via sharing rules or role hierarchy. This can prevent Duplicate Rules from identifying duplicates if a user cannot access existing Lead records to compare against. Enabling the Bypass Sharing Rules option in the Duplicate Rule allows the system to check all Lead records (regardless of sharing settings) when evaluating duplicates, ensuring more effective duplicate detection and prevention.
Steps: Go to Setup > Duplicate Rules > [Lead Duplicate Rule], edit the rule, and check the Bypass Sharing Rules option.
Reference: Salesforce Help - Duplicate Rules and Sharing

D. Change the Lead Assignment Rule to check for duplicates (Incorrect):
Lead Assignment Rules determine how Leads are assigned to users or queues based on criteria (e.g., geography or lead source). They do not have built-in functionality to check for or prevent duplicates. While custom logic could be added (e.g., via Flow or Apex), this is not a standard feature of Lead Assignment Rules, making this option incorrect.
Reference: Salesforce Help - Lead Assignment Rules

Recommended Approach:
Modify the Duplicate Rule:
In Setup > Duplicate Rules, edit the Lead Duplicate Rule.
Set the action to Block on record creation to prevent duplicates from being saved.
Bypass Sharing Rules:
In the same Duplicate Rule, enable Bypass Sharing Rules to ensure the system checks all Leads, even those the user cannot access due to the Private OWD.
Verify the Matching Rule (e.g., matching on Email, Name, or Company) is correctly configured to identify duplicates accurately.

Additional Notes:
Ensure the Matching Rule used by the Duplicate Rule is robust (e.g., matches on key fields like Email or Phone) to catch potential duplicates.
Test the Duplicate Rule in a sandbox to confirm it blocks duplicates without impacting valid Lead creation.
If duplicates are still created via API or integrations, ensure those processes respect the Duplicate Rule settings.

References:
Salesforce Trailhead: Duplicate Management
Salesforce Help: Set Up Duplicate Management

Universal Containers uses a custom object called Projects. When managers assign projects they set a custom field on the project called Estimated Hours. Once set, users should be able to decrease but not increase the value
How can an app builder meet this requirement?



A. Create a formula default value for the custom field.


B. Create a formula held that uses the PREVGROUPVAL function


C. Create a validation rule that uses the ISCHANGED function


D. Create a validation rule that uses the PRIOR VALUE function.





D.
  Create a validation rule that uses the PRIOR VALUE function.

Explanation:

The requirement is to allow users to decrease the Estimated Hours field but prevent them from increasing it. This requires a rule that can compare the new value being entered to the old value that was previously saved on the record.

Why D is Correct:
The PRIORVALUE function in a validation rule returns the previous value of a field before the current save operation began. A validation rule can be written to fire (and prevent the save) if the new value is greater than the old value.
Example Validation Rule Formula:
AND(ISCHANGED(Estimated_Hours__c), Estimated_Hours__c > PRIORVALUE(Estimated_Hours__c))
How it works:
This rule checks if the field was changed and if the new value is greater than the old value. If both conditions are true, the validation rule returns "True," triggers an error, and prevents the record from being saved. This successfully blocks increases while allowing decreases and the initial value setting.

Why A is Incorrect:
A formula field is read-only and is used to calculate a value. It cannot be used to enforce a business rule that restricts user input on another field. It cannot prevent a user from saving a value.

Why B is Incorrect:
The PREVGROUPVAL function is used in summary reports and analytics functions to compare the value of a previous grouping to the current one. It is not used in validation rules or for checking the prior value of a field on a single record. The correct function for this context is PRIORVALUE.

Why C is Incorrect:
The ISCHANGED function only detects if a field has been modified. It returns TRUE if the field is different from its original value. However, on its own, it cannot determine if the change was an increase or a decrease. You need to combine it with a function like PRIORVALUE to compare the old and new values to determine the direction of the change.

Reference:
Salesforce Help - "PRIORVALUE" and "Examples of Validation Rules". The PRIORVALUE function is specifically designed for this use case in validation rules, allowing you to compare old and new field values to enforce complex data integrity rules.

Universal Containers utilizes opportunities and a custom object called Detaited.Sales__c.
The company would like to roll sales metrics up to an opportunity for only Detailed.Sales__c records that have their picklist status set to Active.
What is the recommended method for the app builder to achieve this request?



A. Utilize the AppExchange to download a third-party application that can roll-_up the sales dollars with the appropriate filter.


B. Create a master-detail relationship between the parent and child object with a roll-up summary field that fitters on the status held.


C. Create a lookup relationship between the parent and child object with a roll-up summary held that filters on the status field.


D. Utilize Apex code to roll up the desired amounts.





B.
  Create a master-detail relationship between the parent and child object with a roll-up summary field that fitters on the status held.

Explanation:

Universal Containers wants to roll up sales metrics from the custom object Detailed.Sales__c to Opportunity, but only for records where Status = Active. This is a classic use case for a roll-up summary field, which:
Aggregates values (SUM, COUNT, MIN, MAX) from child records
Can be filtered using criteria (e.g., Status__c = 'Active')
Requires a master-detail relationship between the parent and child objects

✅ Why B is correct:
A master-detail relationship allows the parent (Opportunity) to own the child (Detailed.Sales__c)
You can then create a roll-up summary field on Opportunity that sums sales metrics from child records where Status = Active
This is a declarative solution — no code required

❌ Why the other options don’t work:
A. AppExchange product
Overkill for a simple filtered roll-up — native roll-up summary fields handle this perfectly
C. Lookup relationship
Roll-up summary fields do not work with lookup relationships — only with master-detail
D. Apex code
Apex is powerful but unnecessary here — declarative roll-up summary fields are preferred for maintainability and simplicity

🔗 References:
Salesforce Help: Roll-Up Summary Fields
Trailhead: Data Modeling

Universal Containers wants to create a report to show job applications with or without resumes.
What considerations should the app builder be aware of when creating the custom report type?



A. An app builder is unable to create custom report types for objects they do not have permissions for.


B. Once the report type has been deployed it is unable to be deleted.


C. A primary object selection is locked once the custom report type has been saved.


D. When a custom or external object is deleted the report type and reports remain but cause an error when the report is run.





C.
  A primary object selection is locked once the custom report type has been saved.

Explanation:

To show job applications with or without resumes, the app builder needs to use a custom report type with "Job Applications" as the primary object and "Resumes" as the secondary object.
When defining the relationship between the two objects, the app builder must select the option to include "A" records (Job Applications) "with or without" related "B" records (Resumes).
Once the custom report type is saved, the primary object cannot be changed. This means the app builder must be certain that "Job Applications" is the correct primary object before saving.

Why other options are incorrect
A. An app builder is unable to create custom report types for objects they do not have permissions for. This is a true statement in general, as an app builder needs at least "Read" access to the objects involved. However, it's not the primary consideration for creating a report that includes or excludes related records.
B. Once the report type has been deployed it is unable to be deleted. This is incorrect. A deployed custom report type can be deleted if needed.
D. When a custom or external object is deleted the report type and reports remain but cause an error when the report is run. This is incorrect. If a custom or external object is deleted, the associated custom report types and reports are also deleted.

DreamHouse Realty (DR) has many properties for sale and wants to identify the highest value of all Offer__c records on each Property__c record.
What solution should the app builder use to meet DreamHouse Realty's needs?



A. Master-Detail Child Object


B. Text Area (Long)


C. Multi-select Picklist


D. Lookup Object





A.
  Master-Detail Child Object

Explanation:

Why: To show the highest Offer__c value on each Property__c, you can create a Roll-Up Summary field on Property__c that uses the MAX function on a numeric/currency field from Offer__c. Roll-up summaries are available only when the child (Offer__c) is in a Master-Detail relationship with the parent (Property__c).

Why not the others:
B. Text Area (Long) and C. Multi-select Picklist don’t calculate or summarize values.
D. Lookup Object doesn’t support declarative roll-up summaries (you’d need code or a tool).

universal containers has 20 different workflows on the opportunity object. To ensure that updates are processing properly for all field updates uc has the re-evaluete workflow rules after field change checkbox checked. Recently after adding a new workflow, users have reported receiving errors about workflow limits. What should a app builder look at so address this?



A. Talk to a developer about apex code issues


B. Number of workflows per object limits


C. Workflows that cause each other to fire back and forth recursively


D. Workflows on other objects that are being re triggered





C.
  Workflows that cause each other to fire back and forth recursively

Explanation:

With Re-evaluate Workflow Rules After Field Change enabled, field updates from one Workflow Rule can trigger others, causing recursive execution that exceeds Salesforce’s governor limits (e.g., CPU time). The new workflow likely introduced or worsened this recursion, leading to errors. Review Opportunity workflows, identify recursive loops, and adjust criteria or disable re-evaluation to prevent them.

A: Apex is unrelated; issue is with declarative workflows.
B: No strict limit on number of workflows; issue is runtime recursion.
D: No evidence of other objects’ workflows causing the issue.

Reference:
Salesforce Help - Workflow Limits

Ursa Major Solar's service department gets requests for several types of services, such as installation, repair, and maintenance. Service managers need to be able to tell when maintenance was last done on on asset to help determine If they are meeting contract agreements, but the last maintenance date can be difficult to determine when there are many work orders related to the asset. They think it would be helpful to have a field autopopulated on the Asset record when a maintenance work order gets closed.
What tool should an app builder recommend to help meet this requirement?



A. Visualforce


B. Roll-up Summary


C. Apex Trigger


D. Flow





D.
  Flow

Explanation:

Ursa Major Solar wants to autopopulate a field on the Asset record with the last maintenance date whenever a maintenance Work Order is closed. This is a classic use case for record-triggered automation, and the best declarative tool for this is Flow.

✅ Why Flow is the right choice:
Record-Triggered Flows can run when a Work Order is updated (e.g., status changes to "Closed").
You can add a condition to check if the Work Order type is "Maintenance".
The Flow can then find the latest maintenance Work Order for the related Asset and update the Asset's Last Maintenance Date field.
This is a declarative, scalable, and maintainable solution — no code required.

❌ Why the other options don’t work:
A. Visualforce
Visualforce is used for custom UI pages, not for automation or data updates.
B. Roll-up Summary
Roll-up summary fields only work with master-detail relationships, and Work Order → Asset is typically a lookup, not master-detail. Also, roll-ups can’t filter by status or type dynamically.
C. Apex Trigger
Apex can do this, but it’s code-heavy and harder to maintain. Since Flow supports this declaratively, Apex is unnecessary unless there are complex logic needs.

🔗 References:
Salesforce Help: Record-Triggered Flows
Trailhead: Automate Business Processes with Flow

The marketing team at UVC has a list of 400 leads it wants to upload to Salesforce. The team need to avoid creating duplicate records. Which two actions should be taken to meet this requirement? (Choose 2 answers)



A. Utilize a Lead Matching Rule and corresponding Duplicate Rule to block newly created duplicate leads.


B. Upload the lead list using the import wizard and select a Matching type to prevent duplicate lead creation.


C. Use Data Loader’s update function to import lead and match to existing records based on e-mail address.


D. Enable Duplicate Matching in the Data Management section in Setup and activate the Lead-to_Lead scenario.





A.
  Utilize a Lead Matching Rule and corresponding Duplicate Rule to block newly created duplicate leads.

B.
  Upload the lead list using the import wizard and select a Matching type to prevent duplicate lead creation.

Explanation:

Why these work
A. Lead Matching Rule + Duplicate Rule: Salesforce Duplicate Management lets you define a Lead Matching Rule (e.g., match on Email) and a Duplicate Rule that blocks new duplicates during import or UI/API creates.
B. Import Wizard with matching: The Data Import Wizard supports deduping for Leads—choose a matching option (e.g., Email or Salesforce ID) and set it to prevent creating duplicates and/or update existing where appropriate. Perfect for a ~400-record upload.

Why not the others
C. Data Loader update by Email: Data Loader’s Update requires record IDs or an External ID field; Email isn’t an external ID by default, so it won’t reliably match existing Leads.
D. “Duplicate Matching” / “Lead-to_Lead scenario”: Those aren’t real setup options. Use Matching Rules and Duplicate Rules instead.

Universal Containers has a private sharing model for Accounts and Opportunities and uses Territory Management to grant access to records.
• Sales rep A manually shares an opportunity record with sales rep B.
• Sales rep B has access to the Account even though the Account Is NOT In sales rep B's territory.
• Sales rep C CANNOT see either record.
Based on the information given, why can sales rep B see the Account related to the Opportunity?



A. Sales rep B has implicit access to the Account.


B. Sales rep B was added to the Account team.


C. Sharing set is granting access to the Account.


D. Account was also manually shared.





A.
  Sales rep B has implicit access to the Account.

Explanation:

This scenario tests the understanding of implicit sharing and record access inheritance in Salesforce's sharing model.

Why A is Correct:
In Salesforce, when a user is granted Read access to an Opportunity (a child object), they automatically gain Read access to the parent Account (the parent object) through a mechanism called implicit sharing. This is true even if the sharing model for the Account is Private and the user is not in the Account's territory. Manual sharing of the Opportunity with Sales Rep B grants them Read access to that specific Opportunity. This access implicitly grants them Read access to the related Account, explaining why they can see it.

Why B is Incorrect:
The scenario does not provide any information suggesting that Sales Rep B was added to the Account team. This is an assumption not supported by the facts given.

Why C is Incorrect:
Sharing Sets are a feature used with Customer Portal and High Volume Portal users to grant them access to records based on a relationship between their user account and a field on the record. They are not applicable to standard internal Salesforce users like Sales Reps.

Why D is Incorrect:
The scenario explicitly states that the Account was NOT in Sales Rep B's territory and does not mention the Account being manually shared. The question asks for the reason based on the information given, and manual sharing of the Account is not indicated.

Key Concept:
The principle at work here is that access to a child record can grant implicit read-only access to its parent record. This is a fundamental behavior of Salesforce's security model designed to ensure users can see the context of records they have access to.

Reference:
Salesforce Help - "How Sharing Access Is Calculated". The documentation explains that "Users who have access to a child record (like an Opportunity, Case, or Contact) generally need access to the parent record (like an Account). To ensure users have the access they need, Salesforce automatically grants Read access to the parent record if the user has access to the child." This is known as implicit sharing.

Page 8 out of 29 Pages
Platform-App-Builder Practice Test Home Previous