Salesforce TDD (Test-Driven Development)

Hi, I’m Diego and I have several years (I prefer not to say how many, but let’s say “enough”) working in Salesforce. I am also an Agile enthusiast and lover of applying related techniques throughout my work.

I’ve found test-driven development (TDD) can be a great technique for building robust software, but when we work in Salesforce, I find some constraints or restrictions can make it frustrating. In this post, I’m going to show when and how I use TDD while coding in Salesforce.

Disclaimer: The following is written on the basis of what has worked for me in the past. This is not intended to be a formal or exhaustive description. Use it as you see fit, I do not take any responsibility if you screw it up! 🙂

Salesforce TDD (Test-Driven Development)

Let’s start at the beginning:

What is TDD?

TDD is an Agile development technique that requires you to write a failing unit test before writing any “production code.”

How are you supposed to do TDD?

First I’ll describe how TDD is done in general (this is the way to go in languages like Java).

  1. Write a unit test and make it fail (a compilation error is considered a failing test). Write no more lines of code than needed.
  2. Write the least possible production code lines to make the test pass (fixing a compilation error is considered a pass test).
  3. Refactor the code.
  4. Repeat until you are done.

Let’s check out an example in Java so you see how it works. In this example, we wanna create an advanced calculator of integers.

 

We work in split view when doing TDD

Round 1

Let’s write a failing unit test:

Oops, MyCalculator is not defined yet, compilation issue…therefore, it is a failing test.

Let’s make the test pass:

Compilation problem fixed! The test is passing again. Woohoo!

No tons of code to refactor. 

Round 2

Let’s continue with that test to make it fail again.

Mmm…getOpposite is not defined, ergo compilation issue, ergo failing test.

Let’s fix that. Let’s write the minimum code to fix the test:

getOpposite is defined and returns 0 to any parameter (in particular, 0). Test is passing again!!!

Let’s refactor.

We still don’t have much code to refactor, but there are some name changes we could use to make code easier to read ( yup, yup, yup…unit test code is code, too).

Much better now! 😀

Round 3

Let’s add a new minimum test to fail.

Right now, getOpposite returns 0 to any parameter… it’s a fail!

Let’s write the minimum code required to make the test pass.

Yay! It’s green again! Let’s continue.

Round 4

Let’s add a new failing test.

Last test fail (we are return 0 to any value different than 1), so now we need to write the minimum code to fix this test:

Test is passing again… but this solution is not good, let’s refactor.

Tests are still passing and we solve all the cases! We are done! Well, not actually, we still need to document, test more, write more tests and write even more tests…but we’re on the right path.

I expect this silly example gives you a feel for what TDD is and how it is done.

Now, let’s continue with the discussion, focused on Salesforce.

TDD Advantages

  • Code coverage: We get great code coverage without even thinking about it.
  • Testability: The code is designed to be testable by default (we are actually testing every time we change something).
  • Easier to refactor: We should not change or refactor code without having a set of tests we can lean on. As we are constantly writing tests that we know are able to catch bugs (we make it fail at the beginning), we know that we have a set we can rely on.
  • “Better” code: We are constantly refactoring the code, striving for the best possible code.
  • Predictability: After we finish a “round,” we are completely sure the code is working as we designed it to work and we know we didn’t break anything. We can say we have “working software.”
  • Prevents useless work in Salesforce: In Salesforce, aside from Apex, we have plenty of options to make changes like triggers, workflow rules, process builder, etc. Imagine that after we write a test that changes a value on a contact record, it passes. We could discover that there is another moving part that is taking care of that change (or we wrote the test badly).
  • Documentation: Tests are a great tool to communicate with other developers (or the future you) how, for example, a class API should be called and the expected results of each case.

TDD Disadvantages

  • Overtrust: It happens to me that, as we are testing continuously and we are getting test green, I sometimes have a feeling that the code is working perfectly…but it doesn’t mean it is. We may miss, or simply get lazy, and leave a case out of the unit test.
  • Slow in Salesforce: TDD is designed based on the theory that compiling or writing a test is really fast (a jUnit unit test has to run in less than 1ms). In Salesforce, we need several seconds to compile (the code is compiled on the server) and several more seconds to run the test. In my opinion, this is usually 10+ seconds. As we are compiling and running tests constantly, we add several minutes of “waiting for Salesforce.” However, this can be mitigated if you think you will need to write/compile/execute tests later anyway – you might as well do it upfront.

 

 

Me when I realize the QA found a case I had not considered when I was doing TDD

I will (probably) use TDD when...

In general, I’ve found that TDD is a great tool in several circumstances and I tend to do it almost always in the below cases.

  • Back-end bug fixes: Doing TDD in this context has two big advantages. First, you make sure you are able to reproduce the bug consistently. Second, and even more important, as you are writing a test specific to the bug, you know you will never introduce that bug again.
  • Back-end work with clear requirements and a clear implementation strategy: In this context, writing tests is going to be easy and implementing the production code will be easy, too, as you know where you are heading when you create the test cases.
  • Back-end work with clear requirements and minor implementation unknowns: In this context, the test is easy to write and the production code may be getting clearer as you move into cases.
  • Back-end work with some requirements discovery: Imagine in our calculator example you write a test to divide by zero and you realize you’ve never discussed that case with the BA. TDD helps you discover opportunities to clarify requirements.

