Learn more about Salesforce Administrator Certification Exam

This Salesforce Administrator Certification will help you have a better understanding of Salesforce CRM fundamentals. Also, demonstrate your expertise and abilities in the platform. You should be able to maintain a Salesforce org. Respond to frequent business requirements and inquiries, and last but not least, execute Salesforce administrative tasks. You will have knowledge of the features available for end-users as well as the configuration options available. Learn more about the Admin role and the skills they need to succeed. Start completing this 10 minutes module on Trailhead.

Kevin, who has recently joined Oktana, became interested in Salesforce before joining our team. He had heard of Salesforce on another job, but he never really understood what Salesforce was. Time passed and he decided to finally study and get his first certification. Now he has completed this certification and believes that it is a great start for a Salesforce career path. Even though this is not a certification that requires development. It motivates you towards achieving even more certifications, such as Dev I. 

About the exam:

The Salesforce Administrator Certification consists of 60 multiple-choice questions. And 5 additional non-scored questions to be answered in a 105 minutes exam. The passing score is 65% and the registration fee is USD 200, according to the laws of your country, extra applicable taxes may be required. 

Certainly, there are no official prerequisites for this certification. However, it is highly recommended to complete the Salesforce Trailhead Trailmix Prepare for Your Salesforce Administrator Credential before scheduling the exam. In this trail, you will find almost everything you need to know to pass the exam and ensure you’re an expert in the area. Additionally, we encourage you to complete the Study for the Administrator Certification Exam Trailmix to review your knowledge and learn more about the exam itself.

Also these Trailhead Superbadges can also be used before the exam to help prepare:

Exam structure:

The exam is structured around 12 main features and functions: 

  • Organizational Setup – 3%
    • Salesforce Platform Basics
    • User Authentication
    • Preparing the Salesforce org for users

  • User Setup – Weighting 7%
    • User management
    • Customization of an org to support new business units

  • Security and Access – 13%
    • Data Security
    • Identity Basics

  • Standard and Custom Objects – 14%
    • Data modeling
    • Lightning Experience Customization
    • Customization of Salesforce Objects

  • Sales and Marketing Applications – 14%
    • Accounts and Contacts for Lighting experience
    • Lead and Opportunities for Lightning experience
    • Products, Quotes, and Contracts
    • Campaign basics
    • Customization of a Salesforce path for a team

  • Service and Support Applications – 13%
    • Service Cloud for Lightning experience
    • Cloud Efficiency
    • Knowledge Basics for Lightning experience 
    • Build a community with Knowledge and chat

  • Activity Management and Collaboration – 3%

  • Data Management – 10%
    • Data Management 
    • Import and export with Data Management tools 

  • Analytics—Reports and Dashboards – 10%
    • Reports and Dashboards for Lightning Experience 

  • Workflow/Process Automation – 8%
    • Lightning Flow

  • Desktop and Mobile Administration – 3%
    • Lightning App builder 

  • AppExchange – 2%
    • Appexchange basics 

Final recommendations

Kevin shared that the hardest topics for him were Service and Support. Why? Because he did not have background expertise in the area. He also suggested paying extra attention to the reports-related modules because there is a wide variety of topics and can easily confuse you. He recommended not underestimating this certification. Also, take extra time to review all features and functions before taking the exam to ensure that you have the knowledge you need to pass. 

Even though the Salesforce Administrator Certification is in the career path of Quality Assurance and Devs, most usually start with the Dev I Certification. Kevin, on the other hand, recommends taking this certification first to get a solid foundation in Salesforce. It will help you take future certifications.

At Oktana, after new employees complete their one-month onboarding process they are ready to sit for this exam. We provide all the resources mentioned above as well as exam mockups and additional tips to ensure success. 

We are now hiring! Check out our open positions here

Salesforce Admin Footer

Get started with Salesforce Platform Developer I Certification

The Salesforce Certified Platform Developer I is probably one of the most important and complete certifications that Salesforce offers. Additionally, it is a prerequisite for many other certifications such as Dev II and it is the first step to becoming a System Architect. At Oktana we encourage our developers to achieve this certification in order to empower their Salesforce careers. It is an excellent asset to demonstrate to their peers and customers that they have the required skills to provide a successful project.

If you have already taken this certification, we recommend you to read our Salesforce Developer II Certification article.

