Salesforce Platform Developer 1
Certification Guide

The Salesforce Platform Developer 1 Certification is a credential developed for Salesforce professionals who have experience in implementing programmatic solutions on the Salesforce platform and are looking to verify their expertise.

Working experience of the product is important for this certification in particular as it's designed specifically for professionals with knowledge of development.

Key Facts

The exam is made up of 60 multiple choice questions

105 minutes to complete

The passing score is 68%

There are no prerequisites

Cost is USD $200 and the retake fee is USD $100 if you are unsuccessful

This guide will explain everything you need to think about if you're interested in becoming Platform Developer 1 certified and the core topics of the exam.

In Platform Developer 1, there are 4 topics covered. The topic with the highest weighting is Process Automation and Logic. As it is weighted at almost half of the entire exam, this is an area that you must focus on to do well in the exam.



Process Automation and Logic


User Interface


Developer Fundamentals


Testing, Debugging, and Deployment


Salesforce Platform Developer 1
Certification Contents

The following are the core topic areas of the Salesforce Platform Developer 1 certification and what you're expected to know:

Developer Fundamentals

Learn and understand the basics of the data model in Salesforce and how it can be utilized to meet various types of business requirements. The data model consists of objects, fields and relationships and can be used to model how records are represented in Salesforce. Various types of relationships, such as lookup, master-detail and many-to-many can be utilized to relate objects with one another.

Relationships are used in Salesforce when different objects need to be related. Relationships can be created between standard objects and custom objects (such as Account and Account Performance) or between two custom objects (expense and expense item). Each of the relationship types have different capabilities and implications on record access, the user interface and how to access programmatically.

Developing in a multi-tenant environment with shared resources needs different considerations compared to traditional development. There are a number of considerations that a developer needs to be aware of, such as shared resources, governor limits and automatic upgrades.

The MVC pattern separates the data layer (model) from the business logic (controller) and from how the data is presented in the user interface (view). Know how the Salesforce platform features correspond to one of the 3 components of the MVC pattern.

Salesforce started life as a Salesforce Automation Application with some of the core objects including Accounts, Contacts, Activities, Opportunities, Quotes, Products and Price books. It has continually expanded over the years and now includes Support objects such as Cases and Solutions and Marketing objects such as Campaigns. It is important to be familiar of the key objects and their capabilities.

The capabilities of declarative customization are continually increasing and reducing the need for Apex code, however complex scenarios still have the need for Apex code. Know when Apex code is required and when declarative tools can be used to satisfy a requirement.

Relationship Types



Many to many

External Lookup

Indirect Lookup


Be aware of the impact of schema design and modification on programmatic development using Apex. Schema refers to the representation of the data model and relationships between various standard and custom objects in Salesforce. The behavior of objects and fields changes when they are referenced in Apex and Visualforce pages. Although some changes can be made, their impact on organizational code should be taken into consideration.

Schema Builder provides the ability to visualize and create entity relationships, and also view the relationship structure and the fields that are available for each object. This is demonstrated in an interactive environment which shows the relationship using lines connecting the objects. Schema Builder is used to easily identify the relationship between the objects and create new custom objects and fields to customize and design the data model.

In regards to the options and considerations for importing and exporting data into Salesforce development environments, there are two main options when considering how to import data into a development environment, the Data Import Wizard or Data Loader. It is important to understand the considerations for each tool so that the most appropriate solution can be

Process Automation and Logic

The  Process Automation and Logic topic is the highest weighted and section with the most objectives. It can be broadly broken up into 3 categories: declarative features, basic Apex, and advanced topics.

Understanding declarative features involves understanding the capabilities and use cases of formula fields, roll-up summary fields and the automation tools, such as workflow, process builder and visual workflow. It is important to know when declarative features can be used to satisfy a requirement and when Apex classes and triggers need to be used. 

Learn how to declare variables and constants and assign values using expressions in Salesforce. Apex provides various data types for variables, constants, expressions and expression operators for initializing and accessing data programmatically. All variables and expressions have a data type in Apex. A collection such as list, set or map can be utilized to store multiple elements of a data type. Static variables and class objects can also be declared in Apex.