I might do TDD, but it’s unlikely...

  • As part of requirements discovery: You could write unit tests as part of requirements discovery, and discuss it with your stakeholders, BA, or other technical people, but you probably have better techniques to support this process.
  • Front-end work: I’m gonna discuss this briefly later, when we talk about Lightning web components.

I will never do TDD when

  • I’m doing a prototype: By definition, a prototype or PoC should be discarded after we show it, so I code it as fast as I can, focused on demonstrating the core functionality.
  • I’m experimenting: If I’m trying a new idea, I don’t focus on code quality (again, this is a prototype).
  • I’m evaluating implementation options: There are some cases where you want to compare two implementation options, so focus on having a good-enough-to-decide prototype and throw it away after you decide…then do the stuff well.
  • I don’t care about code quality: I know code quality is not usually negotiable, but in very limited and extreme situations, it may not be the top priority. For example, when everything is screwed up on prod and you need to fix the problem ASAP because the company is losing millions of dollars per minute. In this very extreme circumstance, fix the problem as fast as you can, make your company earn money again, go to sleep (or maybe get a drink) and tomorrow at 10 am (yup, after a stressful night, start working a little later the next day) make the code beautiful with TDD. Make a test that reproduces the bug and then fix and refactor the code properly.

 

 

Me again, but on one of THOSE nights.

  • When creating test code is extremely difficult (but not possible): In Salesforce there are a few elements that are very hard to test, like working with CMT. In this scenario, I’d probably split the problem into two parts – one that is TDD-doable using mocking data (@TestVisible is your best friend here) and a second, smaller part that I’d consider how to test later (if I even consider it).

How I do TDD in Salesforce

I really don’t do TDD as I defined at the beginning of this article when I’m working in Salesforce. Why? Mainly because of the slower compile/test flow, but also because in Apex we generally start writing integration tests instead of unit tests. Instead of “regular” TDD, I tweaked the formula a bit to work better under Salesforce circumstances.

  1. Write an entire deployable test that checks the flow or use case. Yup, I said deployable, so if I called a method I haven’t created yet, I will create it, empty, so I can deploy.
  2. Run it and get a failure.
  3. Write the minimum code that makes that test pass.
  4. Refactor.
  5. Continue with the next flow or use case.
  6. When I’m done with all the flows and use cases, I refactor the code again (splitting methods, checking code cleanliness, documentation). I run the unit test continuously, every few changes to check if everything continues to work as expected.

To make everything clear, let’s view an <could-be-real-world> example.

Requirement:
As a user, I want the values stored in any object copied into a number of specified contact fields. The specified “mappings” will be stored in a CustomMetadataType called Contact_Mappings__cmt. The Contact_Mappings_cmt has two fields:

  • Original_Fields__c Text
  • Mapped_Fields__c Text

Round 1

As I said before, I should start writing an Apex test that tests a business case. The first thing I’m thinking of developing is “The contact should not change if there is no mapping defined.” I have to write a deployable test that is going to fail with the minimum amount of code to make it fail:

We work in split view

As expected, the code deploys but the test fails. So, we need to fix it! We can simply return the same object.

Now It passes, but we don’t have a lot of code to refactor (we could extract some constants in the test).

This is a much better test.

Test still passes!

Round 2

Okay, let’s add another case. What if we check that the User.LastName is copied into the contact when I define the Mapping Lastname => Lastname? Great idea, let’s do it!

I start to write the unit test but…. I realize I can’t do an Insert in a CMT. Or, I give seeAllData permission to the test and define it in the project metadata. Or, I have to somehow deploy it. 

Remember that I said that I don’t do TDD when writing the test is extremely hard? Well, it looks like I’m in one of those situations. At this moment, I can quit writing this blog post and go cry…or I can redefine what I am developing with TDD, leaving all the complexities outside of scope. I imagine you would be very annoyed after reading this far to see me just quit, so let’s go with the second option.

I can’t use the CMT right now, so let’s do something different. What if we use a Map<String, String> where the key is the field in the original object and the value is the list of fields names in the Contact Object. It might work, later on we just need to read the CMT and create a Map with that information, but spoiler alert…that won’t be covered in this article.

But okay, great, let’s create a map and write the deployable failing test.

And as it was expected… it fails.

Let’s write the “minimum” code that makes that test pass

Our new test passes, but the other one failed! Let’s fix that.

Let’s do some refactoring, either in test or production code.

I think the put/get part is messy to read (and has its own meaning), so let’s split it into its own method.

Also, as we want that theMap could be injected into test case scenarios, the @TestVisible annotation is useful here.

Round 3

Now we should add a new test that executes a new flow and see it fail. I think you got the idea, so I won’t do it now, but just to specify the cases, I can think:

  • Mapping a field to multiple fields (separated by colon)
  • Does nothing if origin field is wrong
  • Does nothing if destination field is wrong
  • Does nothing if types are not compatible
    …and so on

Can we do TDD in Lightning web components (or front-end)

The short answer is yes, we can.

Long answer: As the Jest test can’t see the objects, but they see only the “generated DOM”, it may be harder to do TDD in an efficient way for front-end solutions. Usually, it is better to test visual code by watching the result and THEN write the tests we need to ensure code won’t break in the future.

Conclusion

TDD is a best practice that’s good to master so that you can decide the best moment to apply it (I don’t believe there is One Ring to rule them all, One Ring to find them, One Ring to bring them all, and in the darkness bind them, thank you J.R.R. Tolkien). Applied correctly it will make you produce better, more robust code…and fewer bugs, which means…