For the purpose of this article, we have interviewed Bruno and Stefania, two new Oktana employees who completed this certification before starting to work with us. We’ll take a look at the certification description, prerequisites, and the exam itself.

Certification Audience Description:

Salesforce claims that this certification targets people who have “experience developing and deploying basic business logic and user interfaces using the programmatic capabilities of the Lightning Platform”.  Bruno and Stefania agree and extend the target audience of this report to “anyone willing to undertake a developer path in Salesforce”. 


There are no official prerequisites for this certification. Salesforce claims that generally, people who undertake this certification have at least 2 years of experience as a developer and 6 months of experience on the Salesforce Lightning Platform. Our developers, on the other hand, believe that you can start preparing for this certification after only 4 weeks of experience with the Salesforce platform. 

About the exam:

The Salesforce Certified Platform Developer I exam has the following characteristics:  

Content: 60 multiple-choice questions + 5 non qualified 

Time: 110 minutes  

Pass mark: 65%  

Exams can either be taken online or onsite at a testing center.

No hard-copy or online materials may be referenced during the exam.  

Exam Outline:

The exam is structured around 6 main topics. These are: 

  1. Salesforce Fundamentals – Weighting 7%
  • Describe the tools and technologies that power development on the Salesforce platform.
  • Demonstrate expertise in working with Apex and Aura components.


  1. Data Modeling and Management – Weighting 13%
  • Give your data structure with objects, fields, and relationships.
  • Demonstrate expertise on how to import and export data in Salesforce.
  • Customize without writing code by using point-and-click logic


  1. Logic and Process Automation – Weighting 38%
  • Automate processes for every app, experience, and portal with declarative tools.
  • Use Apex to manipulate data 
  • Write Apex triggers to perform custom actions
  • Show expertise in search solutions


  1. User Interface – Weighting 25%
  • Use Visualforce to build custom user interfaces for mobile and web apps.
  • Build reusable, performant components that follow modern web standards using Salesforce Lightning Web Components


  1. Testing, debugging and deployment – Weighting 17%
  • Write robust code by executing Apex unit tests.
  • Describe the testing framework and requirements for deployment.  
  • Describe how to monitor and access various types of debug logs.  
  • Demonstrate expertise in capabilities and security implications 


Bruno and Stefania agreed that the most interesting thing about this certification was learning how to break with the “developer paradigm” of wanting to make all changes using lines of code. This certification teaches you how to customize your platform by using the tools provided by Salesforce. This allows you to work more efficiently and effectively!

Preparing for the exam:


It is highly recommended to complete the Salesforce Trailhead Trailmix “Prepare for Your Salesforce Platform Developer I Credential” before scheduling the exam. In there you will find almost everything you need to know to pass the exam and ensure you’re an expert in the area. Additionally, we encourage you to complete this Study for the Platform Developer I Exam Trail to review your knowledge and learn more about the exam itself. You can also choose to take a Trailhead Virtual Bootcamp for Platform Developer I certification. The 30-day course will teach you everything you need to know and includes a $200 USD voucher to sit for the exam. The price for the course starts at $450 USD and you can register by clicking here. Bruno recommends finishing all Trails related to this certification before starting to practice on Focus on Force, which provides study guides and practice exams.

At Oktana, after new employees complete their one-month onboarding process they are ready to sit for this exam. We provide all the resources mentioned above as well as exam mockups and additional tips to ensure success. 

Both of the developers we interviewed for this article think that this is a GREAT certification to have and would 100% recommend it to everyone working with Salesforce. What are you waiting for?

We are now hiring! Check out our open positions.

Footer Blog


Python and Salesforce

Today’s post is about, you guessed it, using Python and Salesforce together. Salesforce offers a few different REST API endpoints that allow us to interact with our org. They also offer a SOAP API, but we’re not going to use it today. In fact, we don’t need to worry about the endpoints at all. Thanks to a Python library called Simple-Salesforce.


We could do this all by hand with the built-in requests library. You would have to handle sessions, OAuth process and save tokens, deal with request headers, encoding and decoding JSON, creating configs to handle all the different endpoints, etc…


Simple-Salesforce Python Library



This is where the wonderful world of open source software comes to the rescue. A man named Nick Catalano created a library called simple-salesforce. From what I understand, he isn’t actively developing it anymore, but due to open source, the community has picked up adding features. It has about 50 contributors as of July 8, 2020. The lib is being actively developed, with new features added like bulk API support and formatted SOQL queries!



