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.
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.
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.
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
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
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
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.
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.
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.
Universal Containers wants to understand return on investment for the latest advertising
buy. They currently use a private security model for all objects.
What should an app builder recommend?
A. Utilize Account Hierarchies and Roil-Up Summary fields
B. Run an opportunities pipeline report
C. Change to a public security model
D. Configure Campaign Hierarchies and Campaign statistics
Explanation:
Why this is correct:
ROI for marketing spend is tracked in Salesforce via Campaigns. Create a parent campaign for the advertising buy and child campaigns for each channel/ad/creative. Salesforce rolls up child metrics to the parent via Campaign Hierarchy “statistics” fields, and you can run the built-in Campaign ROI Analysis Report to calculate ROI using costs and influenced/won opportunity amounts. This works fine with a private sharing model; no need to change org-wide defaults—just share the specific Campaigns as required.
Why the others are wrong:
A. Account Hierarchies and Roll-Up Summary fields — Account roll-ups don’t measure marketing ROI; ROI is a Campaign concept with Campaign-to-Opportunity attribution.
Salesforce
B. Opportunities pipeline report — Shows stage/amount forecasts, not campaign spend vs. return.
C. Change to a public security model — Unnecessary; Campaign ROI can be measured without altering OWDs.
Reference:
Salesforce docs on Campaign Hierarchies (roll-up stats) and the Campaign ROI Analysis Report.
An app builder needs to create new automation on an object.
What best practice should the app builder follow when building out automation?
A. One Workflow rule per object.
B. One Flow per object.
C. One invokable process per object.
D. One record change process per object.
Explanation:
In Salesforce, when creating new automation on an object, the recommended best practice is to consolidate record-triggered automation into one Flow per object (or per trigger event, such as before/after save). This approach, often called the "One Per Object" design pattern, minimizes the number of triggers firing on the object, improves performance by reducing context switches and governor limit consumption, simplifies debugging and maintenance, and ensures predictable order of execution using features like Flow Trigger Order. It builds on the legacy Process Builder model and aligns with modern Flow-only automation strategies.
This practice helps avoid issues like unintended record updates from multiple overlapping automations, excessive CPU time, or challenges in tracing logic across disparate tools. For complex orgs, use subflows or decision elements within the single Flow to handle branching logic, rather than creating multiple independent Flows.
Why not the other options?
A. One Workflow rule per object:
Workflow Rules are a legacy automation tool (retired in Winter '24) that only support field updates, tasks, emails, and outbound messages. They cannot handle complex logic like Flows and are not recommended for new automation. Consolidating to one Workflow Rule per object was never a primary best practice, as multiple could be used but often led to order-of-execution problems.
B. One invokable process per object:
Invocable processes (autolaunched Flows) are designed for reusable sub-processes called from other Flows or Apex, not for primary record-triggered automation on an object. Limiting to one per object isn't a standard practice and doesn't address core record-change scenarios.
C. One record change process per object:
This phrasing refers to legacy Process Builder terminology (a "record-change process" is a Process Builder process triggered by record changes). While the one-per-object pattern originated here for performance reasons, Process Builder is retired (end-of-life in 2025). New automation must use Flows, making this outdated.
References:
Salesforce Architects: Record-Triggered Automation
Salesforce Help: Best Practices for Designing Processes (Note: Applies to Flow design patterns post-Process Builder retirement)
Universal Containers wants to improve the process to create Opportunity records related to
an Account. Many fields can be populated based on the Account record. Some fields
require input from the user.
What should an app builder configure to meet the requirement?
A. Process Builder triggered from Opportunity update
B. Quick Action on the Account object
C. Quick Action on the Opportunity object
D. Process Builder triggered from Account update
Explanation:
Why B is Correct:
The requirement is to improve the process to create Opportunity records related to an Account. A Quick Action placed on the Account page layout is the perfect solution. This allows a user to be viewing an Account and instantly create a new, related Opportunity without navigating away. The key benefit is that this action can be pre-configured to:
Pre-populate fields from the Account: The action can automatically set the Opportunity's AccountId and map any other relevant fields from the Account (e.g., Account Number, Billing Address) to the new Opportunity record using pre-defined field values.
Require input from the user: The action can present a compact form where the user must fill in the required fields that cannot be pre-populated (e.g., Close Date, Stage, Amount).
Why A is Incorrect:
Process Builder is an automation tool, not a user interface tool. A Process triggered on Opportunity update fires after a record is saved. It cannot help with the initial creation process or provide a UI for user input during creation.
Why C is Incorrect:
A Quick Action on the Opportunity object itself would be useful for updating existing Opportunities, but it is not the most efficient way to create one from a specific Account. The user would first have to navigate to the Opportunities tab, click "New," and then manually find and select the Account. This adds extra steps compared to starting from the Account record.
Why D is Incorrect:
Like option A, this uses an automation tool (Process Builder) incorrectly. A Process triggered from an Account update would fire when the Account is edited, not when a new Opportunity is being created. It cannot interact with the user to gather required input for the new Opportunity.
Reference:
Salesforce Help Article: "Create Object-Specific Actions." Quick Actions are designed specifically to streamline common tasks, like creating related records, directly from the parent record's page, making them a cornerstone of efficient UI design for App Builders.
Universal Containers wants to give sales managers the ability to quickly provide sign off on
an Opportunity via the Opportunity record page when a sales rep
has discounted a deal by 20% to 30%.
Which two features should be used for this requirement?
Choose 2 answers
A. Validation Rule
B. Dynamic Actions
C. Schema Builder
D. Approval Process
Explanation:
Universal Containers wants sales managers to sign off when a discount falls within a specific range (20–30%). This is a classic use case for conditional approval and UI customization. Here's how each correct feature supports the requirement:
🔹 D. Approval Process
Automates the sign-off workflow based on criteria (e.g., discount between 20% and 30%).
Ensures that deals meeting the condition are routed to managers for approval.
Can be triggered from the Opportunity record using a button or action.
🔹 B. Dynamic Actions
Allows you to conditionally display the “Submit for Approval” button directly on the Opportunity record page.
Ensures that the action is only visible when the discount falls within the specified range.
Enhances user experience by keeping the page clean and context-aware.
🔍 Why the other options don’t fit:
A. Validation Rule
Prevents actions but doesn’t enable approvals or UI customization. It’s more for enforcing data integrity.
C. Schema Builder
Used for visualizing and creating object relationships, not for UI or process automation.
🔗 References:
Approval Processes – Salesforce Help
Dynamic Actions – Salesforce Admin Guide
Page 7 out of 25 Pages |
Previous |