Homer is happy

Salesforce System Architect: Tips, Role, and Responsibilities

 

Interested in becoming a Salesforce System Architect, but still have some questions about it? Travis, a System Architect in our West Virginia office, has the answers.

Is the Salesforce recommended material enough to prepare me for the Salesforce System Architect Certification? 

Yes. I think that in the beginning, it may be a little overwhelming. Make sure you understand the content well and don’t get discouraged. If some of the details seem like a little too much to memorize, just have a general understanding of everything. If you have excellent general knowledge, you should be okay on the exam. Some of the exams do get more specific than what you would ever actually need in a working situation, like the Identity and Access Management Designer exam in particular. So there are some things that you have to memorize, but I think that if you have a good understanding of all the content, you should be okay.

Is the System Architect certification a prerequisite for another certification, or is it the end of the career path?

                                               Source: Trailhead Architect Overview 

The next step for a Salesforce System Architect is to become an Application Architect and then a Technical Architect. For the Salesforce System Architect and Application Architect, you need to pass four exams per certification. Once you get the certifications, you’re considered either a System Architect or Application Architect, depending on your achievements.

Becoming a Salesforce Certified Technical Architect (CTA) is a little bit different. There isn’t an exam as far as questions and answers that you go online to take. It’s actually like sitting in front of a board of people who have achieved the Salesforce CTA. They ask you questions about the solutions you present and then decide whether you should be a CTA as well.

Do you recommend following some particular order for the certifications?

I recommended starting with Salesforce Platform Developer I certification to understand the basics of Salesforce. They’re so specific compared to the other exams, so it is better to start with that one. Also, none of the other certifications build on the other. All three are separate topics.

How long does it take to become a certified Salesforce System Architect?

It depends. Things were a little different for me. It took me one year, which is probably a little unique. Salesforce says it typically takes three to five years and requires working with the Salesforce platform. But I kind of jumped through things a little bit as I didn’t have to learn much about the background and best practices because I already had experience with that. In my case, I was just learning the Salesforce platform and how to put that together with my experience. It’s going to depend on how much time you have to study, and what your regular work is. If your regular job involves many things related to the exam, you’re going to gain that knowledge more quickly. It just depends on your situation.

What other certifications or technologies would you recommend learning to be a well-rounded Salesforce architect?

As far as the certifications and Salesforce go, there are Certified Consultant certifications for different areas like Sales, Service, and Experience Cloud. You can get those and obtain a deeper knowledge of Salesforce and the technologies they offer. 

The MuleSoft certification is something I’ve seen a lot about lately. I’ve been studying MuleSoft quite a bit because many customers and Salesforce team members are using it. I recommend learning anything popular with your customers and your work area.

The big thing is just having a perfect understanding of the Salesforce platform and the fundamentals because you can apply those fundamentals to anything the customers need. 

Did you use other materials besides Trailhead from Salesforce?

I did for a little bit right before I took the exam. I looked at some practice exams just to know what I should expect. I found some excellent pages but others were out of date. You have to be careful, there is lousy information floating around that can encourage you to make mistakes.  

Some useful resources:

What makes a good Salesforce System Architect?

If you want to become a good Salesforce System Architect, you need to:

  • Understand the customer’s requirements and how to translate those into actual functional tasks.
  • Be able to work with others. Most of the time, architects are almost consultants within a company. You’re not just going to start a task, then sit back and work on it in isolation for a month. You need to be directly involved.
  • Communicate well. Whether it’s the people on your team or your customer, you need to learn how to give the best advice in a way they understand.
  • Have patience. Never jump into things too quickly. Always take your time and investigate. It’s okay to have questions. In those situations, it is better to say: ‘I’m going to do a little research. And I’ll get back to you.’

    If you want to learn more, we highly recommend going over these two resources:

Becoming a Salesforce System Architect

Have you become a Salesforce Certified System Architect yet? Travis has and he did it in an impressively short amount of time, so we asked him to share his experience. Before we jump into it, let’s get some background on Travis and learn more about him. 

  • He worked with .NET applications for about seven years.
  • Likes Salesforce’s certification paths because you can show your prior knowledge.
  • Changed his career path by complementing his prior knowledge with Salesforce.
  • Has been working with Salesforce for about four years.
 

Challenges to becoming a Salesforce System Architect, Developer, Designer, Architect?

Challenge Accepted

 

Switching to a new career path can be daunting. That’s why we asked Travis what challenges came along with the process of getting these certifications.

Whenever we start something new, there is a certain level of anxiety or fear. This situation, though expected, can hit us like a cold shower at 5 am. This is all part of the process of going in-depth on a new topic. Working with new information also opens up a new area to explore, requiring the necessary amount of research behind it. One of the main challenges Travis found is when working in areas where you have no past experience or you don’t yet know the basics. These areas bring more interesting challenges. 

I just had to spend a lot of time learning Salesforce well, before I moved into the more in-depth topics

Travis. Oktana Salesforce System Architect

For some people, time management is not an issue. But for us mortals, this may not be the case. Becoming a Salesforce System Architect will take a bite out of your daily routine and that will be an adjustment. This makes sense because most people work and study at the same time. Travis emphasizes the importance of staying motivated and finding the time to study.  Especially if you work in a different area where you are developing different skills. 

Set aside some time every day to go through the Salesforce recommended material

Travis. Oktana Salesforce System Architect

