Last Updated On : 28-Sep-2026


Salesforce Certified Platform Developer - Plat-Dev-201 Practice Test

Prepare with our free Salesforce Certified Platform Developer - Plat-Dev-201 sample questions and pass with confidence. Our Salesforce-Platform-Developer practice test is designed to help you succeed on exam day.

184 Questions
Salesforce 2026

A developer is using Agentforce Dev Assistant. Inline autocomplete is not available. What are two possible causes?

A. Auto Completions are toggled off.

B. Telemetry settings are misconfigured

C. VSCode has been idle for 1 hour

D. VSCode Inline Suggest is not enabled

A.   Auto Completions are toggled off.
D.   VSCode Inline Suggest is not enabled

Explanation:

A. Auto Completions are toggled off:
Correct. Agentforce Dev Assistant's inline autocomplete depends on the Auto Completions setting being enabled. If this feature is turned off, inline suggestions will not appear.

D. VS Code Inline Suggest is not enabled:
Correct. VS Code must have Inline Suggest enabled for inline autocomplete to be displayed. If the setting is disabled, Agentforce Dev Assistant cannot show suggestions directly in the editor.

Why the other options are incorrect

B. Telemetry settings are misconfigured:
Incorrect. Telemetry configuration is related to data collection and usage diagnostics. It is not the primary setting that controls whether inline autocomplete appears.

C. VS Code has been idle for 1 hour:
Incorrect. Simply leaving VS Code idle does not normally disable inline autocomplete.

Key Exam Point

When Agentforce Dev Assistant inline autocomplete is missing, check:

Auto Completions → ON
VS Code Inline Suggest → ENABLED

Answer: A and D.

A developer deployed a trigger to update the status___c of Assets related to an Account when the Account’'s status changes and a nightly integration that updates Accounts in bulk has started to fail with limit failures.



What should the developer change about the code to address the failure while still having the code update all of the Assets correctly?

A. Change the gerAssetsToUpdac= method to process all Accounts in one call and call it outside of the for loop that starts on line 03.

B. Add a LIMIT clause to the SOQL query on line 16 to limit the number of Assets queried for an Account.

C. Move all of the logic to a Queueable class that queries for and updates the Assets and call it from the trigger.

D. Add List assets = [SELECT Id, Status c FROM Asset WHERE AccountId = :acctId] to line 14 and iterate over the assets list in the for loop on line 15.

A.   Change the gerAssetsToUpdac= method to process all Accounts in one call and call it outside of the for loop that starts on line 03.

Explanation:

The current trigger performs a SOQL query inside a for loop (line 06 → line 15). This is a common anti-pattern in Apex development because it can easily exceed the SOQL governor limit (100 queries per transaction) when processing many Account records in bulk (e.g., through a nightly integration).

To fix this:

Refactor getAssetsToUpdate() to accept a list of all updated Accounts and return all related Assets that need updating.
Move the query logic outside the loop so it runs once per trigger execution, not per Account.
This bulkification ensures the code scales and avoids SOQL limits.

Why Not the Other Options:<

B. Add a LIMIT clause to the SOQL query on line 16...
This would truncate the result set, possibly leaving some Assets unupdated, causing data inconsistencies. Not a valid fix for governor limits in a bulk operation.

C. Move all of the logic to a Queueable class...
Queueable is useful for async processing, but it still doesn’t solve the fact that the code runs SOQL inside a loop. You’d have to refactor the logic for bulk operations regardless.

D. Add List assets = ... to line 14 and iterate in the loop... This keeps the SOQL query inside the method, which is still being called from inside the trigger loop — same bulk processing issue. Just inlining the query won’t prevent hitting limits.

What is a benefit of developing applications in a multi-tenant environment?

A. Unlimited processing power and memory

B. Enforced unit testing and code coverage best practices

C. Preconfigured storage for big data

D. Access to predefined computing resources

B.   Enforced unit testing and code coverage best practices

Explanation:

In a multi-tenant environment like Salesforce, all customers or tenants share the same underlying infrastructure, application instance, and database architecture. Because a single organization's poorly written or inefficient code could potentially affect performance for other tenants sharing that infrastructure, Salesforce enforces strict governor limits and code quality safeguards, including minimum Apex code coverage requirements and mandatory unit testing for Apex code deployed to production.

This is a direct benefit of the multi-tenant model: it encourages developers to write well-tested, efficient, and disciplined code from the outset, which ultimately leads to:

More reliable and maintainable applications.
Fewer production bugs, since functionality must be proven through tests before deployment.
A shared responsibility model where good coding practices are built into the platform's requirements rather than left entirely to individual developer discipline.

This differs fundamentally from a traditional single-tenant environment, where a developer could potentially deploy untested code without the same level of platform-enforced safeguards.

Why the other options are wrong:

A. Unlimited processing power and memory:
This is the opposite of reality in a multi-tenant environment. Because infrastructure is shared among many tenants, Salesforce enforces strict governor limits, including SOQL query limits, DML limits, heap size limits, and CPU time limits, to ensure fair resource allocation. There is no unlimited processing power or memory; resources are deliberately constrained per transaction.

C. Preconfigured storage for big data:
Multi-tenancy does not inherently provide preconfigured storage for big data. Salesforce does provide data storage, but this is not a defining benefit of the multi-tenant architecture being tested here. Storage limits are also governed and constrained per org rather than being unlimited or specially preconfigured for big data use cases.

D. Access to predefined computing resources:
This is vague and does not accurately describe a specific benefit of Salesforce's multi-tenant architecture. While compute resources are shared and managed by Salesforce, this phrase does not capture a defined advantage in the same way that enforced testing and code coverage requirements do. It is a distractor that sounds plausible but does not correspond to the key benefit described in the question.

Reference
Multitenant Architecture - Salesforce Platform
Apex Code Coverage Requirements

A developer wants to send an outbound message when a record meets a specific criteria. Which two features satisfy this use case?

A. Flow Builder can be used to check the record criteria and send an outbound message

B. Approval Process can be used to check the record criteria and send an outboundmessage without Apex code

C. Next Best Action can be used to check the record criteria and send an outboundmessage.

D. Entitlement Process can be used to check the record criteria and send an outboundmessage without Apex code

A.   Flow Builder can be used to check the record criteria and send an outbound message
B.   Approval Process can be used to check the record criteria and send an outboundmessage without Apex code

Explanation:

Why these options are correct:

A. Flow Builder:
Record-triggered flows evaluate specific criteria when records are created or updated and can use an Outbound Message core action or invoke invocable actions to securely transmit data to an external web service endpoint declaratively without writing Apex code.

B. Approval Process:
Salesforce Approval Processes natively support out-of-the-box outbound messages as immediate or delayed actions when record criteria match, without requiring custom Apex programming.

Why the other options are incorrect:

C. Next Best Action:
Next Best Action is a framework used to deliver personalized recommendations and offers to users through Lightning pages. It is not designed to evaluate database record triggers for backend outbound messaging.

D. Entitlement Process:
Entitlement Processes are designed to manage and enforce customer support service-level agreements (SLAs), milestones, and support workflows rather than trigger outbound web service messages.

References
Salesforce Flow Builder: Send an Outbound Message Action
Salesforce Administrator Guide: Outbound Messages in Approval Processes

A custom picklist field, Food_Preference c, exist on a custom object. The picklist contains the following options: 'Vegan','Kosher','No Preference'. The developer must ensure a value is populated every time a record is created or updated. What is the most efficient way to ensure a value is selected every time a record is saved?

A. Set "Use the first value in the list as the default value" as True.

B. Set a validation rule to enforce a value is selected.

C. Mark the field as Required on the field definition.

D. Mark the field as Required on the object's page layout.

C.   Mark the field as Required on the field definition.

Explanation:

To ensure that a picklist field always has a value when a record is created or updated, the most efficient and enforceable approach is to:

✅ C. Mark the field as Required on the field definition

Setting a field as required at the field level (schema definition) ensures that no record can be saved (via API, Apex, UI, Flow, etc.) unless the field has a value.
This enforcement is universal — meaning it applies across all entry points.
This is the most efficient and robust method.

🔹 Reference: Salesforce Help: Make a Custom Field Required

❌ Why the others are incorrect or less ideal:

A. Set "Use the first value in the list as the default value" as True

This only sets a default value, but users or processes can still clear or override it.
It does not enforce that a value must be selected during record creation or update.

B. Set a validation rule to enforce a value is selected

This can work, but is less efficient than using the built-in "required" flag.
Also, it's additional configuration and logic that is unnecessary when a simpler declarative option (field-level required) exists.

D. Mark the field as Required on the object's page layout

This only makes the field required in the UI and only on that specific layout.
It does not enforce the requirement via API, Apex, Flow, or even other layouts.

Page 1 out of 37 Pages