Understand the different primitive and complex data types available in Apex and when they can be used. Apex supports different data types for storing different types of variables. Primitive data types are the most basic data types provided by Salesforce whereas complex data types are defined by the user based on programming requirements. Complex data types such as collections require primitive data types and can be used to specify a list, set or map of elements. Other data types such as sObjects and enum can also be utilized in Apex.

Be familiar with how to use various control flow statements in Apex, including conditional statements and procedural loops. Apex provides the ability to control flow of code execution by utilizing if-else statements, for loop and do-while loop. These work similarly to Java and can be used to employ decision-making, looping and branching in an Apex program. Loop control structures such as break and continue are also supported by Apex.

It is important to know how Apex classes and interfaces can be written and used in Salesforce. A class is a blueprint which contains functionality or logic in Apex. It contains variables and methods which can be used to specify the state and behavior of objects. An instance of a class is referred to as an object. An Apex interface is similar to a class but does not contain implemented methods. Both classes and interfaces follow the object-oriented programming principles and syntax of the Java language.

Understand how SOSL, SOQL and DML statements can be used in Salesforce to find, query and manipulate records, respectively. SOSL can be used to create text-based search queries against the search index. SOQL is used to search Salesforce data for specific information. Both can be used in Apex but have different use cases depending on the type of information retrieved. DML statements are used for data manipulation operations such as insert, update, upsert, delete, undelete, and merge.

Know how to write controllers that implement custom logic for Visualforce pages. Also understand the use of various controller methods including getter, setter and action methods for retrieving and setting data and responding to user inputs. Apex provides the ability to create Apex classes which can be used as custom controllers when standard controllers are not sufficient for custom logic and data manipulation by a Visualforce page. Controller extensions can also be used to extend both standard and custom controllers.

Understand the various use-cases of Visualforce controllers, and how to associate and use standard controllers, standard list controllers, custom controllers and controller extensions with Visualforce pages. When standard functionality and behavior are sufficient for a Visualforce page, standard controllers are used. However, if completely new or additional functionality is required, or existing functionality needs to be overwritten, custom controllers and controller extensions can be used. Furthermore, standard list controllers allow retrieving a list of records for display on a Visualforce page, which is important to understand.

Know how to programmatically access metadata information about the data model within Apex. Salesforce provides dynamic Apex to access sObject and field describe information. The describeSObjects Schema method, tokens and describe results can be utilized for describing sObjects programmatically. Metadata information, such as a list of top-level standard and custom objects and their fields can be retrieved, which enables developers to create more flexible applications.

Understand the different design patterns for Apex triggers and some best practices that can be followed when designing triggers. Apex triggers can be used to handle various types of operations on an object programmatically. However, usage of certain design patterns ensures simplicity, reusability and convenience when utilizing code for different purposes and processing several thousand records. There are three important design patterns to be familiar with, namely, one trigger per object, use of a trigger handler class, and bulk triggers.

The relationship between Apex Transactions and the save order of execution is critical to understand including the potential for cascading and recursion due to triggers and workflow rules. It is important to know the key steps in the save order of execution and how triggers are impacted by it to understand the events that occur when a record is saved. The relationship between execution order and execution context can help in resolving issues that occur as a result of the events. Furthermore, cascading and recursion due to triggers should be taken into consideration when creating triggers and workflow rules to prevent potential issues with records.

This topic describes how to implement exception handling in Apex with examples of built-in exceptions. It also explains how exception methods and custom exceptions can be used in Apex. When an exception is unhandled in Apex, it brings code processing to a halt. Exception handling allows developers to try running some code, catch a potential exception, and run a block of code whether there is an exception or not. This robust framework for exception handling allows recovery from errors and ensures proper functioning of code.

Be aware of the programmatic techniques to prevent security vulnerabilities in Apex and Visualforce including SOQL injection, Cross Site Scripting (XSS), Cross Site Request Forgery and Data Access Control Issues.

Apex impacts the ability to make declarative changes. The following are examples of the types of changes are not allowed if a field is referenced in Apex or in a Visualforce page: renaming fields, changing the field type and deleting fields.