The path seems pretty simple, right? We start with Salesforce Platform Developer I Certification to get a handle on all the basics, then we continue onwards! One key point to remember though is not to get ahead of things. Each module deserves time and attention. It may seem intuitive to go into the nitty-gritty or jump ahead. However, you could bump into uncharted territory down the line, which may derail or put a stop to your master plan, and nobody wants that. That’s why Travis reminds us to give ourselves some space and take the time we need to work through each of the modules.

Focus on one area or topic at a time. It could get a little more confusing if you don’t.

Travis. Oktana Salesforce System Architect

Valuable Resources to become a Salesforce System Architect

Salesforce’s learning platform, Trailhead, helps you accelerate your digital transformation. The System Architect Certification consists of four different certifications, each with its own trails and trailmixes to help guide you. As was previously mentioned, Travis recommends completing the Platform Developer I Certification first,  then going on to the other three. These trails are hands-on guides with examples that allow you to experience what you’re working on. There is also plenty of documentation and other resources. On top of that, the gamified experience will surely help you keep motivated. On the whole, the trails, plus all the other resources, can be overwhelming at first. That’s why keeping calm and studying as much as you can before the exams are your best bet. 

Travis loves the data and seeing what works best. What about you? To get an idea of which module you are most interested in, here is a short description of the modules coming after the Platform Developer I Certification. You will also get an example of how to go about taking the exams. This was the path Travis followed. Let’s see if this works for you!

  • Integration Architecture Designer: This certification is more about active learning. Travis mentions following the recommended material. And he also highlights that general best practices were useful along with his prior experience and knowledge. The exam focuses on a specific scenario, where you’ll have to understand the requirements of the customer. This depends on the apps and data your customer needs and how they should be evaluated and handled. 

  • Identity and Access Management Designer: This certification gets more challenging. Experience in this area is a big factor. The exam focuses on details, configuration, and authentication. It’s all a matter of learning new concepts that will broaden your skills. Travis also points out that the customer and their technologies come into play and influence your decision-making process. Understanding the relationship between the customer and Salesforce is a must.    

  • Development Lifecycle and Deployment Designer: Woohoo! We’re here. This one focuses on the development lifecycle. From development to production and testing, you will go through the methods and steps behind it all. Travis reminds us that the process will inevitably be linked to the customer’s needs. Again, the key is to find the best fit for the customer. 

A Day in the life of a Salesforce System Architect

Now you have an idea of how to tackle the certification, we also asked Travis what his daily work looks like. He shared that his actual work is similar to the exams. Good to know, right? Knowing the customer and their requirements is always a must. To do this, strong communication and learning how to ask the right questions are definitely game changers when it comes to dealing with customers. The following is a sample of questions you might ask yourself, he says:

Do we already have a lot of existing applications accessing them?

How do we need to sync all these things in real-time?

Travis. Oktana Salesforce System Architect

In a Nutshell

Here are some of the best tips to remember:

  • Prior knowledge and best practices can be really helpful.
  • Try not to get overwhelmed by all the content.
  • Don’t memorize. 
  • Take your time to understand the content you are learning.
  • If you fail the first time, try again! Don’t be discouraged.
  • Don’t hurry! In the end, this is all to further your career.

If you want to know more about the information Travis shared with us, we also recommend checking out our Salesforce System Architect: Tips, Role, and Responsibilities article and our webinar about Travis’ full experience. 

Calling Apex methods in Salesforce Lightning web components

Originally published as ¿Cómo Llamar Apex en Lightning Web Component?

 

One of the features that Salesforce gives us is the ability to call Apex methods in Lightning web components. This can be done by importing the method and calling it with the decorator wire service or imperatively.

Calling Apex methods in Salesforce Lightning web components

How to import an Apex method in a Lightning web component?

We can import methods from Apex classes into a component using the import form in ES6 (ECMAScript v6). This way:

  • apexMethodName: Symbol to identify the Apex method.
  • apexMethodReference: Name of the Apex method that we are going to import.
  • Classname: Name of the Apex class in Salesforce.
  • Namespace: If the Apex class is in the same namespace as the component, do not specify a Namespace. If the class is in a managed package, specify the namespace of the managed package.

 

How to expose an Apex method in Lightning web components?

To expose a method of an Apex class in a component, the method must be static and global or public. Also, we need to add the @AuraEnabled annotation to it.

In the following example, we expose a method called getContactList in the component, which returns a list of contacts.

 

 

How to call an Apex method with React Wire?

To read data from Salesforce, the Lightning web component can use the Reactive Wire service. The wire decorator is used to call an Apex method.

In the following example, we call an Apex method using the wire decorator.

 

How to call an Apex method imperatively?

In the next example, we call an Apex method, which returns a list of contacts, imperatively. The imported function returns a promise.

If you are looking for Salesforce technical content in Spanish written by experts, we recommend visiting Snake on Code, where you will find more information regarding Lightning web components, Apex, and more. 

If you enjoyed this article, here are some more that you might enjoy:

Why become a Salesforce certified consultant? Sales, Service, and Experience Cloud

When people think of Salesforce certifications, they typically focus on the Certified Administrator or developer credentials. For those providing consulting services on the Salesforce platform, the administrator certification is the entry point, with consultant certifications providing the next level. Salesforce-certified consultants know more about the Salesforce platform and are better positioned to help clients understand what they need. Most projects involve Sales Cloud, Service Cloud, or Experience Cloud, which are central to the Salesforce platform. 