With a bit of the background out of the way, let’s start digging into the library and see what we can do with it. First, no better way to explain what simple-salesforce is than to quote the README itself:


Simple Salesforce is a basic Salesforce.com REST API client built for Python 3.3, 3.4, 3.5, and 3.6. The goal is to provide a very low-level interface to the REST Resource and APEX API, returning a dictionary of the API JSON response.

Simple Salesforce


In plain text this quote means Python 3.x is supported, REST requests are handled for us, and the data we want comes back as a native Python data type. Great! Just what we want.


Login Information


First up, we’ll need a few things from Salesforce. Three things to be exact. Our username (email), password, and security token. The username and password should be pretty easy to find in your profile settings in your Salesforce org, but where do we find the security token? We don’t really see it, rather we’ll need to reset it.










After clicking “Reset Security Token” , you should be sent an email containing your new token. Save this, we’ll need it in the next steps. That’s all we need from Salesforce to get up and running. Now that we have that, let’s start building our Python script and start playing with our org.


pip and pipenv



But first, a quick word about PIP. While working on this example, there was an update to simple-salesforce lib. Github has the current version and we need the format_soql method from it. But pip (PyPi) hasn’t been updated with the new version as of yet, July 2 2020. So, we’ll need to install it via it’s repo on Github.


pipenv install -e git+https://github.com/simple-salesforce/

If you are using the demo repo I built, we won’t need to worry about the requirements or dependencies if using pipenv. The demo has a Pipfile that’s pulling from the repo already thanks to the magic of pipenv.

The code

Now, let’s write some code. First up, we’ll bring in the libs we’re going to use. The only one that is not part of the standard lib is simple-salesforce:

from simple_salesforce import Salesforce, format_soql
from pprint import pprint
import json

Simple enough, import simple-salesforce, pprint (pretty print), and json. pprint is only used to make the terminal output look better, so it’s not needed for the core examples. json is used to get the credentials from a .json file, which is what we’ll do next.

# open file holding our login information
# we have the login info in a separate file so we can
# add it to .gitignore to help prevent leaking the information
# environment variables could also work
with open("login.json", "r") as login_file:
    creds = json.load(login_file)

Keep credentials secret

If you were on a project working in a private repo and multiple people needed access to the login credentials, keeping login info in the script itself would be okay, not ideal but okay. The reason we’re doing it is because it’s good practice and it’s open to the public on Github. So hiding and not committing sensitive information is important. This goes for any language or code base.