User Interface

Understand the different ways of displaying data in Salesforce using Visualforce pages. When standard functionality is not sufficient to display data in Salesforce, Visualforce pages are used to create custom user interface elements that can retrieve data from objects and other resources in Salesforce. Visualforce is a user interface development framework that enables replacement and extension of Salesforce’s built-in features for accessing data, as well as creation of custom user interfaces with data from different sources. Know the different types of data that can be displayed, how data can be retrieved and made available on Visualforce pages, how global data can be displayed on Visualforce pages, how data from detail pages and related lists can be displayed and how tables and data from related objects can be displayed.

There are various types of web content that can be used in Visualforce pages. Visualforce allows the use of custom content using HTML, CSS, JavaScript, and other in-built components that can display information from external sources. Content can be stored in Salesforce as static resources and then called from Visualforce pages. Addition of web content to Visualforce helps in customizing the look and feel of pages according to the organization’s requirements.

There are several ways in which Visualforce pages can be used in Salesforce. Visualforce allows developers to create custom user interface elements and customize the look and feel of applications in the Salesforce platform. When an organization has complex business processes which require unique UI and are unsupported by existing functionality, Visualforce pages can be utilized. There are several options that are available when it comes to incorporating Visualforce pages, including custom tabs, embedding in page layouts, launching from custom buttons, overriding standard buttons, using as the data source for dashboard components, using in a custom console component or incorporating in the Salesforce mobile App.

Understand the benefits of the Lightning Component Framework in Salesforce. The Lightning Component Framework allows development of dynamic web applications on the Salesforce platform. Developers can build responsive applications for any device by using this framework. It is ideal for use with the Salesforce mobile app, Salesforce Lightning Experience and Experience cloud sites. Benefits include increased performance, reduced development time, ability to use predefined components and an event driven architecture.

Know the resources that can be utilized in a Lightning Component. Lightning components are self-contained and reusable units of an app which represent a reusable section of the User Interface. Components can be anything from a single line of text to an entire application. The Lightning Component Framework provides pre-built components. The Lightning Component framework provides the two programming models, Aura component and Lightning web component, for developing custom Lightning components on the Salesforce platform. 
While the following resources can be contained in an Aura component bundle: Component or Application, CSS Styles, Controller, Design, Documentation, Renderer, Helper & SVG File, a Lightning web component can consist of the following contents: HTML, JavaScript, CSS File, and configuration file.

Know the requirements describing interactions between Apex and various types of page components. Interactions between declarative and programmatic processes such as Apex and flows are discussed to provide a better understanding of how server-side logic can be invoked in response to user interaction on components that are displayed on a user interface. Implementation of Einstein Next Best Actions on a Lightning page provides an opportunity to illustrate a high-level scenario where Apex, flows and Lightning components are used to deliver a functionality and user interface requirement.

Testing, Debugging & Deployment

The testing topic requires knowledge of the testing framework in Salesforce and its main features that can be utilized to ensure successful long-term development and success of the application. When an application in Salesforce needs to be deployed to customers, testing plays a key role, and the testing framework makes it possible to validate that it works as expected. It is also used to ensure that any changes and extensions to an application do not break functionality. In Salesforce, testing is required for a successful deployment in production.

Know how to write unit tests for Apex classes and triggers as well as custom controllers and controller extensions. Various aspects and best practices should be considered while writing unit tests in Salesforce. A specific structure should be followed for creating unit test classes with test data. Furthermore, governor limits play an important role in Apex, which makes it important to consider their impact on test methods. Be familiar with the use of additional methods when permissions and record sharing needs to be taken into account.

Creating test data is essential to make sure that test classes can perform operations on a set of transient records without making any changes to actual data in Salesforce. Test data is used for the purpose of testing code only and is deleted automatically after test execution. This makes data management easier since organizational data remains untouched and test data cleanup is not required. Be able to identify the various sources of test data as well as ways of utilizing them in test classes.