Why become a Salesforce certified consultant? Sales, Service, and Experience Cloud

When approaching a new project, you can usually expect that at least 80% of the requirements can be met with out-of-the-box functionality. Certified consultants are better positioned to guide clients, who are typically not familiar with the platform, don’t know how to implement the features they need, and have many questions. Knowing how these products work helps you help them figure out the best way to implement them and ensure they are able to leverage as much out-of-the-box functionality as possible. Even when installing the products, there are always a variety of steps and configuration tasks involved. Certification helps you prioritize this work and determine the next steps for all your projects. 

When clients partner with you on a new Salesforce project, you will know what the client needs, what they should consider before starting, which licenses they will need, and recommend different approaches. These certifications even help you to create a budget for the project as you will have learned the pre-sales approach.

 Let’s take a closer look at the three consultant certifications.

 

Certified Sales Cloud Consultant

Eduardo C: Business Analyst & Salesforce Consultant. 10 years of Salesforce experience.

Certifications: Administrator, Advanced Administrator, Platform App Builder, Platform Developer I, Sharing & Visibility Designer, Sales Cloud Consultant, Service Cloud Consultant, Experience Cloud Consultant.

 

How has the Sales Cloud consultant certification been useful?

Eduardo believes that being a business analyst and a Salesforce consultant means that he brings a different point of view when it comes to this certification. However, some of the most important things to consider are:

  • Standard Objects: The standard objects are account, contact, opportunity, lead person accounts, and products. You know how they are related, master details, lookup relationships, and so on.  In some projects, the objects may have different names. Let’s say the “account” object is renamed to “vendor” or “client,” because you already know everything related to the account object, you know what comes with it.
  • Marketing Campaigns: Opportunities may be related to multiple marketing campaigns. You can influence opportunities with marketing campaigns.  
  • Quotes/ Products/ List Prices: Generally speaking, it’s easier to implement with out-of-the-box functionality. If you are making a custom deployment, there are many things to consider. If it’s out of the box, generally speaking, you avoid some pain points in the business process.
  • Opportunity and account teams: With the administrator certification, we learned about sharing options like roles, but here we focus on others ways to share objects, like opportunities and account teams. It’s very useful and you’ll use them often. 
  • Territory Management: There is another way to share opportunities and accounts by using territories. In most cases, the territories are related to geography or region. Eduardo stresses the importance of understanding how this works as it will be asked in the exam. 
  • Multiple Currencies: What happens when you enable multiple currencies? When or where do you need to update the exchange rates, and what happens when you apply the exchange rate? As you know, prices tend to change frequently, it is very useful to know when these price changes will affect the opportunities. 
  • Quota/Goals: Salespeople usually have quotas and need to reach certain goals. Understanding how these work is central to helping clients use Salesforce to support their business processes. 

 

What else do you need to learn?

Eduardo believes the most important item to remember is that the licensed add-ons such as CPQ, Lightning Sales, and Maps, among others, aren’t included in the exam but they are vital when it comes to projects. It is important to consider the limitations, insights, and use cases of these licenses to decide which ones to use in specific contexts. 

If you are interested in taking this certification, check out the Sales Cloud Consultant exam guide and complete this Trailmix: Prepare for Your Salesforce Sales Cloud Consultant Credential.

 

Certified Service Cloud Consultant

Lakshay A: Salesforce Quality Engineering, 5 years of Salesforce experience.

Certifications:  Administrator, Advanced Administrator, Platform App Builder, Tableau CRM & Einstein Discovery Consultant, Service Cloud Consultant

 

How has the Service Cloud consultant certification been useful?

This certification is designed for those who want to successfully design and implement Service Cloud solutions that are maintainable, scalable, and contribute to long-term customer success. 

This certification requires an abundance of knowledge on translating client customer service requirements into Salesforce design, leveraging best practices, and minimizing the need for custom development. It also helps in facilitating business process reviews to identify client requirements. 

  • Interface Customization: Configuration of the interface for customer support helps enhance the experience for the agents or any support center environment. This includes knowing how to configure all of the ins and outs of the console, both in classic and increasingly more in the Lightning experience. 
  • Channels: You’ll learn how to deal with the various customer interaction channels such as web, telephone, emails, and other social media. 
  • Knowledge articles: You will also learn about knowledge articles, to facilitate faster resolution times. This will help you learn the interface configuration to allow for rapid entry by the agents and sharing of reference information through articles. All this will result in faster resolution times
  • Omni-Channel: The next part is Omni-Channel, which helps to route cases intelligently. Sometimes we may need to take into account the various skills and skill levels of individual service representatives. Lakshay was impressed by the sheer volume of complexity that can be handled with just clicks instead of code. 
  • Analytics: With Tableau CRM (formerly known as Einstein analytics), you can sift through mountains of data and case records to discover patterns and surface actionable insights, to take effective case management to a whole new level. Along with this, there are two topics which will be around designing end-user training and supporting related documentation. 
  • Service level agreements: Companies are obligated to provide certain levels of service, which will lead you down the path of implementing intervention milestones. 

Now moving on to what else you’ll learn along with that, there are a few more things like:

  • Sales Cloud channel integration
  • Data management 


These include use cases and considerations for common services or integrations. It explains the concentration of the data migration and the data quality.

When Lakhsay prepared for the exam he followed the topic-wise approach. There are nine topics that you should cover in detail before taking the exam. And there are some hot topics from which most of the questions will appear, such as Service Cloud implementation and the different strategies.