With that disclaimer out of the way, I included an example login.json file called very creatively “EXAMPLE_login.json“. Let’s take a quick look at it.

    "login": {
        "username": "sfdemo@kbcarte.com",
        "password": "My-REALLY-amazing-password",
        "token": "kdjfghdgfFGJbDFgd36DFGHDfgh"

Very simple json object only containing the three things we got from the last steps. You can just copy/paste the “EXAMPLE_login.json” and rename it to just “login.json“, then update it with your login information. You can do this in the file explorer or VSCode, but here’s a quick example to do it from the command line.

cp EXAMPLE_login.json login.json
vim login.json

Salesforce Object

With our new login information, we can create the salesforce object back in our python script.

sf = Salesforce(username=creds['login']['username'],

And that’s it! We now have an object that represents our org, and now we can start doing cool things like SOQL or DML. Next, since we have everything we need to start awesomeness, let’s try a simple SOQL query.

SOQL Query

# an example of running a simple SOQL query
SOQL = "SELECT Id, Email FROM Contact"
data = sf.query(SOQL)
for d in data['records']:
    pprint(f"{d['Id']} -- {d['Email']}")

We defined the query string to get the Id and Email from all the Contacts, called the query() method of our salesforce object, then looped through the returned records and display the results. A note to those new to Python, in the pprint() we use something called an f-string or format string. It makes it easier to embed variables in strings, much like the way Aura Components handle expressions with {!v.my_var}

SOQL is cool and all, but what about adding new data to our org? We can do that too, very easily. We’ll even try using the bulk api to insert 1,000 record. But first we need to create 1,000 records. This is going to be mock or fake data just for the sake of simplicity. We’ll also be testing on the Account object, so only thing required for new records is the Name field.

data = []
for i in range(0,1000):
        "Name": f"Bulk Test {i}"

Now we have a list of dictionaries that represent our record data. Here we have a for loop filling a list with new items. We could also use list comprehension to replace these 5 lines of code with just one.

data = [{'Name': f"Bulk Test {i}"} for i in range(0, 1000)]

Bulk Insert

To bring these new records into Salesforce, we use the .insert() method for the object we want, coming from the salesforce object we created. Confused yet? Here’s the insert code, it should help make things more clear.

# insert the new account using the bulk api
x = sf.bulk.Account.insert(data, batch_size=10000, use_serial=True)

Here, we’re telling our org we want to use the bulk api “sf.bulk“, then which record object we’re working with “.Account.“, and finally what we want to actually do “.insert()“. We could use any object too, doesn’t have to be just Account. Even custom objects work, so instead of where Account is, we can replace it with something like sf.bulk.MyCustomObj__c.insert(..... We can also specify the batch size, or to process in serial.


If you visit your org and take a look at all Accounts, you should see 1,000 new accounts with names like “Bulk Test 42”. We can also try doing another SOQL query, this time we’ll use the bulk api for the query. We’ll also show how to use things such as “LIKE” in SOQL statements.

# now lets get those records so we can delete them
SOQL = format_soql("SELECT Id, Name FROM Account WHERE Name LIKE '{:like}%'", "Bulk Test")
the_accounts = sf.bulk.Account.query(SOQL)

Simple-salesforce now comes with the handy little method called format_soql that allows us to do things such as LIKE. format_soql is also the reason we used the Github repo for pip instead of what’s on PyPi, the new method was just introduced in the last 2 weeks.

Now that we know we can insert and add new data and records to salesforce, let’s see about removing it. Looking at the README, seems like the delete() method needs a list of records containing the Id of the record to be deleted. The records need to be a key-value pairs or dictionary just like how the query was returned. We already have all the Id’s for our inserted record from the “bulk.query()

{'Id': '0013h00000EdP87AAF',
  'Name': 'Bulk Test 998',
  'attributes': {'type': 'Account',
                 'url': '/services/data/v42.0/sobjects/Account/0013h00000EdP87AAF'}}]

Looks like simple-salesforce also returns something called “attributes“. This just tells use which object we’re working with and which api endpoint we got the information from. For our example, and for the .delete() method, we only need the Ids. So let’s clean up and make a new list with only what we want.

account_ids = []
for a in the_accounts:
    account_ids.append({"Id": a["Id"]})

Here is another opportunity to practice list comprehension! See if you can get that for loop down to one line.

Bulk Delete

So now we have the list of Id’s, now we just simply call the delete() method and go refresh our org’s Account list.

data = sf.bulk.Account.delete(account_ids, batch_size=10000, use_serial=True)

All the records we inserted are now gone!

Final Thoughts

In conclusion, let’s recap what we’ve learned. For one, Python is awesome. Second, integrating Salesforce in a Python project is very very simple. With only three pieces of information, we can create a native Python object representing our Salesforce org, do things with the object like SOQL and DML, and finally have access to multiple salesforce API such as bulk or search.

This is only scratching the surface. We can do much more and simple-salesforce also has methods for metadata and describe. From this basic example, we could bring in Salesforce data to Flask API’s we build or insert new data to Salesforce from a data scraping crawler we make in Python.

We can also harness the power of Python’s ecosystem of visualization and reporting such as Pandas or SciPy. Nothing stopping us from grabbing Salesforce data and running it through machine learning or neural networks using PyTorch or TensorFlow.

If you’ve made it this far, thanks for reading! Here I’ll link the demo repo containing all the code discussed in this post and a YouTube video of my presentation. Also, if you are interested in learning more about Python, you can check this article: How to do Time Series Analysis with Python & Pandas.


Resourcing with Oktana

When you outsource development, nearshore or onshore, you probably wonder about resources and whether they’re going to work well with your internal team. At Oktana, we consider our team to be your development team. We take pride in working to get the right help for each project, whether it’s a designer, developer or a whole team. Many of our clients even choose to continue with the same team on multiple projects.

Let’s take a look at how resourcing works at Oktana.

Step 1. Gather data

First, we need a clear picture of your company and project. Your account manager will work with you to understand skill requirements, project scope and anything else you feel is essential. For example:

  • Will we work alongside your internal team? 
  • Will we need to integrate with existing systems? 
  • Are there preferred development platforms, frameworks or languages? 
  • Is business analysis, design or test automation part of the scope? 

We work with you to define “done” for the project. We are an Agile company, so this often means defining a minimum viable product, or MVP. These conversations help us determine a reasonable start and end date for the project.

Step 2. Select resources

Now that we have an idea of your needs, our resourcing team will build your development team. We want to ensure your team brings the skills to meet all of the technical requirements for your project. We also want to ensure they’re a good fit in terms of personality and experience.

Everyone should feel confident in their ability to work together.

Step 3. Review resources

As our resourcing team builds your development team, you have a few options depending on how involved you want to be in the process. You can let us handle the entire process, or you can be far more hands-on. 

If you want to be more hands-on, we’ll work with you to review a set of developer profiles. You can also conduct developer interviews to meet each team member before you sign-off on your development team.

What’s a developer profile?

Our resourcing team compiles a developer profile for each of our developers, which provides you with a good overview of their skillset, certifications and experience.

Step 4. Meet your development team

Our teams receive English tutoring and overlap with most of the US workday. Because of this, you are always able to chat or run planning sessions, review specs and do demos face-to-face by video. This is your development team. 

As your project grows, or requirements shift, your account manager will work with you and our resourcing team to adjust the team to meet those needs.

We hope all of this information helps you understand the resourcing process better and by extension how our teams work. Our team has worked with different organizations and their projects. We are Salesforce platform experts and offer custom development to help you build your platform and solve the right problems. If you want to know more about our work, go check out our latest success stories.

Oktana is Growing: 200 Developers

  • The first half of 2019 has been a period defined by growth and expansion for Oktana.

200 Developers

We are thrilled to report we’ve officially reached a headcount of over 200 developers, testers and designers worldwide. As our family grows, our available skills grow which is exciting for all of our partners.

Introducing, Paraguay

Our company was founded in Montevideo, Uruguay. Like any technology company, we’re always on the hunt for great talent, encouraging our team to learn new skills to provide additional value to our partners. With that in mind, we expanded into neighboring Paraguay in late 2018, opening an office in the capital, Asunción. Over the past six months, we’ve been able to bring on new team members in Paraguay in a wide variety of roles. The team has become an essential part of the Oktana family.

Why Paraguay? The population is young and entrepreneurial. There has been increased investment by the government in science and technology and several accelerators and other programs have launched to help fuel entrepreneurship. For us, this is the right environment to find developers eager to work on big projects and expand their knowledge.


Asunción, Paraguay

Fun Facts about Paraguay

  • Population: 7,000,000+
  • Slightly smaller than the state of California
  • Literacy rate is 94% (vs. 86% in the United States)
  • World’s fourth-largest exporter of electricity
  • Host of Guinness Book of World Records world’s largest barbecue, attended by approximately 30,000 people

Next Stop: Peru

With offices in New York, San Francisco, Montevideo, and now Asunción, where are we headed next? After the successful expansion into Asunción, we looked for other cities to grow into and found Lima. So, we’re excited to announce our office in Lima, Peru is open and ready for business.

Why Peru? The capital, Lima, has a population of over nine million people, making it one of the largest cities in South America. Because the majority of our customers are based in the United States, it’s important for us to ensure our team schedules align with US timezones and work hours to enable collaboration. Like Paraguay, Peru’s workday naturally overlaps with the US workday. Peru is a growing and stable country, so we’re confident it’s a place we will be able to continue to grow.


Lima, Peru

Fun Facts about Peru

  • Population: 30,000,000+
  • Nearly twice the size of Texas
  • Founded in 1551, National University of San Marcos is the oldest in the Americas
  • Incan Empire was larger than imperial Rome at its peak
  • Home to both the world’s highest sand dune and deepest canyon

Company Culture

As we continue to expand, it’s important to ensure our Oktana family feels connected regardless of location so we’re increasingly focused on building our company culture and communication between offices. As the year progresses, we may reach out to you, as our partners, to share your story so each developer is able to better understand the projects keeping their colleagues up at night.

MuleSoft & Informatica Certification

With a growing team, we’ve also expanded on our certification game. We believe in continuous learning, so our developers are always training and working on new certifications. We recently stepped outside of core Salesforce certifications to explore other options that fit our team, including MuleSoft and Informatica certifications.

Hope you’ve enjoyed learning more about us. Our team has worked with different organizations and their projects. We are Salesforce platform experts and offer custom development to help you build your platform and solve the right problems. If you want to know more about our work, go check out our latest success stories.