Determine the various ways of running test classes. Salesforce provides multiple options for executing tests, such as the user interface, Developer Console, Visual Studio Code,  and the Salesforce API. Each option has features which can be utilized for running unit tests and checking their results in order to verify Apex code functionality. Different groupings of unit tests can be used for running tests. Tests can be run synchronously in real time or asynchronously so that the user doesn’t have to wait for the test execution to finish.

The debugging topic requires familiarity with the various types of debug logs in Salesforce. The different tools that can be used for debug and deployment and the processes used for deployment as well as the different types of Salesforce environments, and what they are typically used for.

Debug logs are used to track events that occur in an org. Various operations and processes can be recorded by a debug log. A debug log can be used to validate an application’s behavior in Salesforce. Information can be viewed in debug logs regarding the success and duration of events. They can also be used for troubleshooting and resolving issues by setting up user trace flags.

The Developer Console, Workbench, and Visual Studio Code have various capabilities and security implications. These tools provide a number of functions, such as executing code and tests, querying data, and migrating data and metadata from one environment to another. Developer Console is generally used for writing and testing code. Visual Studio Code is used for a variety of functions related to creating, modifying and deploying applications. Workbench is a web-based suite of tools that can be used to interact with a Salesforce instance using the available Salesforce APIs.

When considering moving metadata between environments, the environment type of the source and target will be a consideration. For example here are some possible scenarios of source and target environments. Options to move Metadata between environments include Change Sets, Ant Migration Tool, Visual Studio Code, Workbench and Unmanaged Packages.

Different and multiple Salesforce environments are used for various purposes, such as development, integration, testing, and training. Development environments are used for customization and application development. Testing environments can be used for integration and user acceptance testing. A staging environment can be used for a test deployment before migrating changes to production. It is important to know which environment is appropriate for a certain type of activity.

To prepare successfully for the certification exam, we recommend to work through our

Platform Developer 1 Study Guide and Platform Developer 1 Practice Exams

Platform Developer 1
Study Guide

Every topic objective explained thoroughly.
The most efficient way to study the key concepts in the exam.

Platform Developer 1
Practice Exams

Test yourself with complete practice exams or focus on a particular topic with the topic exams. Find out if you are ready for the exam.


  1. Julio Cantos

    I think there might be a wee bit of missing information under the ‘Developer Fundamentals’ header: it ends in
    — It is important to understand the considerations for each tool so that the most appropriate solution can be
    I don’t think anyone would be a loss because of this, but still it feels weird 🙂

  2. Christine Ostrander

    Hi! I am beginning my studying journey for the Dev 1 Cert, but do not have experience coding. Does the study materials cover the coding aspects needed for Dev 1? Where can I find resources to get me up to speed on that aspect of the Certification?

    1. Ian Focus Team

      Hi Christine, thanks for the inquiry. The study guide introduces you to code-related aspects in Salesforce such as Apex, Visualforce, custom Lightning components, as well as SOQL/SOSL. The depth of the coverage may vary from topic to topic, but reference links are provided in each study guide to know more information on the topics. Although the Platform Developer 1 exam is catered for people who have some developer background, there always are useful links that can help you get up to speed. Here are some links, for example:

  3. Lee B

    Why does the Many to Many relationship type point to External Lookup? Couldn’t this be a junction object within Salesforce?

    1. Ian Focus Team

      Hi Lee, thanks for the enquiry. The table just contains a (two-column) list of the different relationship types, and, yes, a many-to-many relationship can be created using a junction object.

  4. Parul Kachhia

    I successfully passed Salesforce Platform Developer I (W120) today with first attempt. The collection of Practice test Exams are great. Thank you so much for great materials.

  5. Adhilakshmi Krishnamurthi

    I am thankful to focusonforce for all the thorough collections of practice test questions for Salesforce Admin Certification.I successfully Passed my Salesforce Administrator certification in the first attempt itself.Thanks Again.

    1. Rielle G.

      Awesome news, adhilaxmi.k2019! Congratulations on clearing the exam on your first attempt! The whole team is happy to know that our materials helped, cheers!

Copyright 2024 -

Copyright 2024 -


Not recently active