If you are interested in pursuing this certification, check out the Service Cloud Consultant exam guide and complete this Trailmix Prepare for Your Salesforce Service Cloud Consultant Credential.

 

Certified Experience Cloud Consultant

How has the Experience Cloud consultant certification been useful?

Eduardo believes that when it comes to Experience Cloud, standard objects are a good place to start. It is vital to understand how standard objects are related. Some users are related to contacts, whereas others may relate to accounts or other objects. It is important to understand how they are related, depending on the type of license they have. 

  • Community types: This exam will also prepare you to know the differences among partner, customer, and employee communities. You will learn about the sharing options available with each license type and typical product integrations along these lines. 
  • Integrations: Typical product integrations are important to know because that community will come in handy with other products that you could integrate. Communities rarely come “alone” most of the time. You will typically have some other product associated, such as Service Cloud, Sales Cloud, CQP, MuleSoft Anypoint API Community Manager, or Tableau CRM (previously known as Einstein Analytics). 
  • Access: Understanding public access is very helpful for knowing how public pages work and their interaction with multiple apps and databases. 
  • Personalization: Audience targeting has also been handy when it comes to projects. Sometimes, you may have two sites with two different audiences or you may have only one site with two licenses. When it comes to targeting, you need to define at what moment users will see each of the licenses. It is good to know the limitations and the ways we can achieve this. Eduardo recommends understanding the difference between login-based and member-based profiles because they are not configured the same way

 

What else do you have to learn?

Eduardo took this exam about a month ago mainly using Focus on Force. The challenge with this certification and the reason there are no Trailmixes is that it changes often, as Salesforce is constantly upgrading its communities to satisfy the needs of customers. This certification has changed its name a couple of times already from Digital Experience Cloud to Community Cloud, to the one we currently have, Experience Cloud. Eduardo recommends checking the Salesforce help links to make sure you have the latest information, especially when it comes to licensing types and templates. 

You can also check out the Experience Cloud Consultant exam guide.

Salesforce credentials grow your resume and highlight your skills. If you are interested in following this career path, check our career opportunities

 

Expert tips for becoming Salesforce Certified

We know that taking a Salesforce Certification exam can be stressful, so we have put together some useful tips for before, during, and after the exam that you should keep in mind.

If it is your first time working on a Salesforce certification, we recommend you start with one of these three certifications as they do not have prerequisites. Regardless of which one you begin with, here are some useful tips to help you pass the exam and things you should consider when preparing. 

Expert tips for becoming Salesforce Certified

Before the exam

What should I consider before setting a date and time to take my first Salesforce certification exam?

 

Choose the right space

  • Pick a quiet environment where there won’t be any loud noises or sounds to distract you when you’re trying to answer complex questions. Because the exams are proctored, make sure you’re the only person in the room. Keep the space where you will take the exam clean. It is best to only have your computer connected. Remember, remove any distractions.

  • Schedule your exam on a weekend or another day where there are no other activities planned besides taking your exam. (No job, no projects, only the exam).

  • Take the exam at a time where the internet is stable (don’t take the exam during peak hours when your internet connection is likely to be slow).

  • Prepare the software and hardware in advance. In general, you will need:
    • Hardware
      • A stable internet connection. Using a cable is usually better than wifi.
      • A computer. Check that your CPU is working properly and if it’s a laptop, don’t forget to connect your charger.
      • Microphone and camera. Make sure they’re configured and fully functional in advance.
    • Software
      • A recent version of Windows / macOS with a system administrator account.
      • Install and configure the required software that they use for the exam.
      • Verify all software is working properly a day before taking the test.

 

Be prepared

  • Read up on how the exam is structured. Every certification has a different exam, but the structure is published for each of them.
  • Create a study plan. There are many ways to develop your study plan. How you approach it depends on your time, your studying technique, and other factors. 
  • Speak with people who have already obtained the certification so they can tell you about their experience. This is one of the best things you can do!
  • Rest and concentrate before the exam. Don’t stay up late the day before. Just review, eat well and be as relaxed as possible when you take the exam. 
  • Postpone the exam date only if there is a major problem or think you should review or study more. It is possible to cancel the exam or change the date, any restrictions would depend on the type of exam you are taking. 
  • We recommend taking a look at these resources for practice exams, past exams, free courses, and much more:

 

During the exam

Exam proctors 

Keep calm and be patient. Once the exam has started, time will start running. However, the exam supervisor or proctor can interrupt you at any time to verify everything is going smoothly and to ask you to show specific things, like:

  • Your ID
  • Your surroundings 
  • Your eyeglasses 
  • That you don’t have any devices in your ears (such as earphones)
  • That you don’t have any jackets or pockets. Wear something simple with no pockets or places where you could hide information. 

Before starting the exam the proctors may take some time to answer any questions that you have regarding the test. Verify the evaluation criteria, such as the number of questions, duration of the exam, and the time you will have available to answer each question. Once everything is ready you will be able to continue with the exam. Keep in mind that the proctor may interrupt you if you make any “suspicious” movement. Try to avoid this, as you will not enjoy being interrupted during the test. 

 

Organize your time and prioritize

Start by reading the questions carefully. If you don’t fully understand a specific question, read it again. There is no need to rush. If you don’t know the answer, try not to waste time on that question as that will leave you with less time to answer the ones that you do know!

How to organize yourself:

  1. Read the questions carefully and analyze them. These questions are designed to confuse you and may have keywords that can change the meaning of the question completely.
  2. Answer the “easy” questions first. Start by answering the questions you are sure you know or that may seem easier to you first. But be careful, some questions may seem simple but were designed to be tricky. 
  3. Skip (or leave for later) any questions that you do not understand, or that require extra time for calculations. By answering the easier questions at the beginning you leave yourself extra time for the questions that require more analysis.
  4. If a question is too long, save it for the end. They are designed to take extra time and confuse you. It would be better to answer them at the end.

Once you have answered all the questions, try not to change too many of your answers. Be confident in your work.

 

After the exam

I passed the exam, what should I do?

Verify the result. Salesforce sends your certification by email.

Check your certification expiration date. We recommend knowing the expiration date of your certifications so you can make plans to renew them on time.

 

What should I do if I failed my exam?

Salesforce will send you the results. After you have finished your certification exam, Salesforce will send you an email with the percentage you have achieved for each of the exam topics. This will help you know which areas in you will need more training on before you take the exam again.

Take it easy. Everyone wants to pass their exam on their first try, and not passing makes us feel frustrated. Don’t give up! Review the topics you have failed, study them again, practice, and remember that you already have experience.

Developing Salesforce Lightning Web Components

In mid-2020 we started a project to build small Salesforce components that could be added to any application or even a registration page. That project has grown to include twelve components currently in production and many more on the way. We publish the components on the AppExchange for free so any Salesforce administrator can install them into their org to try them out. Our team builds components that are utilities that can help us on a daily basis, or complement our other work in some way.

Developing Salesforce Lightning Web Components

Lightning Web Components

There are a few approaches we could take to build components like these, but we wanted to take advantage of the newer Lightning web component architecture. It uses JavaScript, HTML, CSS, and the Lightning Design System. When we need to access custom and standard object definitions or build and call REST APIs, we use the Salesforce Apex programming language.

Lightning web components are a powerful tool because they present data to the client in a dynamic and reactive way. Most components are designed to directly support the Salesforce users who will be interacting with them. This approach allows our team to build for desktop and mobile with very few differences in the code structure. And the Lightning Design System is crucial for designing and developing a UI that is consistent with the rest of the Salesforce experience and is easy for the end-user to understand.

Even though all the components are “components”, some of them could be classified as “sub-components”, meaning that one could be nested and work inside another. This allows the team to distribute tasks better and work more efficiently. It also allows the components to be scalable and to add more features to a single component. It also has the advantage of making the work neater: the code is more organized as each component has its own functionality. 

 

Customer-centered Logic

When creating a component that runs in a complex environment like Salesforce, we want to be sure to minimize the number of interactions with the server. Customer-centered logic helps us reduce response time and to create elements that interact with the client faster. This approach lets the server delegate many of its responsibilities to the browser. Since it acts as a controller, all the user’s logic is handled by the browser.

Developing in this way requires a disposable cache that stores data locally, reducing the response time. The approach is called a “View-Controller-Controller-Model” because it has both a server-side and a client-side controller. Other frameworks such as Visualforce do not interact as quickly with the customer because they continuously consult the backend and request information and/or approvals. They depend 100% on the server. The server has to handle all the user’s requests and analyze what the user needs, then access the database, answer the question, and then render the page for the user. Not very efficient.

 

Component Ideas

The process of building a Lightning Web Component starts with a brainstorming session. Once all the ideas have been discussed, the team does a reality-check and chooses the most Lightning web component-friendly options. Then a team is designated to research available APIs on the market and determine which libraries they need. It’s only at that stage that we determine if it is feasible to develop that new component. If it is, a designer then creates a sketch with the layout, titles, logo, and color palette, and the development team starts building the components and Apex classes. 

We currently have three Lightning web components published on the AppExchange, including Oktana Calendar and Oktana Youtube, with more components already in the security review process. It takes time for the Salesforce security team to complete their review and approve any app or component, and that review process has become even more rigorous recently. We’re excited to share with you our new components as they’re approved and published on the AppExchange. Keep an eye on this blog or check our Salesforce AppExchange listings page.

 

The Best JavaScript Certification for 2021: Salesforce JavaScript Developer I

 

The Salesforce JavaScript Developer I certification, introduced in 2020, is an excellent way to demonstrate experience developing with one of the most popular web programming languages. JavaScript developers work with front-end and back-end development and even related technologies like Salesforce’s Lightning web components. This credential is a great way to further your development career.

The Best JavaScript Certification for 2021: Salesforce JavaScript Developer I

Tips and secrets to obtain the Salesforce JavaScript Developer I Certification 

The JavaScript Developer I certification includes a multiple-choice exam that validates core JavaScript development skills. A huge benefit of the Lightning web component programming model is that developers write standard JavaScript. Passing the JavaScript Developer I exam demonstrates that you have the standard JavaScript fundamentals required to develop Lightning web components.

To learn more about this certification, we spoke with two developers from our team in Paraguay: Laura S. and David N.  They both decided to complete the certification to refresh their knowledge in Javascript and to demonstrate their abilities.  They both work closely with Lightning web components and wanted to expand their knowledge of JavaScript to help with that work.

The certification consists of two parts: the Lightning Web Components Specialist Superbadge and the JavaScript Developer I multiple-choice exam. These two parts can be accomplished in any sequence. Laura and David found that it can take approximately four weeks to finish the trail mix and study for the certification. But it all depends on the hours of study you dedicate to it.

The exam is structured around 7 main topics

Laura and David agreed that the most difficult topics are variables, types, and collections. Specifically about the types of data that Javascript handles since each one has its own methods. And, among the easiest topics to understand is asynchronous programming.  In the exam, they give you scenarios and ask you to apply asynchronous programming concepts like using event loop and event monitor or determining loop outcomes.

David considers understanding Javascript testing functions one of the more interesting topics. Other programming languages required additional libraries to do unit tests, while Javascript has built-in test functions. Laura considers server JavaScript (Node.js) more interesting. There are many languages that can be used for developing on the server-side, but she prefers JavaScript.

Oktana’s training team was very helpful to Laura and David. The team guided them from the beginning through to obtaining the certification. They gave them access to platforms like Focus on Force and Udemy, where they could practice until they felt ready to take the exam.

 

Why do we recommend this certification?

There are many reasons to want a certification like this. For some, it’s a way to advance their career. For others, it’s an opportunity to structure and strengthen their knowledge of the language.  

In David’s case, he works front-end and handles web components, so having a deeper understanding of JavaScript helps a lot. Also, it helps you as a tool in some types of projects. For example, in the projects that you carry out for Salesforce, in which you have to modify some component, that work is 100% Javascript. Additionally, it helps to learn new elements that you were not exposed to before, and that are not very commonly taught in the certificates. There is always more than one way to solve problems, the certification helps you to discover new functions and approaches that can make your work easier. Finally, Javascript runs better in browsers, so it is the most logical thing to learn. It is very useful!

Laura and David highly recommend this certification and they believe all developers should obtain it. It’s also a great way to learn more about Salesforce.

 

Certification preparation resources 

 

What are you waiting for? Start preparing for this certification. Also, if you are interested in other Salesforce certifications, our team strongly suggests following the Salesforce Platform Developer I.

 

Why Become a Certified MuleSoft Developer

 

Interested in obtaining your first MuleSoft certification, but still have some questions about it? Ana, a developer in our Ecuador office has some answers:

WHY BECOME A CERTIFIED MULESOFT DEVELOPER

What is the advantage of learning MuleSoft?

The most important advantage that MuleSoft has against other platforms is that it allows you to develop and manage APIs easily. You can even drag and drop components and integrate systems. With MuleSoft Anypoint™ Exchange you can add your APIs to a marketplace to reach a broader audience. That same marketplace gives you connectors that can make your life easier. For example, MuleSoft allows you to use a Facebook or a Salesforce package to integrate systems more easily.

 

Do you have to be a programmer?

Knowing how to code, or at least understanding how to do it, is useful because it helps you better understand certain topics in the MuleSoft training. For example, DataWeave, try-catch blocks for error handling, and other concepts like that are things you will need to know to be successful.

 

Do I have to know a specific programming language to learn MuleSoft?

You don’t need to know any specific programming language. But you just have to know how to code; that should be all you need.

 

How does MuleSoft help companies to grow?

When a company needs to integrate systems, MuleSoft gives them an advantage. With pre-built connectors, MuleSoft makes it easier to connect those systems without having to write a large amount of custom code. Also, if a company wants to produce its own APIs and possibly sell them, the MuleSoft Anypoint Platform makes that easier. They can even use Anypoint API Community Manager to create a Salesforce Experience Cloud community for API developers, which can help quickly grow adoption for the APIs.

 

Are there any prerequisites before someone takes the MuleSoft developer certification Level I certification? 

It’s important to understand programming and knows a bit about APIs, like what they are, how they’re used, and why you’d use them. MuleSoft certification is not very difficult as long as you know your basics. 

 

It is possible to achieve the MuleSoft developer certification by myself?

Of course, it’s possible. And it’s a great opportunity since the course is free. To start, go to the training page and sign up. If you pass the training, then the exam is free.  You should take advantage of this opportunity! Just remember, you need some experience with coding to know the terms and to understand DataWeave. It shouldn’t be too challenging for you.

 

What is the best API?

Which API is best depends on the project you’re working on. So maybe, if you want to incorporate a map in your system, consuming the Google Maps API would be the best solution for you (if it complies with all the requirements you need to meet).

 

What is the next step after you earn the MuleSoft developer certification Level I – Mule 4?

After you achieve your certification, your next step could be to go for the  Integration Architect certification. In my case, I want to gain more experience with MuleSoft projects before I become a certified Integration Architect. For that certification, MuleSoft has training that can help you, but it is not free. 

 

How long does it take to get MuleSoft developer certified?

That’s a great question, but it really depends on you. You could finish this course in five days if you are 100% committed, but you can also use other kinds of resources. Just to be sure you are ready before you take the exam. So it could take, five days, one week, or two weeks, it all depends on you and the time and effort you put into it.

Here are some great resources that helped me: 

 

In which kind of projects can I use MuleSoft?

You will use MuleSoft only for projects that require integrating systems. For example, if in your project you integrate a database and then you want to use that data in another system, you can use a specific API for that. But it really depends on the project and your requirements.

 

As a front-end developer, do you think it is useful? or is it only used in the back-end?

I think that as a front-end or a back-end developer it could be very useful to have a full understanding of what MuleSoft can do. So it’s worth getting this certification to give yourself a better understanding. As I said, this is a huge opportunity and the exam is free,  so you must take it!

If you want to know more, watch the webinar about MuleSoft certification and Ana’s experience.

Interested in learning more? Check out some of our latest MuleSoft articles: